Top 45+ Practice SSIS Interview Questions [ANSWERED] in 2020
SSIS Interview Questions and Answers

Top 45+ Practice SSIS Interview Questions [ANSWERED]

Last updated on 20th Jun 2020, Blog, Interview Questions

About author

Prabhu (Sr Technical Project Manager )

Highly Expertise in Respective Industry Domain with 7+ Years of Experience Also, He is a Technical Blog Writer for Past 4 Years to Renders A Kind Of Informative Knowledge for JOB Seeker

(5.0) | 15212 Ratings 21301

SQL Server Integration Services (SSIS) is a Microsoft tool for designing and managing data integration workflows. It facilitates ETL processes by extracting, transforming, and loading data between different systems. SSIS includes a development environment (SQL Server Data Tools), data flow for moving and transforming data, control flow for workflow design, and features for connectivity, deployment, logging, and error handling. It is widely used in data warehousing, business intelligence, and data migration scenarios.

1. What is SSIS?


SSIS stands for “SQL Server Integration Services,” introduced by a Microsoft as a component of Microsoft SQL Server database. It is a capable of performing array of data migration tasks. Also, it serves as data warehousing tool for ETL (extract, transform, and load) operations.

2. What are the advantages of SSIS?


  • SSIS is capable of handling the data from a heterogeneous data sources in same package.
  • Works with the complex data, like FTP, HTTP, MSMQ, analysis services, etc.
  • Offers the transformation functionality and is simpler to maintain.
  • Tight integration with the Microsoft Visual Studio and SQL Server.

3. What are the disadvantages of SSIS?


  • For checking package execution reports, will require Management Studio rather than it being published to the reporting services.
  • May encounter an issue or find it challenging to run the multiple packages simultaneously. This is because SSIS uses the large amount of memory usage and conflicts with SQL.

4. What are the critical features of SSIS?


  • Improves a data quality by providing data cleansing and profiling.
  • Helps in smooth data integration from the several data sources.
  • Easy integration with the other components of Microsoft SQL products.
  • An Enriched studio environment and graphical tools.

5. Why use SSIS?


  • SSIS helps merge data from several data stores and load data to the
  • various destinations while ensuring great speed.
  • More versatile and flexible, reducing need for dedicated developers.
  • Tightly integrates with Microsoft family of products.
  • Cost-effective tool, offering the robust error handling and smart programming style that will help developers write lengthy code quickly.

6. What is the difference between ActiveX Script and Script Task?


  Feature ActiveX Script Script Task

ActiveX Scripting

Visual Studio Tools for Applications (VSTA)
Language Support VBScript, JScript Visual C#, Visual Basic.NET
Execution Used in SQL Server 2000 (DTS) Part of modern SSIS (replaces DTS)

7. List all tasks of the SSIS integration process?


  • Analysis the Services Processing Task that processes one or more objects at a time.
  • Send Mail Task will send emails with an output of package workflows.
  • XML Task will work with the XML files and merge the multiple sources into a single file.
  • Execute Package/Process Task will execute package from the another package or break them into simpler packages.

8. What are the important components of SSIS work environment?


SSIS Toolbox: Contains all necessary operational tools for controlling a data flow.

Properties Window: Displays properties of selected component.

SSIS Package: Shows an exact package that is currently in use.

9. What are packages in SSIS?


In SSIS, packages are collection of connections, data flow elements, parameters, control flow elements, event handlers, variables, and configurations. There are two ways to assemble all components in an SSIS package, and this can be done either by the SSIS’s graphics design tool or by writing program.

Packages in ssis

10. What are SSIS expressions?


In SSIS, expressions are mainly used for a filtering the necessary information depending on the various conditions can use the expression in conjunction with the loops, conditions, and dynamic connections.

11. What is a manifest file?


In SQL Server Integration Services (SSIS), a manifest file, also known as Deployment Manifest, is XML file that provides a metadata and configuration information about SSIS package. This file is generated when build or deploy an SSIS project. The manifest file contains a details about the package, such as its connections, configurations, parameters, and other settings.

12. Explain data transformation in SSIS?


Data transformation is the process that will extract the desired data from the various data sources, called data extraction. After extraction, the data is managed and transferred to the specific location. The transfer of data to the multiple locations is based on predefined rules.

13. Describe SSIS catalog?


SSIS catalog is the database that securely stores all deployed packages and controls them efficiently. And can deploy the packages in the SSIS catalog, and each package will be stored in catalog as centralized database.

14. What are SSIS containers?


Purpose: Containers in SSIS are organizational elements used to group and manage tasks within a package.

Types of Containers: Common container types include Sequence, For Loop, and Foreach Loop containers.

15. What is an SSIS checkpoint?


SSIS checkpoint is the property ensuring that user will get the point of restart from failure point. If set this checkpoint property to true, a checkpoint file is created containing all necessary information on how to run package from the failure point.

16. What does precedence constraint?


The precedence constraint helps to determine the sequence and logical order of the tasks present in SSIS package in which they should be implemented. It acts as connector that connects all tasks.

17. What are SSIS connection managers?


Connection managers are the responsible for configuring the connection between an SSIS package and all other external heterogeneous sources from where the data is collected. It includes necessary information are the server, data sources, authentication details, and others.

18. Why are SSIS packages preferred over stored procedures?


There are several reasons for preferring the SSIS packages over stored procedures, as explained below:

  • SSIS is capable of handling the complex transformation processes involving a slow-changing dimensions.
  • It manages the memory efficiently, and thus, shows a better performance as compared to stored procedures.

19. What are conditional split transformations?


These transformations work similarly to IF-ELSE condition that checks if specific condition is true and then executes given code. With the split transformation, can also specify the order for an execution for various conditions and then provide a default value as the output.

20. Explain error handling process in SSIS.?


  • There is always probability of an error while transferring vast amounts of a data from various data sources to destination. Therefore, it becomes necessary to identify a data that cause errors. To find error, must log the errors.
  • Each component of the SSIS (source, transformation, and destination) should have a log support using a secondary pipe that will define behavior during errors.

    Subscribe For Free Demo


    21. How does one create deployment utilities in SSIS


    In SSIS, a deployment is the process to update the package state from a development mode to executable mode. can deploy by right-clicking operations on the integration services project and then selecting a build option. This will create “package. dtsc” file under the bin folder. can use the deployment utility for deploying packages at the SQL server.

    22. What does merge and union all transformations?


    Merge transformations: This merges the data from the two sources and creates a single output. can use these transformations to break a data flow path and create a different error path. After error is handled, can merge it back to the main data flow. For implementing this sort need to sort the data, and the metadata should be the same for a two different paths.

    23. What are the different types of SSIS containers?


    • Task host containers
    • Sequence containers
    • For loop containers
    • Foreach containers.

    24. What is the task host container?


    The task host container is a default container that stores a single task. In SSIS Designer, cannot configure a task host separately; but can set the properties of the task it stores within. With this container, can extend the variables and event handlers to a task level. This container will empower task to use the features of containers.

    25. What is a sequence container?


    • Using the sequence container, can define the control flow as the subset of package control flow. These containers will group the packages into the several control flows containing one or more tasks and containers.

    • Can include many tasks along with the containers in the sequence container that are displayed in Control Flow tab. Also, can drag and drop containers from the toolbox under design pane and then add a set of tasks into container.

    26. What is a loop container?


    The loop container is the useful for defining the repeating control flow within package. The for loop works similarly to for loop structure of any programming language. In the case of for loop container, it will evaluate the expression and then repeat specific part of the code until an expression evaluates to false.

    27. What does a loop container uses the elements to define loop?


    • An optional initialization expression that assigns the values to loop counters.
    • An evaluation expression, which will be evaluated to test whether a loop should continue or not.
    • An optional iteration expression that changes a loop counter value.

    28. What is ‘for each’ container?


    The ‘for each’ loop container has powerful loop mechanism that enables the looping using object collection. It defines the repeating control flow in an SSIS package. The implementation of ‘for each’ loop container in the SSIS is analogous to for loop in the other programming languages. It uses a ‘for each’ enumerator to enable looping in SSIS package.

    29. What are the various types of lookup cache modes in SSIS?


    Full cache mode: In this mode, can query the database before executing a data-flow task. It is one of critical parts of the pre-execution of the data-flow task. In this mode, complete data of the table will get copied to lookup cache of SSIS.

    No caching mode: The data will not be cached unless a matched rows exist from the two subsequent sources. can run queries on a database to get the matched data.

    30. What is logging of SSIS execution?


    • SSIS comes with logging process that will allow the system to analyze and write a logs for every run-time event. It can be used for logging a custom messages that need to be enabled manually by the developers.
    • In SSIS, work with the various data sources; thus, it is necessary that logging is supported in the multiple formats such as text files, XML, etc.
    Course Curriculum

    Get SSIS Certification Course to Get Best JOBs in Top MNCs

    Weekday / Weekend BatchesSee Batch Details

    31. Is it possible to schedule packages?


    Yes, can schedule packages for any time as be required. can do it by designing the SQL Server agent jobs with the similar work steps as the SSIS packages. This job will fetch ‘dtexec’ order utility for executing a bundle. And can run this bundle or schedule it as per request.

    32. What is the config file in SSIS?


    The config file provides a inputs to the connection manager regarding properties used by the packages/tasks during run-time. It is useful when have to deploy the changes to the multiple servers without worrying about configurations of the packages. The config files will be automatically picked based on server.

    33. What does ways store the config properties?


    XML configuration file: Data is stored as a XML file.

    Environment variables: The config data is stored as a part of environment variables.

    Registry entry: The config is stored in registry.

    34. How does one add a recordset variable in Script task?


    Can use the variables in the script tasks for an exchanging the data with the other objects of the packages. The script task uses property “variables of Dts object” to read and write variables object of the package. For making variable available to a custom script, can add them to the read-only or read-write variables list. These variables are the case-sensitive, so make sure that add right variable name to the list.

    35. What is the SSIS breakpoint?


    In SSIS, breakpoint is the property, allowing the developers to pause execution of package in the BI system. It is a stopping point at any state that enables developers to review status of the variables, data, or an entire package.

    36. What are the steps for applying or removing breakpoints?


    • All breakpoints in SSIS are configured in BIDS, and can follow the steps below to apply or remove breakpoints in SSIS.
    • First, go to control flow interface under BIDS.
    • Right-click on object where need to apply/remove the breakpoint.
    • Click on ‘edit breakpoint’ option.

    37. How does error occur? Mention some critical errors in SSIS.


    The following most critical errors encountered in SSIS:

    Data connection error: It occurs when cannot initialize the connection manager with the connection string. This error can occur either at a source or destination.

    Data transformation error: It may occur during transfer of data from a source to the destination.

    38. What is data profiling in SSIS?


    It is the process of analyzing a state of the source data to obtain the proper understanding of data cleaning, pattern identification, etc. This process is generally carried out at initial stage of project development, ensuring that it will support destination design schema. Also, it will enable to understand whether the data is ready to use, and where to use it, in current development cycle.

    39. What does ignore failure option in SSIS?


    The ignore function in SSIS is generally used for an ignoring the errors during transformation process. While transforming, error will get ignored, and the data row will be iterated to move to next transformation. This function is useful when need to deal with the incorrect data coming from a source. Using this option, only valid data will get moved to destination, and invalid data will be moved to the separate file.

    40. What are the different event logging mode properties in SSIS?


    Every task and package has the property “Logging mode” that accepts following three options:

    Enabled: Use this option to log components.

    Disabled: Use this option to disable components.

    41. Does stop forever-running package in SSIS?If yes, how?


    Yes, can stop a forever-running package, but it depends on where package is running. If the package is running within SQL Agent, can kill the entire process using T-SQL. But if package is running within the SSIS catalog, need to use the stop-operation method. Apart from this, can use the Active operations window to stop SSIS catalog’s running process.

    42. What does different file formats and connections are supported by SSIS?


    The following are different file formats and connections that are supported by the SSIS:

    • XML
    • Excel
    • ODBC
    • OLEDB
    • Flat File
    • .net SQLClient.

    43. How does one deploy SSIS package on production?


    For deploying SSIS package, will require a manifest file that can be run either on a file system or SQL server.Deploying an SQL Server Integration Services (SSIS) package tothe production environment involves several steps to ensure package runs smoothly and efficiently.

    Steps to Deploy the SSIS Package

    • 1. Build the SSIS Package
    • 2. Deploy the .ispac File
    • 3. Integration Services Catalog.

    44. What are the components of data flow in SSIS?


    The three data flow components are:

    • Transformation
    • Source
    • Destination.

    45. What does the OLE DB command transform?


    In SSIS, the OLE DB command transform is used to execute SQL statement for each row in an input stream. It is an analogous to an ADO command where object will be created, prepared, and executed for an each row of result set. Then data will be provided for the parameters that can set in SQL statement.

    46. Why is bulk insert task used in SSIS?


    Can use bulk insert task for uploading the large amount of data from a flat files into the SQL server. This task will only support OLE DB connections for the destination database.

    47. What are the different types of data viewers in SSIS?


    • Grid
    • Histogram
    • Scatter Plot
    • Column Chart.

    48. What are the possible locations for saving SSIS package?


    The following are the possible locations:

    • SQL Server
    • Package Store
    • File System.

    49. How does notify team about the package failure


    There are the two ways to notify the team about package failure using two ways. One is adding the Send Mail Task in an event handlers of the SSIS Package, and the second is setting notification in the SQL agent whenever a package runs.

    50. What are some best practices when using SSIS?


    The following are the some best practices for using SSIS:

    • Make sure to avoid a performing logged operations.
    • Make the clear plan for an efficiently utilizing the resource.
    • Optimize a data source, lookup transformation, and destination.
    Course Curriculum

    Attend Hands-on SSIS Training from Real-Time Experts & Build Your Skills

    • Instructor-led Sessions
    • Real-life Case Studies
    • Assignments
    Explore Curriculum

    51. What are the main SSIS tool box widgets?


    • CDC Control Task
    • Bulk Insert Task
    • Backup Database Task
    • ActiveX Script Task
    • Analysis Service Processing Task
    • Analysis Services Execute DDL Task.

    52. Explain config file in SSIS?


    • Config file in SSIS is used to provide an inputs to connection manager the different properties which package use to assign values at a runtime dynamically.
    • Using config file user need to make changes to config file which package will take automatically at runtime because of using it don’t need to every time make changes in packages in case deploying package on the multiple servers or locations.

    53. What is the purpose of package in SSIS, and how does build one?


    In SSIS, a package is the collection of tasks, connectors, and the other pieces that execute an ETL job. can utilise the SQL Server Data Tools (SSDT) or the Import and Export Wizard to create the new package in SSIS.

    54. Differentiate between control flow task and data flow task in SSIS?


    In SSIS, a control flow task manages a flow of control in the package by performing tasks in the certain order, looping across the numerous tasks, and handling conditions and events. In contrast data flow task is used to extract, convert, and load data.

    55. How does one deal with missing or wrong data?


    Error handling techniques like as an error redirections, data audits, and error outputs in the data flow activities can be used to be address missing or wrong data in SSIS.

    56. What is the variable in SSIS, and how does utilize it in a package?


    Storage: Variables in SSIS store values for dynamic use during package execution.

    Scope: Variables can be scoped at the package, container, or task level, determining their accessibility.

    Data Types: Variables have data types (e.g., Int32, String) specifying the kind of values they can hold.

    Expression: Variables can be assigned values using expressions, evaluated at runtime.

    57. How does configure security and manage access to packages and data in SSIS?


    Security and access in the SSIS can be managed using the roles, security scopes, and permissions in Integration Services catalog. And can also encrypt packages and data using package protection level.

    58. Describe how checkpoints operate in SSIS?


    In the event of interruption or error, checkpoints in SSIS are used to restart the package from a failed point. When the package has checkpoint enabled, the state of package is preserved after successful task completion. If package fails, it can be restarted from a latest checkpoint.

    59. How to oversee SSIS package execution and monitor status, logs, and performance?


    Event management, logging, and performance monitoring are all the elements that can be used to manage and monitor package execution in the SSIS. can also view information about the package execution and performance by using Integration Services catalogue and SSISDB database.

    60. Fix SSIS problems quickly: handle package failures, errors, and bottlenecks.


    To troubleshoot and debug the SSIS difficulties, can employ an error handling, logging, debugging, and performance analysis. can also use the data viewers, breakpoints, and execution tree to view and analyse data and performance in the package.

    61. What constitutes SSIS data flow task’s essential elements?


    Source: Extracts data from a database or file.

    Transformations: Modify, convert, aggregate, or sort the data.

    Destination: Loads the transformed data into a destination.

    Paths: Define the flow of data from source to destination.

    Pipeline: Represents the data flow through transformations.

    62. How does SSIS extract data from several sources


    The source component in the data flow task in SSIS can be used to extract data from the variety of sources. The OLE DB Source, ADO.NET Source, and XML Source are all the available source components in SSIS.

    63. How are transforms used in SSIS and give some examples?


    In SSIS, transformations are used to change a data in a data flow task. The Data Conversion activity in the SSIS, which converts a data types, the Merge Join job, which merges data from a two sources, and Derived Column task, which generates a new values based on existing data are examples of the transformations.

    64. What function does destination element provide in data flow task?


    In a data flow task, the destination component’s job is to load a changed data into target. The OLE DB Destination, ADO.NET Destination, and Flat File Destination are among SSIS destination components that are readily available.

    65. What is the function of variables in SSIS and how does applied in package?


    SSIS uses the variables to manipulate and store data inside of the packages. To carry out a dynamic actions in package, And can utilise them in expressions, conditions, and scripts. Must first construct the variables before using them in a proper tasks and components if need to utilise them in package.

    66. How does SSIS distribute a package?


    SQL Server Integration Services (SSIS) can distribute packages through various methods:

    SSISDB: Deploy packages to the SSIS Catalog in SQL Server for centralized management.

    File System: Save packages (.dtsx files) to a directory accessible to SQL Server and other servers.

    SQL Server Management Studio (SSMS): Use the GUI to deploy packages to SSISDB or the file system.

    67. How do variables and expressions improve the flexibility of SSIS package?


    Variables and expressions in SSIS can provide the high degree of flexibility to packages by allowing the dynamic behavior and data manipulation. They can be used to store and manipulate data within the package and perform calculations, concatenations, and conditional logic. By utilizing the variables and expressions, packages can be made more adaptable to changing the requirements and conditions.

    68. Explain a complex data transformation scenario that was implemented using SSIS?


    Merging data from the multiple sources with different data structures, transforming it, and loading it into the single destination. They should discuss the steps taken to extract a data, perform transformations, and load transformed data, including the use of tasks like Conditional Split, Data Conversion, and Lookup.

    69. What is the scenario where SSIS used for incremental data load?


    This may involve using a Lookup task in SSIS to compare source and destination data and determine which records need to be inserted, updated, or deleted. This approach can improve the performance by reducing amount of data processed.

    70. Explain how does connect to Oracle, DB2 and MySQL from SSIS?


    Oracle: In SSIS, use “OLE DB” or “.NET Providers\OracleClient,” install Oracle Data Access Components (ODAC), and configure with server details.

    DB2: Connect using “OLE DB” or “.NET Providers\IBM DB2,” install IBM Data Server Driver for ODBC and CLI, and configure the connection in SSIS.

    MySQL: Utilize “ADO.NET” or “ODBC” in SSIS, install MySQL Connector/NET, and configure with server details.

    SSIS Sample Resumes! Download & Edit, Get Noticed by Top Employers! Download

    71. What does SSIS mean when referring to ETL?


    Data integration and transformation can be done on SSIS platform. It is employed to the gather, modify, and load data from diverse sources into the data lake or warehouse. A variety of tools and components for a data processing and transformation are available with the SSIS, along with visual interface for constructing ETL procedures offers the visual interface for creating an ETL operations.

    72. Explain control flow and data flow in SSIS package?


    The control flow in SSIS package defines an overall flow of control in package, including the order in which tasks are executed. The data flow defines flow of data from a source to the destination, and includes the transformations that are applied to the data as it moves through pipeline. The control flow and data flow are closely related, and the data flow is executed within control flow.

    73. What is SSIS data quality and data cleansing?


    Data quality and cleansing are essential steps in ETL process. The applicant must be knowledgeable about the methods for cleaning data, including data standards, data validation, and data deduplication. In order to enhance a data quality, they should be familiar with the leveraging SSIS technologies such the Data Quality Services and Data Quality Client.

    74. SSIS supports various data sources. How does it connect to them?


    SSIS supports the wide range of data sources, including databases, flat files, and web services. Connecting to different data sources with the various connection managers used to connect to each type of a data source, such as OLEDB Connection Manager, ADO.NET Connection Manager, and Flat File Connection Manager.

    75. How is data quality ensured in SSIS?


    Any data integration and transformation process must take a data quality into consideration. To guarantee that data being processed is accurate, complete, and consistent such as Data Cleansing, Data Profiling, and Data Quality Services, the various data quality checks can be carried out, like looking for missing or duplicate values.

    76. What are various types of transformations ?


    • Business intelligence transformation
    • Row transformation
    • Split and join transformation
    • Rowset transformation
    • Auditing transformation.

    77. What Precedence Constraints are in SSIS ?


    Precedence Constraints in SSIS control the order in which tasks and containers are executed within control flow of a package. They define workflow by connecting tasks and containers in a control flow and provide a mechanism to control sequence and conditions of task execution.

    78. What is a buffer in SSIS?


    In SSIS, a buffer is an essentially a chunk of memory that holds data in a transit. During data flow tasks, SSIS uses buffers to be temporarily hold data that is being extracted, transformed, and loaded.

    79. Explain concepts of precedence constraints in SSIS.


    Purpose: Precedence constraints in SSIS control the order and conditions for task execution within a package.

    Types: Success Constraint: Succeeding task runs only if the preceding one completes successfully (green arrow).

    Failure Constraint: Succeeding task runs only if the preceding one fails (red arrow).

    80. Explain implement Slowly Changing Dimension (SCD) in SSIS.


    A Slowly Changing Dimension (SCD) is the dimension that changes over time. There are 3 types of SCDs are Type 1, Type 2, and Type 3. In SSIS, can handle SCDs using Slowly Changing Dimension Transformation, or can manually implement them using the other transformations like Lookup and Conditional Split.

    81. How does one implement dynamic SQL in an SSIS package?


    Create an SSIS Variable: In SSIS package, create a new variable of type String. This variable will hold SQL statement. The scope of variable should be the package or the container that will use SQL statement.

    Set the SQL Statement: Assign the SQL statement to variable. If the SQL statement needs to be change dynamically based on certain conditions, can use an Expression Task or Script Task to modify variable’s value at runtime.

    82. What are late-arriving dimensions, or early fact records in SSIS?


    Late arriving dimensions, also known as early fact records or early arriving facts, occur when fact record for particular dimension arrives before the dimension record itself. This presents the problem in a star schema because it results in fact records with the foreign keys that do not yet have a corresponding records in the dimension table.

    83. How does one stop a package that is running forever?


    It depends. If running the package in SQL Agent, can kill the process using T-SQL. Alternatively, if package is running in the SSIS catalog it can be stopped using the Active Operations window or stop operation stored procedure.

    84. What does “task” in SSIS?


    A “task” in SSIS (SQL Server Integration Services) denotes the particular activity or action carried out as part of package. The building blocks of SSIS packages workflow design are the tasks. Each task carries out the particular action, like extracting, converting, or loading data into a destination.

    85. Explain solution Explorer in SSIS?


    A Solution Explorer in the SSIS Designer is the screen where can view and access all the data sources, data sources views, projects, and the other miscellaneous files.

    86. How does differentiate SSIS from Informatica?



    • It is simple to use and maintain.
    • It can be simply implemented.
    • It has no cost, meaning it is a cost-free or free to use.


    • It is easy to use but a difficult to maintain as compared to SSIS.
    • It is a bit complex to implement.
    • It is expensive.
    • It has comparatively higher productivity while implementing the larger applications.

    87. Define Derived column Transformation?


    Derived column create the new column or puts management of several columns into the new column. And can straight a copy existing or create the new column using more than a one column also.

    88. Explain Multicast Transformation?


    This transformation sends output to the numerous output paths with no provisional as conditional split does. Takes ONE input and creates the copy of data and passes a same data through the many outputs.

    89. Explain Audit Transformation?


    It allows to add auditing information as required in an auditing world specified by HIPPA and Sarbanes-Oxley (SOX). Auditing options that can add to transformed data through this transformation are:

    • Execution of Instance GUID: ID of execution instance of package
    • Package ID: ID of package
    • Package Name
    • VersionID: GUID version of package
    • Execution Start Time.

    90. When does use SSIS?


    • If want to integrate and analyze a data from various sources.
    • Whenever want to infuse business intelligence into process of data transformation.
    • When have to work with the various business workflows where the information will be retrieved by passing different sets of parameters
    • When project requires the analysis of various data marts and data warehouses.

    Are you looking training with Right Jobs?

    Contact Us
    Get Training Quote for Free