Quota: sticking to the script

Nobody likes quota. They have the off-putting echo of a well-wishing community reluctantly leaving Apartheid behind. If researchers mention quota, it’s because you did not hit the targets. If a financial director mentions them, it’s to tell you how you went over and blew the budget. You do not like quota – and us, programmers, well, it was never our favourite part of the job.

But with askiafield 5.4, we have put that behind us and made quota sexy. We have rebuilt the quota interface and the quota distribution engine.  Upgrading an interface – although time consuming – is rarely a problem. Well, we made it look cool which was quite a bit of work.

Changing the entire quota engine is not something that one should approach lightly. We did it with extra care: we put together hundreds of unit tests (where we predict and verify the output of code) and integration tests (where a full automated run of CCA is monitored and the results analysed).

This refactoring had a few goals:

  • Simplify interface(s): quota definition and the quota monitoring could be done in the same window
  • Add functionality: multiple questions, numeric, grouping responses, remove all limitations on the size of the quota tree
  • Expose through an API: the quota can be defined and monitored from a web interface – or automated from an external system (like Platform One)
  • Clarify quota scripting

This article does not focus on the actual functionalities of the quota – they are documented here – but on the impact of scripting quota through routing.

Why script quota?

Scripts are not usually used for screen-out quotas. These are usually dealt automatically (by the dialler in CATI or by the automatic settings in quota). You want 500 males in region X – once you have them, the interview is simply terminated.

Typically you need script when you want have to take a decision about which concept(s) you want to test. You first ask which ads they have seen and you decide to randomly pick 2 of them and question about them.

Ideally you want to select the ones that are the least filled – the ones furthest away in counts or lowest compared to the target percentage. And you might have weird priorities to take into account (always test your client’s brand against another one, etc…).

The rules can be complicated but we have provided simple functions for this.

5.3: the unbearable weakness of strings

In 5.3, you had the possibility of querying the state of the quota by using IsQuotaFullFor, QuotaToDo, MaxQuotaToDo, and AvailableQuota.

It did the trick for a while but there were problems:

  • It was dependent on a string (e.g, QuotaDoTo(“Region:1; Product”)). It was easy to spell it wrong and only realise that you had misspelled a question near the end of fieldwork.
  • It assumed you knew your quota tree – if you had not nested the Product within the Region (or decided to relax the rules near the end), you would get the wrong result.
  • The returned result was only looking at one quota row at a time.
  • The target counts were not taken in account to prioritise your selection.

Quota in 5.4? Sorted!

Enter 5.4 – well 5.4.4 really. We have introduced new keywords: they are methods of questions instead of functions. In other words, you write something like Gender.AvailableQuota() instead.

  • AvailableQuota: returns an ordered list of responses for the quota which are still open. The ordering is done according to the count: the first element is the response where the highest number of interviews are to be found.
  • AvailableBalancedQuota: Same as AvailableQuota but the ordering is done by the difference between targets and observed.
  • QuotaList: Same as AvailableQuota but all responses are returned (even the one ones over quota).
  • BalancedQuotaList: Same as AvailableBalancedQuota but all responses are returned (even the ones over quota).

If you want to specify some additional information about the tree you can: its works like this: Product.AvailableQuota (Gender: 1, Region :3). This means no more spelling mistakes would get in the way as the compiler would pick on the fact that you specify an incorrect question.

Another thing: if the gender and the region are specified in the interview, you do not need to indicate them but you could get information about another region for instance.

But from now on, if you need to pick 2 products to test and regardless of the nightmare of a quota tree you may have defined, you should simply write:

Dim arrProductsToTest = Product.AvailableBalancedQuota()

Return {} + arrProductsToTest[1] +  arrProductsToTest[2]

Back compatibility – what is it good for?

You know we care about it. We really wanted it to make sure that scripted surveys would work as usual. But we wanted to ensure that the old weaknesses were gone. So all previous quota functions will work with the old string… but we also took the liberty of sorting the result for your convenience… and to check the whole quota tree in case a priority at top level interfered with one of the nested quota.

So we have back-compatibility but not quite: it’s simply better and more flexible – and when the old quota tree was failing, you will get the expected results. We hope you agree.

Quota categories

The algorithm to know if a quota target applies to a given interview is actually quite complicated but we are going to explain it as simply as we can… feel free to skip this (and trust us).

Let’s imagine we have a quota tree like:

Root TO DO
1 Male 50
2 Product A 40
3 Product B 0
4 Female 40
5 Product A 15
6 Region1 10
7 Region 2 5
8 Product B 15


Let’s look how we run the following Product.AvailableQuota (Gender: 2) call:

  1. We will look for the availability of the first modality (then second…) – so first we will look at Product A.
  2. We count the number of targets we need to attain: one for the question object and one for each of the questions passed as a parameter (Product.AvailableQuota (Gender: 2) would mean 2 targets, Product.AvailableQuota (Gender: 1, Region 2) would mean 3).
  3. We create a quota category where we set the Product (according to step 1) and we also set the parameters
  4. For all questions used in the quota, we look in the interview to see if we have data and we set it in the category.
  5. We are going to iterate through the tree – starting at the root
  6. When we hit a response for a question that’s defined in the quota category, we either explore the sub-tree or skip the branch. For example, for Product.AvailableQuota (Gender:2), when we arrive at row 2, we would skip the entire tree and continue at row 4
  7. We count the number of questions we have found which are part of our targets (as defined in step 1). If we are looking for product A in Product.AvailableQuota (Gender: 2) we would hit that target on row 5
  8. Once we have hit the target we add all the sub-quota rows. So for product A in Product.AvailableQuota (Gender: 2) we would select the following rows 5,6,7. All the quota rows? Not quite! If the region 1 was set in the interview, we would not add row 7
  9. Once the whole tree is scanned, if we have selected 0 rows, we remove one of the targets (like Gender or Region in the Step 2 example) and start again at Step 2
  10. We would go through all the selected rows, and we would return the To Do with the most constraining value (the maximum of the minimum To Do and the minimum of the maximum To Do). Yes you might have to re-read that last sentence.
  11. Do the next response (product B) and re-start at Step 1)

There is added complexity for groups… if a response is in a group and has no targets, we use the first parent group who has a target.

If a response does not have a target, we assume that the To Do value is 1.

That’s it folks!


We think that AvailableQuota and AvailableBalancedQuota should cover 99% of the scripting needs. We’d love to have your feedback on this of course. We might later introduce a quota object where you will be able to query the actual min and max target or the priority… let us know when you need that and how you think it should work!

Enter the automation era!

It’s not new, Market Research is doing badly.

A few years back, to improve profitability, most major MR institutes have been sub-contracting Survey Programming and Data Processing to Eastern Europe or Asia. This has not been enough. The next step to increase productivity is automation. The successful launch of Zappi Store has made every one acutely aware of this.

Zappi Store uses Millward Brown or Brainjuicer’s methodology to run very formatted studies, entirely automated at unbeatable costs. They have a survey with a few customisable parameters – say the name of the brand, the logo and a list of competitors. With that, they purchase the sample and produce a PowerPoint presentation with all the key (automated) findings.  Who needs researchers and analysts anymore? Actually you only need them once – to design the methodology.

At Askia, we have always known that automation was key to improving performance. At our last user conference, we presented what clients did to automate our system… and our system was always very easy to integrate in a larger enterprise ecosystem because not all of our clients use our full range. Some just collect data, some just analyse data with Askia. So we always conceived our software like bricks in a very heterogeneous Market Research wall.

The cement to these bricks is import and export to open standards but also to produce and document APIs: Application Programming Interface – that is entry points for your own geeks to play with our toys. And if you do not have your own geeks, don’t despair: some independent geeks have decided to integrate our APIs so you can automate Askia tasks.

With the new version of AskiaField (its very sexy name is 5.4.2), we have pushed automation to a new level. You can entirely control AskiaField from a custom made application – standalone app or even a web application. Eventually this means that the AskiaField Supervisor will be a web page. But in the meantime, you can write a piece of software that creates a survey script in XML, uploads it to AskiaField, makes it live as a web survey, creates a list from your customers database, email them, cleans the data by removing speeders with AskiaTools, analyses the data and produces a report that you can email every morning to your stakeholders or provides them with a dashboard.
Automation is the future – you are going to need a few more geeks… oh and some air freshener!

Askiaface for iOS 3.2.0

Today, we released askiaface for iOS 3.2.0 on the App Store. This update includes the following new features:

  • Kiosque mode for iPad
  • Schedule daily survey data sync

Kiosque mode

Askiaface iOS Kiosque mode screenshot

This new feature allows you to setup an askiaface for iOS (for iPad only) questionnaire as a Kiosque survey. A Kiosque survey enables you to provide a self-interviewing environment with the following:

  • Loop interviews: as soon as the current interview is completed, a new one is automatically generated and displayed on the tablet.
  • Secured kiosque mode: users can only exit Kiosque mode after providing the per Askiafield server password.
  • Inactive kiosque interview management: if no activity is detected on an in-progress Kiosque interview for at least x minutes, the application will abandon that interview and generate a new one. Of course, you decide on a per server basis the duration of the timeout.

Askiaface iOS Kiosque mode screenshot

Disclaimer: Kiosque mode is currently offered as a freely accessible trial. Access to this feature will be subject to specific licensing.

Schedule daily sync

To accompany the above new Kiosque mode, we’ve added the possibility to schedule daily survey data syncing.

Askiaface for iOS Scheduled Sync screenshot

This will allow you to synchronise all your survey data without having to operate each Kiosque devices. Even though this feature is only available on devices on which at least one Kiosque survey has been setup, it will sync data (interviews as well as questionnaire updates) for all available surveys on the device.

Askiaface for iOS Scheduled Sync screenshot

Access the Schedule Daily sync in the app’s sidebar and set the time of day to trigger the synchronisation. You’ll of course be able to deactivate feature when you no longer need it by simply toggling the Daily Sync switch.


As usual, we have also fixed some issues:

  • Various fixes on issues with keyboard input in the Settings view.
  • Fixed a performance issue in the app views.

This update is already available via the App Store and will soon be available on your favourite Android devices!

New Knowledge Base articles!

We’ve been adding a host of new articles and survey resources to our Help Centre; here are some of the most noteworthy of them:

Quota Monitoring for Analyse & Vista

This article shows the use of the Read quota function in a Closed by scripts created variable. We combine this function with table arithmetic scripts to create a portfolio that will allow you to monitor the progress of your quotas as new data is collected. The examples are shown in Analyse and Vista 6.

This simple yet complete solution only requires you use the latest version of AskiaVista ( and Analyse ( and higher; of course, you’ll also need a survey with at least one quota question with some data!

Quota Monitoring in AskiaAnalyse screenshot
Quota Monitoring in AskiaAnalyse
Quota Monitoring in AskiaVista screenshot
Quota Monitoring in AskiaVista

Check the example Quota Monitoring setup in AskiaVista online and read the full article to start monitoring your quota management during fieldwork!

Using table arithmetics to lookup other tables

This article details the use of arithmetic calculations to look up data from one table layout (broken into separate tables by edge response) into another table layout (summary in single table).

Basically, the idea is to create a new tab definition which has the structure required and then do a lookup of the values from the original table(s) into this new table (by using the GetTable method). The original tables are broken by edge response to produce 7 tables:

Using table arithmetic to lookup other tables 01

The goal is to obtain the results as below with the attached table structure:

Using table arithmetic to lookup other tables 02

Check out the full article.

Programming Col Sig (means): Classical Student Test

This article demonstrates how to script the formula for Student Test and Student Test using estimator for testing means. Formula and syntax are shown for tables using regular mean calculations as well as Script (mean) calculations which would be used in a mean summary table.

The article details how to program Column Significance tests for means using both the Classical Student test as well as the Student test using estimator.

You can read the article and check the attached example .QES & Portfolio.

How to disable input on Numeric keypad

This article provides a simple snippet of JavaScript to allow you to disable input from the respondent’s or interviewer’s Numeric keypad.

This snippet works for askiaweb as well as askiavoice and askiaface (when using web screens).

Read the full article to start using the code snippet.

Design FAQ

Rather than an article, this Help Centre page list many of the most frequently asked questions concerning askiadesign. Here are some examples of such questions:

  • How should I name my survey questions?
  • How can I change the default theme for my surveys?
  • Is my version of askiadesign up-to-date?

There are many more such questions, so don’t hesitate to check out the FAQ page to see what it’s all about!

Embed an online video in a questionnaire

This article demonstrate the process of embedding video content from an online video source (e.g Youtube, Vimeo, Dailymotion, …) in your survey:

Embed an online video in an Askia survey screenshot

See the article so you can setup your own Rick Astley survey :)

New ADC: map

A new map Askia Design Control! This one is a bit particular as it allows you to many different maps for your survey controls:

  • France
  • United Kingdom
  • USA
  • Germany
  • Belgium
  • Italy

Below, some of the maps:

France map survey control screenshot
France map survey control
USA map survey control screenshot
USA map survey control

Download the new map ADC.

New ADC: pinboard

This brand new Askia Design Control allows you to provide rating-like annotations to one or more images. It is extremely simple to add to your survey as it only requires an open-ended question in a nested loop.

See the video demo below:

You can also take a look at the source article to pick up the ADC or the example survey.

New ADC: auto-complete

This last Askia Design Control allows you to provide a searchable list of responses to your interviewers and/or respondents. This simple survey control just requires an open-ended question and the data source for the responses (XLS, XLSX, CSV, … converted to JSON).

See the below video introduction:

You can once again read the original article to download the ADC and check out the example survey.

Askiaface for iOS 3.1.1 released!

We are pleased to announce that we have just released an update to askiaface for iOS: version 3.1.1. This update includes the following improvements and fixes:

  • Updated Base SDK to iOS 9.3
  • Added Remove survey feature
  • Integrated UI for remove survey feature
  • Added specific warning when deleting a survey with / without interviews
  • Fix when resuming interview on a preliminary selection loops
  • Fix on response blocks that contain MS Word’s `…` special character

Delete survey

The main feature, Delete survey, allows you to remove an available survey from the list of questionnaires:

Remove survey in askiaface for iOS screenshot

If ever you remove a survey for which you still have complete and/or incomplete interviews that have not been synced back to the askiafield server, the iOS app will warn you and require you synchronise your data before removing the survey:

Remove survey warning in askiaface for iOS screenshot

Once all local interviews for that survey have been synced, you can delete the survey:

Remove survey confirmation in askiaface for iOS screenshot

Base SDK updated

We have updated the base SDK used to build askiaface for iOS to version 9.3 (the latest available) in order to benefit from various performance improvements and fixes. The application now supports devices running iOS 8+, iOS 7.x is no longer supported.

This update is available directly from the App Store so head there to get the update!

Knowledge base updates

Below a quick introduction to the latest articles added to our Knowledge base by our tech support team.

Significance Testing for Overlapping & Independent Samples

This article gives more information on the situations in which overlapping samples can be sig tested in askiaanalyse. This KB article explains the correct tests to use when testing for significance in independent or overlapping samples.

Significance testing diagram

If you are sig testing columns and it’s the case that a respondent belongs to more than one column (e.g. in a multi-coded question or loop summary table) then the most statistically accurate tests to use are the paired tests. Otherwise, it’s the independent tests.

Check out the knowledge base article for the detailed version.

Clean up your askiafield environment

As with many server applications, we, as users, tend to let our askiafield server environment clutter with files, leftover metadata other useless tidbits. These can slow down the host environment and even impact production performance.
We have added a complete guide to get rid of this unused data, free up some space on your askiafield server.

From freeing up memory to speed up application responsiveness to backing up your SQL data and askiafield data to save storage space.

More information in the full article.

Programming Column Significance

This 3-part article details the use of Student Test column significance calculations in askiaanalyse. Each part of this article concentrates on specific aspect of these calculations:

1. Classical Student Test

This article demonstrates a scenario in which which we would need to script the formula for Classical student test on closed question. It shows the formula and gives two examples on how to program it with a few tips on how to refine the syntax and mirror settings in the pre-set col sig calculation.

2. Student test using estimator

This article demonstrates how to script the formula for Student Test using estimator on closed questions. Formula and syntax are shown along with tips on how to mirror particular settings in the pre-set col sig calculation.

3. Student test using efficiency coefficient

This article demonstrates how to script the formula for Student Test using efficiency coefficient on closed questions. Formula and syntax are shown. There is also a demonstration of calculating Effective base manually.

Read this 3-part article:

AskiaField updated to 5.3.5

AskiaField has been refreshed! As you might know, the dev team is full-blast, hands in the engine, getting ready to release our next major AskiaField version 5.4.
Along with the early days of 5.4, our Belgian partners, MyForce, have recently made a big process audit and started implementing new software release systems, wishlist systems for new features, and large-scale automatic testing processes.
Before these marvelous times come to production, we wanted to introduce you to our latest and final iteration of AskiaField 5.3 : version 5.3.5, which comes packed with features that are announcing 5.4 and its awaited multi-mode surveys feature.

On the menu today

Partial multi-mode surveys, lightning-fast data exports, “pretty” URL invitations, stereo recording on agents, “Call now” feature improvement, new keywords, and more…

Partial multi-mode surveys

(Start in CAWI, finish in CATI)

5.3.5 announces the beginning of the true multi-mode era. We have added the possibility for the respondents to start a Web interview, and then allow telephony agents to call them back to help them complete the interview over the phone. It was also possible before 5.3.5, but required the use a couple of workarounds.
Now, it is as easy as can selecting one option in your sample list!


Here is the feature highlight article in our help center.

The opposite operation (starting an interview in CATI and resuming in CAWI) will be included in a later release. Nevertheless, we have started to add features such as the ability to send an encrypted invitation mailing directly from the CATI station  to ease the transition.

Lightning fast exports

Mehdi – our french database guru (among other titles) – has completely re-worked the data exports to QES files.
The benchmarks are heavily setting the new exports as winner, with an average exporting speed improvement of 1000% (yes, three zeros).
We had already made this available in the form of a command line tool but starting from 5.3.5 on, the power of this tool is now included in CCA’s default installation.
Also, in order to scale up, we have separated the tool in an external service.

Read the article on our help center.

Pretty (and encrypted) invitation links

Askiaweb, in its 5.3.5 iteration, now supports shortened, “prettified” survey links!
It used to look old, and it sounded wrong to include machine-related information in the invitation links, such as the usual /cgi-bin/askiaext.dll parameters.

So, you can now switch from:




We also packed in encryption options, to hide parameters like &Name=Stephen that respondents could attempt to modify just for fun.
It will look like:


Find out more about Shorter, encrypted URL invitations in the Help Center


And below, more cool features for you to read on!

New importation keywords.

Stereo recording on agents

“Call Now” feature improvement

Call history available from CATI

Brand new online documentation

We are extremely pleased to announce that we have released our brand new online documentation for our software suite: askiadesign, askiafield and askiaanalysis.

You can access these new online assistants here:

This major update of our documentation was led by Tim Macer and Andrew Walford from Meaning Ltd and offers many new features:

New help authoring tool

We replaced our old help system (farewell RoboHelp!) and are now using a new web-based help authoring tool that allows us to easily update and maintain our documentation. This should drastically improve content update frequency and allow us to add new feature documentation and fix potential errors as soon as we spot them!

Screenshot of Askia's new online documentation


Responsive documentation

Our new documentation is now fully responsive and therefore allows you to use any device to access it: mobile, tablet, laptop or desktop computer. Allowing you to access our software documentation whenever you need it, from wherever you need it.

Screenshot of our mobile documentation layout

Powerful search engine

This new system provides our users with a powerful built-in search engine that delivers instant and relevant results from the first keystroke. This, in addition to the possibility of opening each help topic in its dedicated tab will allow you to easily find the resource you need.

Screenshot of online documentation search results

Other features

Our new assistants offer some other interesting features, such as:

  • Save a specific page as a PDF
  • Save the entire assistant as a PDF
  • Permalinks to each article page
  • Fully populated index to help you find articles related to specific topics

Freshly infused knowledge base articles

In case you missed them, here is a recap of the latest batch of freshly pressed Knowledge base articles, directly extracted from Askia’s Help Centre.

Highlight row and column header in question tables

This one is a little treat for survey designers looking to sweeten the look and feel of their question tables.This comes along with a nice buy 1 million youtube views guide for you bussines.
Thanks to a couple of css classes and a jQuery script, row and column headers will change colour when their associated cells are hovered.

Check out the example and explanation on Askia’s Knowledge Base

64/32bit ODBC drivers

For those who decided to take a step forward and use the AskiaField platform as a 64bit application, links to external databases will also need to be upgraded.


Here is how it’s done

.QES file limitations

Can this question shortcut actually be a full sentence ? How big can a question table be ?
If you happen to wonder what physical limitations could harness your creativity in terms of survey design, check out this updated version of the various file limitations list.

New in the Knowledge Base

We’ve recently added a host of new articles to Askia’s Help Centre, for those of you who haven’t had the time to check them out, here’s a breakdown of the new Knowledge Base posts:

Survey intros & outros

Survey intros (AskiaIntro) & outros (AskiaOutro) have been specifically designed for askiavoice CATi interviewing. They allow users to add an intro and/or an outro section to their survey.

Survey intros & outros

The AskiaIntro section will be asked to the respondent for each contact (once per call) and can therefore be used to screen our respondent.

The AskiaOutro section will be asked each time the interviewer closes the interview and can be used with routing logic (and even JavaScript) to enhance it.

Check out the KB article for all the details.

Setting up a multi-mode survey

While askiafield 5.3.5 integrates a built-in module for managing multi-modal surveys, this article allows you to deploy such data collection methodologies when using prior versions.

This in-depth post will provide all the information necessary for you to set up a CAWI to CATI or a CATI to CAWI survey.

Read more about how to setup multi-modal data collection and download our example survey.

New ADC 2.0: Star rating

We’ve added a brand new Askia Design Control (2.0) to our free library of survey assets:

Star rating Askia Design Control

This new JavaScript control is designed for single and numerical questions and can be, as usual, heavily customised (colours, text, tooltips, number of stars, statement styling, …).

Take the demo survey for a spin or download the Star rating ADC 2.0 now!

Do-Not-Contact lists

Since askiafield 5.1, we have added the possibility to create a list of contacts you don’t want to call or email: Do-Not-Contact lists.

Such lists allow you to easily manage blacklisted contacts directly from within the interface of Supervisor.

Go through the detailed article to setup your own blacklists.

Adding new chart types to askiavista 6.x

Askiavista 6.x makes use of the very extensive Highcharts charting library but we have only added certain basic chart types be default in the application.

However, this article details the few very simple steps in order to add any number of new chart types:

Adding new charts to askiavista

Read the Knowledge Base article for more information on how to add new charts to askiavista 6!

Script calculations in askiaanalyse

Script calculations are a great way of setting up your tables in a more efficient manner. They give you the ability to achieve tables which would not be possible otherwise.

Script calculation properties in askiaanalyse

This in-depth KB article introduces calculations which use scripts; it also shows examples of how they can be used to make a table set-up more efficient and concise.

Setting up an expired portfolio page for askiavista 6.x

Askiavista 6’s new Portfolio Link Management allows users to customise & fine-tune their askiavista reports (embed tables, charts, text, images, …) as well as set expiry dates for each such portfolios in order to prevent access after a certain date.

However, by default, such expired portfolios will trigger a 410 web server error and your end-users will be greeted by a not-so-sexy web server error.

This article therefore details all the necessary steps in order to create your own custom expired portfolio page(s).