This space is archived

For current information please use the current ExamSys documentation

Calculation Specification


Assesses the student's ability to carry out a simple calculation.  The parameters of the calculation  can be set to vary each time the question is viewed, allowing for randomisation between reuses of the question.

The question's lead-in allows for placeholders for the parameters, so the text of the lead-in is accurate.  


Calculation questions support the standard preamble and postamble for Rogo questions, except that the Marking Method is fixed at 'allow partial marks'.  

Calculation questions use placeholders variables to display parameters.  They denote these variables using the symbols $A, $B, $C etc.  The variables can then be used in various prompt fields in the question.

Take as an example the calculation of response rate to a survey.  800 questionnaires have been sent out and between 200 and 600 have been returned.  The precise number returned is randomly calculated.

The lead-in for this question use variables to compose the text:



This section allows the setter to specify the variables used in the calculation.  In this case $A represents the total number of questionnaires sent out, which is fixed, and $B indicates the random response rate:


Each variable must have several parameters specified:

  • Min, Max:  Limits on what value the variable can take
    • The Min and Max can be specified as parameters.  for instance, if you wanted to vary the number of questionnaires sent out, then you could use the actual variable as an upper limit of the range:



    • Both these values can be linked answers from previous calculation questions, allowing setters to link questions together. Click on the Variable Link icon  to do this.  You can select any variable used in any question, or even the answer that the student gave.
      If Min = Max, then the variable is essentially fixed and behaves as a reusable constant 
    • Decimals:  governs to how many places the value is displayed.  The default is 0 (i.e. the variable behaves as an integer)
    • Increment: a decimal value indicating how granular the random variation is between Min and Max.  This is mandatory.  Set to 0 if the variable is fixed.

Additional variables can be added by clicking Add More Options...  

Other use of Variables

Variables may be used in the Notes, Scenario and General Feedback section of the question.


This specifies the calculation that gives the correct answer.  Rogo will perform this calculation and compare the student answer with it.  It will then award marks accordingly.

In this case, Rogo is using a built-in function round to round-off the answer to one decimal place.  The student will therefore be expected to supply an answer to that accuracy. (See the section below on Tolerance for how answers are converted to marks).  

Formulae should be be entered using Excel-type notation.  You may also show the units for the answer.

Add More Answers

This button allows the setter to add 'alternative' answers, especially when they may be expressed using different units.  For instance, if one was seeking a probability, one could either express that as a percentage or as a value between 0 and 1.  Adding another answer allows the student to express it in the most natural form to them.  It will only check answers against formulae that have been specified for the units that the student chooses.:  all other formulae are ignored, so it is important to enter them correctly.

Display units for question

If this is unchecked, then the student has to supply units as part of their answer (this is marked).  If checked, units are displayed in a dropdown and the student simply choose the units.


Rogo supports the following built in functions:

abs([x])Absolute value
acos([x])Arc cosine
acosh([x])Inverse hyperbolic cosine
asin([x])Arc sine
asinh([x])Inverse hyperbolic sine
atan2([y],[x])Arc tangent of two variables
atan([x])Arc tangent
atanh([x])Inverse hyperbolic tangent
ceil([x])Round fractions up
cosh([x])Hyperbolic cosine
deg2rad([x])Converts the number in degrees to the radian equivalent
exp([x])Calculates the exponent of e (the Neperian or Natural logarithm base)
expm1([x])Returns exp(number) - 1, computed in a way that is accurate even when the value of number is close to zero
floor([x])Round fractions down
fmod([x],[y])Returns the floating point remainder (modulo) of the division of the arguments
log10([x])Base-10 logarithm
log1p([x])Returns log(1 + number), computed in a way that is accurate even when the value of number is close to zero
log([x],[base])logarithm (the [base] parameter is optional defaults to 'e' and so to the natural logarithm if not provided)
max([x],[y],...)Find highest value
min([x],[y],...)Find lowest value
pi()Get value of pi
pow([x],[exp])Exponential expression
round([x],[decimals])Rounds a float to [decimals] number of places
sinh([x])Hyperbolic sine
sqrt([x])Square root
tanh([x])Hyperbolic tangent

Tolerance and Precision

These govern how close the answer has to be to the calculated answer to get marks. 

The Tolerance has two components.  

  • Tolerance for Full marks specifies how close the answer has to be to the actual answer to get the full marks
  • Tolerance for Partial Marks:  if Use Partial Marking is specified, then answers within this tolerance with gain the partial marks.  This tolerance should be higher than the Tolerance for Full Marks

Precision governs exactly what the student can submit as an answer. This will be displayed on the screen as a prompt to the student and Rogo will not accept an answer that is not specified to this precision.  Precision should be equal to or smaller than the tolerance for full marks, otherwise one could be forced to submit too imprecise an answer to qualify for any marks.

Completing the Question

The student sees the question as follows:


The lead in contains the values of the variables $A (800)and $B (318).  The answer box shows the units that the student is expected to provide the answer in.

The student will be expected to enter an answer to the stipulated precision.  


Marks are only awarded if the student's answer is within tolerance of Rogo's calculated answer.  In this case, the student gets 2 marks if within the tolerance for full marks, 1 mark of with the tolerance for partial marks, and zero otherwise: