The question teachers ask before they trust a phone with marks is not really “is it accurate?” It is: will it ever give a student the wrong mark without me noticing? A scan that fails loudly costs you two seconds. A scan that quietly reads a blank row as answers costs a student their rank, and you find out from an angry parent.

So this article is not about a headline accuracy percentage. It is about the specific things ScanScore does so that when it is unsure, it tells you — and when it gives a score, you can stand behind it.


The principle: refuse rather than guess

Every design decision below follows one rule. An unanswered question is visible and easy to fix in review. A phantom answer is invisible. So whenever the app has to choose between reading something as blank, asking you, or guessing, it never guesses.

Step one: finding the page properly

A photo of a sheet is never flat. It is tilted, a little rotated, lit unevenly and often lying on a busy desk. Before any bubble is read, ScanScore:

  • Finds the sheet’s black frame, using several methods at once so a dark table or a pile of other papers does not confuse it.
  • Works out which way up it is. A sheet scanned sideways or upside down is turned the right way automatically — the app tries each orientation and keeps the one where the printed marks line up best.
  • Straightens the photo into a flat, square-on page using the corner marks and the edge marks along the sides.
  • Copes with damage. If a corner is creased or torn, two coded tags printed near the bottom of the sheet stand in as anchors, so a dog-eared sheet still reads.
  • Checks the photo quality and warns you about poor light or blur rather than reading a bad image.

There is no shutter button. The camera only captures once it can see the frame, the corner marks and a steady, sharp image — so most bad photos are never taken in the first place.

Step two: refusing a sheet that does not line up

This is the most important safeguard, and most apps do not have it. ScanScore prints a thin ring at every bubble position. Before reading a single answer, the app checks how much of those printed rings actually sit where its grid says the bubbles are.

If too little of the grid lines up — because the sheet is folded, the wrong sheet, or the photo is distorted — the scan is rejected with a message, and you simply scan again. An app without this check reads whatever patch of paper happens to be under its grid and turns it into confident-looking answers. That is how “ghost answers” happen.

A rejected scan is the system working. It costs you two seconds to re-scan. The alternative — a wrong score that looks right — costs far more, and nobody would catch it.

Step three: judging marks against each student’s hand

Students do not all fill bubbles the same way. Some press hard with a ballpoint; some shade lightly with a pencil. A fixed darkness cut-off would drop the light-handed student’s answers or invent answers from the heavy-handed one’s smudges. So ScanScore:

  • Learns what a mark looks like on each sheet from that student’s clearest answers, then judges the rest against that.
  • Compares the options of one question with each other. The four bubbles of a question sit millimetres apart and share the same light, so a shadow across the page cannot make a whole block of blank rows look answered.
  • Allows for the printed letters inside the bubbles. An empty “B” has more printed ink than an empty “C”; the app measures and subtracts that so a blank B is never mistaken for an answer.
  • Requires a bubble to be filled, not merely darkest. In any row of empty bubbles, one is always slightly darker than the others. ScanScore insists on real ink before it calls something an answer.

Unclear is not a guess

A bubble that is ticked, crossed or only a quarter filled is genuinely ambiguous. ScanScore reads it as unanswered and shows it in review, rather than picking an option. In batch mode, any sheet that needs a look gets an amber “check” mark, and a sheet whose roll number cannot be read is kept as its own entry rather than overwriting someone else’s result. You stay the final judge.

Your part: five habits

The app does most of the work. These habits do the rest:

  1. Print the sheet from the app at 100% scale — never a resized or third-party sheet.
  2. Tell students to fill bubbles completely, one per question, in dark pen or HB pencil.
  3. Scan in even light. Avoid a sunlit window that throws glare across a column.
  4. Hold the phone flat, roughly 12–15 cm above the sheet.
  5. Keep sheets uncreased, especially across the corners and edges.

Reviewing and correcting

Every scanned sheet can be opened question by question: right answers in green, wrong in red, with what the student chose against the key. If a student marked something badly, fix that bubble by hand and the score updates. If your key had a mistake, correct it and every saved sheet is re-marked. On Pro, the photo of each scanned sheet is kept in the web dashboard, which settles most disputes in seconds.

Where a phone is not the right tool

For classroom tests, unit tests, mock tests and term exams, phone scanning with these checks is accurate and fast. For a board-level examination of tens of thousands of candidates with a formal audit trail, dedicated OMR hardware is still the standard. Our comparison of OMR apps and machines covers where that line falls. For everything short of that, print a sheet, fill it in badly on purpose — light marks, a tick, a crossed-out answer — and see how ScanScore handles it. It is free, so the test costs you nothing.