The 8 test categories
The audit runs 20 simulated scan conditions grouped into 8 categories. Each category has a fixed weight in the final score, and the weights below sum to 100:
| Category | Tests | Weight | What it simulates |
|---|---|---|---|
| Baseline | 1 | 10% | Decodes cleanly with no distortion at all. If this fails, the code is malformed and nothing else in the audit matters. |
| Rotation / Tilt | 4 | 15% | Tilted 15, 30, and 45 degrees, plus rotated 90 degrees sideways. Simulates a phone held at a normal, awkward, or sideways scanning angle. |
| Small Print / Distance | 3 | 20% | Shrunk to 50%, 30%, and 20% of the original size. Simulates printing too small or scanning from further away. Weighted heaviest because undersized print is the most common real-world failure. |
| Camera Blur | 3 | 15% | Gaussian blur at 1, 2, and 3 pixels. Simulates camera shake, motion, and autofocus failure on budget phones. |
| Contrast / Fading | 3 | 10% | Contrast reduced to 70%, 50%, and 30% of normal. Simulates a faded print, sun-bleached sticker, or low-contrast color scheme. |
| Damage / Obscured | 3 | 15% | 5%, 15%, and 25% of the code covered with a white square outside the finder patterns. Simulates a fingerprint, sticker, scratch, or water stain. |
| Print Noise | 2 | 10% | 5% and 10% of pixels randomly flipped to black or white. Simulates cheap printer dot artifacts or textured paper. |
| Center Logo | 1 | 5% | A simulated logo covering 20% of the code's center. Checks whether the current error correction level tolerates a center logo. |
Advertisements
How the score is calculated
Each category's pass rate (tests passed divided by tests run) is multiplied by that category's weight, and the 8 results are added together for a score out of 100. A code that passes every rotation test but fails every scale test loses the full 20-point scale weight, since scale has no partial credit beyond its own pass rate. The grade bands are: A+ at 95 and above, A at 85 to 94, B at 75 to 84, C at 60 to 74, D at 40 to 59, and F below 40.
Reading your results and fixing them
The Recommendations card is generated directly from which categories failed, not from a generic list. The logic behind it:
- Baseline fails. The code cannot be decoded even without distortion. This means the code itself is malformed, not that it is fragile. Check for extreme colors or conflicting custom options, then regenerate.
- Scale below 100%. Raise error correction to Q or H. If scale drops below 50%, the recommendation also calls out a minimum print size of 2 by 2cm (0.8 by 0.8in).
- Occlusion below 100%. Raise error correction to H, since any real printed or handled surface eventually picks up a fingerprint, sticker, or scratch.
- Logo test fails. Keep an embedded logo under 20% of the code's total area and use error correction H.
- Contrast below 67%. Increase color contrast; avoid pastel colors, gradients on light backgrounds, or light-on-dark schemes you have not tested.
- Rotation below 75%. Raise error correction and print on a flat surface, avoiding curved bottles or folded material.
- Blur below 67%. Raise error correction or use a larger print size, since budget phone cameras are the most likely to struggle here.
- Everything passes. The code is called print-ready: it tolerates real-world tilt, small print sizes, fingerprints, fading, and camera shake.
Error correction is the lever behind almost every fix here. Level H recovers from roughly 30% data loss, versus 7% at level L, at the cost of a denser code. Change it in the generator's options and re-run the audit on the new export to confirm the fix worked.