Skip to main content


A Short Introduction

Blaise is a powerful and flexible software package used worldwide for statistical and scientific research.

The Blaise language is suitable for creating a computer assisted survey. The questions can be described in a data model. This data model contains information comparable to a code book, describing a fixed structure of the survey data. It can also contain rules, where you can specify the question order and conditional routes and checks. In many cases a Blaise data model describes a Blaise questionnaire, but this is not necessarily the case. A data model can also describe the data structure of a coding table, or a readily available database.

The software supports the process of both data collection and data processing. It is therefore suitable for use by the researcher as well as the statistician. In addition, system developers can customize or expand the functionality of Blaise applications to use in their own applications.


The first version of Blaise dates from 1986. It was created by Statistics Netherlands to help collect and process data. It was an MS-DOS version, originally written in Turbo Pascal, later migrated to Delphi. After expanding its client-base to statistical institutes across the world, the first Windows version was released by Blaise on July 24, 1998 (Blaise 4.0). The development of Blaise 5 started in 2008. It's developed with .NET to allow for new formats such as smartphones and tablets. More recently, MVC and AngularJS started being used in the code as well.

At Statistics Netherlands all data collection is done in Blaise 5, but Blaise 4.8 is still widely used for analyzing the data.

Datamodels and questionnaires

Datamodel and questions The Blaise language is suitable for creating a computer assisted survey. The questions can be described in a data model. The data model contains information comparable to a code book, describing a fixed structure of the survey data. The data model can also contain rules, where you for example can specify the question order and conditional routes and checks. In many cases a Blaise datamodel describes a Blaise questionnaire, but this is not necessarily the case. A datamodel can also describe the data structure of a coding table, or a readily available database.

Questionnaire design made easy

Blaise has been designed to make it easy to define computer assisted questionnaires of different size and complexity. You can create small and simple questionnaires, but you can also create huge, complex and hierarchically structured questionnaire models, and link them to available external data files. The data model can be highly structured in blocks, tables (Blaise 4), groups (Blaise 5) and arrays. Fields of various types can be defined. Blaise fields have special properties for survey questions (question texts, answer texts, remark facilities, predefined categories for "don’t know" and "refusal", options for multilingual texts and many things more). It can be prepared easily into a questionnaire and there are data entry facilities for different interview modes (CAPI, CATI, CASI, CADE, CAWI). These modes, from face to face interviewing to WEB interviewing, can be combined. For telephone interviewing (CATI) a complete management system is available to arrange that respondents will be scheduled automatically in time (for example, after appointments, busy and no-answer calls).*

* A production-ready version is available in Blaise 5, but new functionality is added on an ongoing basis

Flexible question routing, validity checks, conditional errors and computations

A Blaise questionnaire may contain complex routes for conditional questioning (in the rules of the data model). It is easy to organise that Fields or Blocks are either activated or skipped depending on a combination of answers to previous questions. Data validity, as defined in the data model, can be checked at each stage of the survey. Range checks can be performed automatically. Conditions can be defined to check plausibility and to avoid data entry mistakes. A hard error dialog may prompt for correction if your defined conditions are not met. Soft errors can be defined that may prompt for rejecting or accepting a less critical error. Field values can be computed online, for example, an Age field can be computed as soon as a birth date has been answered. Begin and end times of an interview can be computed and stored in the data. Like in other program languages, many functions are available for online computations.

Customizing layout, menu items, menu text and language and other special applications

There are many layout control options in Blaise. For example, you can add layout and text fill controls in a question text. The modelib editor, enables you to customize the layout (fonts, position and colours for all panels) of a questionnaire and lots of behaviour options (such as autosave and dynamic routing). The Blaise Menu editor lets you customize the displayed menu items and adapt the used text (and their language) for data entry. You can define buttons in one or more (dockable) panels. Furthermore, the appearance of certain field types can be controlled by applying a value mask. This can also be used to define restrictions on valid data entry (for example, accepting only numerical values in a string field). For selecting a category value (enumeration value), the answer list may appear just as text with radio buttons, or as a list box or just as an open space where the right answer should be typed. This can be controlled in the "datamodel properties".

Reading and writing external data, online coding and data manipulation

For classifications, Blaise supports three coding methods: alphabetical, hierarchical and trigram coding. You can define or link classification systems to perform coding online during a data entry session.

Datalink procedures are available to communicate with various external data formats. For example, when running the Blaise data entry program, entered and edited survey forms can be stored in an Oracle or SQL server database.

Data manipulation and data entry can both be combined with external DLL routines. These and other applications can be performed during the data entry session, but they can also be done afterwards. In many organisations, user-made applications made in the Manipula language are used for auto-coding, checking plausibility and validity or to clean data, or simply to prepare data files for analysis.

Beneficial for all

As a development system, Blaise is suitable for both the small and the large survey organisation. A control centre integrates many tools that help the developer produce and test instruments. Blaise can be used for surveys in multiple modes such as CATI and CAPI combined collections.

  • For interviewers, data entry personnel, and data editors, the interfaces are powerful and elegant and have proven to be very efficient and popular. For methodologists, Blaise allows data to be gathered correctly by using edits during the interview.
  • For high-level managers, Blaise can increase productivity. During instrument development, one system specification handles many tasks. During survey production, data collection, coding, entry, and editing are all combined into one or a few steps.
  • For systems managers, Blaise is a powerful, generalised system that can be customised to the organisation's needs, avoiding the need to develop expensive in-house systems.

Easy to use

Subject matter specialists, statisticians, and programmers can become adept at authoring Blaise instruments. The modular and reusable structure of the language allows many surveys to use the same blocks of code with little or no modification. This results in faster, surer development and better comparability between surveys. The multi-mode nature of Blaise encourages (and can enforce!) consistent specifications and conventions between multiple modes of use.

Additional Capabilities

Blaise has an open system architecture that supports the integration of Blaise with non-Blaise systems and software.

Use of DLLs and ActiveX

If you have a special need and Blaise can not handle it, you can extend the system by using the Blaise components. Using Dynamic Link Libraries (DLLs) and ActiveX components extend the system in various ways the designers of Blaise did not implement in the basic system. You can use DLLs to display graphics, read data from a serial port, invoke specialised coding software, or perform a complex calculation already programmed elsewhere.

Monitoring data entry

A special application is the audit trail utility. It can generate a log file* for a CAPI, CATI, CASI (Blaise 5 only) or CADE data entry session, with generated time measurements to track down what happened during an interview, or to test questionnaire results when you are developing a new Blaise questionnaire. For the CATI system log files are saved automatically, including (adaptable) details about dial results for every questionnaire form.

* In Blaise 5 the logging is done in databases.

Connecting to other processes

Within a Blaise survey application one can interact with other processes, running executables, DLLs, and ActiveX components from the survey menu.


Blaise has always sought backward-compatibility. This means that a system developed by Blaise 4.8 can, in principle, also run in Blaise 5. However, the reverse may not always be true. It is recommended to check if older applications still run correctly after the transition to a new version.

Changes from previous versions are described in the Blaise 5 help file under "What's new". Also look at the chapter "Blaise 5 for 4 developers". You can find help through the Control Centre in Blaise 5 or online via this link.


Blaise can be implemented in a manner that is HIPAA compliant and is able to implement security controls that are considered best practices for HIPAA compliance.

Gaining deeper understanding