AskiaAnalyse: team me up, Scotty!

The software in the Askia range have been designed to work alongside each other.  If you know how your survey tree looks in Design, you will not be surprised by how it looks in Analyse. That’s the whole point of an integrated suite.

Analyse has mainly been designed to work with a single user, creating their weightings, calculated variables and filters in their QES file.

When we realised that a lot of our users were working on continuous surveys, we introduced Surf files: the analysis definitions were stored in the Surf files so there was no problem whenever you were adding more data.

However, there were two types of user for which Askia Analyse was not performing well:

1. People importing their data from an external source (e.g. triple-S, SAV, Dimensions etc)

They would import their data, maybe create a question tree structure in Design and create multiple questions or loops in Tools. Then they would create variables, weightings and sub-populations in Analyse and save their portfolios.

Now if there was any problem with the source data, such as, additional data or cleaning errors, the whole import would have to be done again. Of course, we provided ways to improve the speed of the process:

…but we wanted to make things quicker.

2. People within large teams

In large teams, a portfolio could be created by someone and run by someone else. It’s not always the same people who create the Surf file and use it. Again we had made sure that the portfolios can be shared. If someone created a sub-population within a portfolio, it would be re-created in Analyse but what about calculated variables, recodes and weightings?

To please all these users, we have implemented a new range of developments:


Firstly, we have implemented myView: it lets users re-organise and hide variables as well as hide responses and automatically associate calculated or grouped responses to questions. It’s something we have given a lot of TLC to. Since the ‘my limited view’ definition is stored outside the QES or QEW (in an .mlv file), if your survey changes (after a re-import), the myView file can be re-used (and opened automatically).

Portfolio improvements

Secondly, we have stored a few more things in the portfolio. The weightings and even the calculated variables & recodes. This means that if you use any weighting or portfolio (as well as tab-template and sub-population), their definition will be saved in the portfolio. If you re-open that portfolio in a different QES or QEW, all these definitions will be re-created automatically! – If these already exist in the survey; the system will warn you if they are different.

Creating loops

Finally, an ambitious development scheduled for We have decided to let people create loops in Analyse (well they are called levels, aren’t they?). This means even if you have data in Surf, you will easily be able to bring questions into loops without writing edits or transforming several files in Tools.

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:

New version of askiaanalyse

This post is the second in a series that detail the key features in version of askiadesign & askiaanalyse. The blog post on askiadesign can be found here.

Much development work has been invested in to take our Analysis software to the next level. A detailed list of these great new features can be found in the version roadmap. Below are a summary and examples of several key developments:

Table of contents:

    1. Table arithmetic (Cleaning script)
    2. Aggregated scripts
    3. Table arithmetic (Calculation arithmetic)
    4. Table suppression
    5. Paste captions
    6. New keywords in script calculations
    7. New options in level

For items 1 to 3 there is a range of articles on our help centre which go into a greater amount of detail than we will in this post. The objects, properties and methods for the new scripting language are summarised in this document.


Table arithmetic (Cleaning script)

The ‘Cleaning script’ is a process that runs immediately after your table is created. It changes the appearance of a table based on the figures it has in it. So, for example, you can have sophisticated conditional formatting or fill text and numbers into cells of your choice using syntax. Here I will demonstrate how to change the default column significance lettering to display a shape of a particular colour.

In the table below we are testing each column against the total column only – we can see if it is significantly different by the letters returned from some of the pre-set options: higher (“A+”) or lower (“-A+”).


What if the requirement is to show something other than these pre-set options e.g. a green ▲ for higher and a red ▼ for lower

The ‘Cleaning script’ window is found in the Tab definition > General tab > Settings > Sorting. We can achieve this requirement by adding the script below. It’s basically script that defines the data range first (StartX, StartY) (2, 5) to (MaxX, MaxY) (10, 18).Then it carries out a find and replace to insert the shapes and formats where required.


The portfolio and .qes file containing the tab template shown above can be downloaded here. The end result is as follows:



 Aggregated scripts

In basic terms, aggregated scripts are a way of retrieving aggregated information e.g. a mean or median. So you can now create coded variables from this point like: those above mean / those below mean and this variable won’t require additional work when new data is added to the .qes file (and the mean changes).

The example .qes file can be downloaded here. Take a look at variable avg#3. We are able to display the average time in the correct format by first working out the mean of Q4a. We use (17.73) to do this. In the second line we work out the mean with no decimal places (17). In the third line we work out the difference 0.73 and re-factor it be between 0 – 60 (44). Then, finally, we insert these numbers into the text we want to display: “Average Time – [17:44]”


The above example shows aggregated scripts for use in created variables but they can also be used in the cleaning script and calculation arithmetic script modes. The latter is demonstrated in the example portfolio in tab definition: Average Time – Method 1. Here there is the calculation: Average Time which performs a similar format adjustment on our mean for Q4a.

Table arithmetic (Calculation arithmetic)

In the example .qes file and portfolio which can be downloaded here, open the tab definition: 2.TA_Calc_Arithmetic. 

Here you will see a 10 point rating scale for 10 brands. The aim is to create a simple calculation:

100 * sum of (count x rating) for one brand / sum of (count x rating) for all brands

So for the first brand it would be: 100 * (182) / total of all entries in the ‘Sum’ row (1498) = 12.15


When using calculation arithmetic we think of every cell in the table as having x & y co-ordinates e.g. the top left cell has co-ordinates (1,1)

We define our range of cells we want to sum across:

j = CurrentTable.startX to CurrentTable.maxX

Where startX is the first column which contains data (3) and maxX is the last column (12) now we sum up all the values contained in these cells on the 12th row (Sum) using the following syntax:

i = i + CurrentTable.getcell(j,12).value

 Note, here you can replace the y co-ordinate of 12 with:  CurrentTable.maxY – 1  – this also means the 12th row but will automatically look at the 13th row if one more rating is added to the scale.

Now that we have our ‘total of sums’ we divide the sum calculation, Calc(1), by this to get our desired result using: return (Calc(1) / i) * 100

You may have noticed that we now use Calc(1) instead of the calculation reference we used previously {1}. This is necessary for adding the new scripting language in this calculation type. References previously saved as {n} here will be automatically updated to Calc( n ).

Table suppression

For the first time in Analyse, we have the ability to fully suppress tables from the output if the table base is below a certain number. You have the flexibility to set this threshold in the same way as you can for setting row / column / edge suppression:


The usual requirement is blank table suppression which removes empty tables from outputs. In this case you would of course set ‘if base <=’ to 0

Paste captions

A new option, Paste captions, has been added to the context menu when you are working in the row / columns / edges of your tab definitions. If you’ve ever had to make a large number of text changes to variables or code captions in the tab definition, you’ll know it would have taken time to paste/write them in to each of these elements individually.

Now you can create your updated text in Word or Excel, for example, and paste captions in wholesale on to your variables or codes to save a lot of time when faced with this sort of exercise.


New keywords in script calculations.

You can now use RowQuestion, RowSubQuestion, ColQuestion, ColSubQuestion in calculations by script

You may be aware how to use script calculations in Analyse:


If not, there is a fairly informative article here which steps through some usage examples. There is another article here which concentrates on scripts used to create mean summary tables.

Basically, it’s a script stored in a calculation which allows you to access or filter your results by a question which is not in your tab definition.

The example files are here. Open up ‘6.AS_Keywords_Portfolio.xml’ and in the tab definition there is a demonstration of this in the calculation: ‘n (q4)’. The script here is  ??q4?? Has {1;2}

This filters the counts in our table by those who answered ‘Excellent’ or ‘Very good’ at q4.

This is a question specific script. It means that should we be required to apply this for the same table set-up but different questions then the calculation would not work. e.g. loop1 (replaced with loop2) and q4 (replaced with q5). In Analyse we have introduced some new keywords to circumvent this inflexibility.

Take a look at the calculation ‘n (Generic)’. The script here is: RowSubQuestion Has {1;2}


The results here are the same as those given by ‘n (q4)’ but, of course, now allow flexibility to use this tab template definition across different loops / variables.

New options in level

There are two new options added to the ‘Level’ drop-down box in the tab template:


The aim here is much the same as in the previous section, to reduce the number of tab templates we need to create.

An example is when you create a summary table (let’s say for loop1) and want to show figures for the response level rather than the respondent level. We set the level here to loop1 and save the tab template. Previously we couldn’t use the same tab template for the summary table for, let’s say, loop2 but now we can using these options.

The new keywords in script calculations and these level options add a great new level of efficiency for tab template management.

Askiavista is really growing!

Update: we have updated askiavista to version, read more about it!

Yup, askiavista is nearly a grown-up! But because it’s an Askia application, it’ll always be a bit childish 😉 .

We are unleashing the latest update to askiavista, version; this latest release is packed with several nifty features and some squashed bugs:

Single Sign-On

We introduced SSO compatibility a couple of years ago but this useful feature has finally made it through to version 6! For this, we have introduced a new web service, AskiaVistaSSO, that is in charge of:

  • creating a unique & secure TrustKey
  • sending the TrustKey to AskiaVista Manager
  • authorises the user to connect or not to askiavista

Check the full details on this.

Replay multiple queries simultaneously

AskiaVista API’s Replay Plugin allows developers to replay a given query with few changes; it’s specially useful for cross-tab queries that produce tables or charts.

Let’s imagine you have a dropdown with the list of filters (sub-populations) from which the user can choose a given filter that will replay a table by applying it the selected filter.

The new version of the Replay plugin allows the developers/users to replay several tables or charts in one go.

So, when the user selects a filter it could be applied to multiple tables or charts at the same time.

In the background the Replay plugin uses a transaction to execute all queries in a single server-side call. The main benefit is to reduce the amount of bandwidth & queries between the client and the server.

Askia.config path now in the Registry

Up until now, the Askia.config file path was stored in IIS’  web.config file (a bit of an inception, eh?). Because any update could overwrite the web.config file, we often ended up with errors related to the configuration file not being found.

To improve this, askiavista searches the Askia.config path in the following order:

  1. In the directory of the current application
  2. If not found, it searches for the web.config as usually
  3. If not found, it search in the Registry

Read the feature request for more information.

Bug fixes

Finally, we have also fixed some outstanding issues in askiavista, check below for the most important ones:

  • Empty table when deactivating all calculations for tables (#6349)
  • Calculated responses not copied when copy/paste presentation (#6362)
  • Hidden responses displayed in xtab when moving variables around R/C/E (#6388)
  • Drag Drop filter is not applied to Excel export from a Portfolio (#6413)
  • Scaled-response questions are not treated as closed (#6421)
  • Cannot remove ‘Mean’ calculation caption from table and chart (#6455)
  • Total column and Edge inverted in the Property panel (#6476)
  • AskiaVistaManager can crash several times starting (#6483)

Oh, and did I mention that we have started to play with the amazing D3.js data visualisation library? It’s still just a playground but check this out! Thanks to Brice for his great work on that!

That’s all for now folks 😀

New AskiaVista AJAX API 2.2.0

The new AskiaVista AJAX API (2.2.0) is now released with the latest 6.0.3.x version of AskiaVista.

The documentation is now up-to-date

List of new features/fixes:

  • Add `footnote` parameter in cross-tab query (settings.results.footnote)
  • Add `language` parameter in queries to specify the survey language. It could also be add on the config, or specify via url
  • Add a new `languageUrlParam` in the configuration to read the survey language via the URL
  • Add methods:
    • getPortfolioLinks
    • getPortfolioLink
    • savePortfolioLink
    • deletePortfolioLink
    • getPortfolioLinkLayouts
    • getPortfolioLinkThemes
    • savePortfolioLinkTheme
    • deletePortfolioLinkTheme
    • getResources
    • saveResource
    • deleteResource
    • htmlEncode
  • Take in account the new calculations and their advanced options
  • Add the `baseUrl` key in the config. Strongly recommended to use it instead of `url`
  • Manage the new `rawdata` and `sectionpage` portfolio item type
  • Add a dedicated exception severity flag when the authenticity token in cookie is bad or obsolete, it then ask again the login form
  • Manage severity on server-side error to throw the `securityError` when it’s needed
  • Error messages are now htmlEncoded in the client side.
  • Security error don’t block the query stack, it now fire the security error and the regular error event

This askiavista is massive!

We have finally released version of askiavista! First, of all, don’t judge a book by looking at the cover: this is more a 6.1 version than a minor version. Indeed, it packs:

  • 22 new features
  • 22 bug fixes
  • 7 miscellaneous tasks

Below, some of the key new features:

Portfolio section pages

Askiavista portfolio section pages

Users can now create Section pages within their Portfolios; these pages allow to add formatted text and media (image & video).
Such pages are a great solution for report introductions, notes, metadata, …

New portfolio link management

Askiavista new portfolio by link management

Portfolio links have been completely overhauled in order to allow many nifty features such as Expiry dates, Filter management, dynamic tabbing, custom URLs, default page, …
Portfolio links can also be duplicated in order to batch create multiple links.

Reorder portfolio items

Reorder portfolio items in askiavista

This was a recurrent client request: having the possibility to reorder elements (table definitions & now section pages) from within a portfolio.

Raw data / open-ended management

Askiavista raw data and open-ended management

Askiavista is now able to render data at interview level and can also render open-ended data! These flat tables are accessible in a dedicated view and can of course be embedded within a Portfolio.

Fixed headers

Fixed headers for large tables in askiavista

In order to improve our user experience when browsing large cross-tabs, we have added fixed headers (for Rows, Columns & Edges) to the Default table style.

Select all / unselect all in Dimensions

Select all - unselect all in askiavista's dimensions

This client request allows users to select all questions or response items in a given Dimension (R/C/E). This is especially useful when dealing with many questions or for very long lists of response items to which you may want to apply a given action (group, hide, …).

View source

View crosstab source in askiavista

This option (hidden by default), allows advanced users and API developers to embed table & chart data directly in their web page; could it be an askiavista-driven dashboard, portal or web page.

Compressed inverted data

We have decided to improve the inverted format:

  • We decided to rename the old files and not use the number of responses as an extension – this was causing unnecessary problems when a question was recalculated or if the max number of responses was manually changed in Design. The extension is always .dat.
  • The developed questions in a loop are no longer stored individually – the greyed questions always contained the information so we thought the cost of reading the whole greyed data for that question was a small price to pay compared to store all the data twice
  • We store system data -or peri-data – such as start time, end-time, IP-address, completion, …
  • The data is now compressed
  • We have backwards compatibility: inverted data produced with a version prior to 5.3.4 is read properly but the new inverted files are not readable by Vista (yet) or an old Analyse / Tools

We have seen up to 90% decrease of the inverted database size and almost no noticeable deterioration of the reading speed

For the full list of new features & bug fixes, check the changelog.

New Knowledge Base articles incoming!

We have been regularly updating Askia’s Help centre with various KB articles that cover our software offering. Here are some of these latest articles:

Askiadesign: about:blank error message

Microsoft recently updated Internet Explorer. This update may cause the below error message to be displayed in askiadesign:

about:blank error message in askiadesign

See the full article to fix this issue.

Askiafield: Data exports: Methods, Pros & Cons

This in-depth article covers all you need to know about the different data export methods along with the pros & cons for each method. From Supervisor’s Export to QES file to Analyse’s Data Inversion; this article also details SQL Synchronisation from AskiaTools as well as the powerful Fast Export method.

Read the full article for the detailed explanations.

 Askiaanalyse: Mean Summary Tables

This article goes through step by step examples and explanations of how to set up calculations in Analyse which will create a mean or sum summary table. There is also an introduction to script formatting and advanced sorting for such calculations.
This detailed article also provides downloadable example .QES files.

Access the KB article for more details.

Askiafield: Survey XML file is corrupt

Askiaface for iOS & Android make use of the XML version of the .QEX file; it sometimes occurs that certain characters (trailing spaces, &, >, <, …) will cause the survey’s XML definition to be invalid.

This article guides you through the necessary steps to fix a corrupt XML file: by identifying the cuplrit(s) and getting rid of them!

Check out the article for more details.

Askiafield: wildcards

This article describes how to use the Wildcard feature in Supervisor to find and update sample contacts based on regular expressions. Wildcards are a set of extremely useful tools that can power your workflow when searching / targeting specific contacts with large sample files.

Read the detailed article for more information.

Props to Seyf, Stephen & Jérome D for their contribution!