Mona's benchmark
Everything Mona has measured, with the data and the method. You don't need to read this to use Mona: it's here for those who want to check.
Where the eye lands
Mona predicts a heatmap: the areas the eye visits during the first 3 seconds. It is compared with real human maps (UEyes, 62 people) and with a simple baseline: the average map, meaning the habit of looking at the top and center. Imp1k was never used for training.
- Average map
- Mona before
- Mona now
See the values
| Average map | Mona before | Mona now | |
|---|---|---|---|
| UEyes (test) | 0,43 | 0,66 | 0,68 |
| Imp1k web pages | 0,32 | 0,49 | 0,56 |
| Imp1k mobile screens | 0,37 | 0,43 | 0,47 |
- UEyes, validation
- Imp1k web pages (dev)
See the values
| epoch | UEyes, validation | Imp1k web pages (dev) |
|---|---|---|
| 1 | 0,643 | 0,539 |
| 2 | 0,693 | 0,485 |
| 3 | 0,707 | 0,539 |
| 4 | 0,706 | 0,562 |
| 5 | 0,705 | 0,559 |
| 6 | 0,713 | 0,564 |
| 7 | 0,704 | 0,531 |
| 8 | 0,708 | 0,529 |
| 9 | 0,706 | 0,522 |
| 10 | 0,704 | 0,504 |
| 11 | 0,703 | 0,508 |
| 12 | 0,703 | 0,497 |
| 13 | 0,705 | 0,509 |
| 14 | 0,705 | 0,510 |
| 15 | 0,704 | 0,510 |
Reading the interface
When Mona starts from an image (mockup, screenshot), it can't read the page code: a homemade detector finds texts, buttons, images, fields and icons. It learned on about 1,500 public sites whose labels come from the page code. This test uses sites it has never seen.
- Before
- Now
See the values
| Class | Before: recall / precision | Now: recall / precision | F1 before | F1 now |
|---|---|---|---|---|
| text | 0,59 / 0,64 | 0,72 / 0,75 | 0,61 | 0,73 |
| button | 0,51 / 0,59 | 0,59 / 0,59 | 0,55 | 0,59 |
| image | 0,65 / 0,57 | 0,61 / 0,60 | 0,61 | 0,60 |
| field | 0,24 / 0,38 | 0,38 / 0,70 | 0,29 | 0,49 |
| icon | 0,15 / 0,34 | 0,31 / 0,43 | 0,21 | 0,36 |
The score of an image
To know whether reading from an image is reliable enough, the score is calculated twice: with the page code (the reference), then with what the detector sees on the image alone. Average gap 5.5 points (median 3.3); 80% of screens within 10 points.
- Before
- Now
- With exact boxes
See the values
| Before | Now | With exact boxes | |
|---|---|---|---|
| All | 8,1 | 5,5 | 3,8 |
| Contrast | 18,7 | 6,0 | 5,9 |
| Text size | 24,9 | 14,9 | 10,9 |
| Button | 9,5 | 6,3 | 1,8 |
| Clutter | 0,0 | 0,0 | 0,0 |
| Text amount | 8,3 | 5,0 | 3,4 |
| Hierarchy | 25,4 | 13,3 | 7,7 |
The brain
A model predicts the response of 20 areas of the visual cortex to an image, trained on MRI measurements (THINGS-fMRI). It is validated on photos, not web pages: in reports it stays indicative and doesn't count toward the score.
See the values
| Area | Value |
|---|---|
| V1 | 0,68 |
| V2 | 0,59 |
| V3 | 0,51 |
| V4 | 0,31 |
| V3ab | 0,47 |
| LO | 0,51 |
| MT | 0,57 |
| VO | 0,31 |
| FFA faces | 0,61 |
| OFA faces | 0,59 |
| EBA bodies | 0,63 |
| STS social | 0,32 |
| PPA places | 0,60 |
| RSC places | 0,41 |
| TOS places | 0,52 |
| LOC objects | 0,52 |
| IT objects | 0,51 |
| attention FEF IPS | 0,35 |
| OFC value | 0,08 |
| vmPFC value | 0,00 |
What Mona does, with nothing hidden
Every step, every piece of data, every limit. If something is missing here, that's a flaw in this page.
The steps of an analysis
- Capture (server). A server opens the address in Chrome (1440 × 900), waits for the entrance animations, scrolls through up to 12 screens and records, for each screen, the text, sizes, colors and buttons. It sends back the images and these readings, then forgets.
- Gaze (your browser). Two small ONNX models (about 8 MB together) predict where the eye lands during the first 3 seconds. Mona averages their maps.
- Brain (your browser). A model of about 6 MB predicts the response of 20 areas of the visual cortex, compared with about 500 web pages. It does not count toward the score.
- Readability (your browser). Six rules: text contrast (weight 2), text size (1), visible main button (2.5), clutter (1.5), amount of text (1), hierarchy (1.5).
- Score. Weighted average per screen, out of 100; the first screen counts for half, the following ones for the other half.
- Report. Kept in your browser's storage (IndexedDB). JSON export, PDF printing, deletion at any time.
The models are stored in half precision to halve their size; the result is identical (gaze correlation with real maps: 0.681 with or without). The JavaScript port of the rules is checked against the Python version: gaze maps correlated at 0.995, screen score within 0.1 point.
The data used
| Source | Used to | Details |
|---|---|---|
| UEyes (Jiang et al., CHI 2023) | train the gaze model | 1,980 interfaces, 62 people. CC BY 4.0. |
| Imp1k (Fosco et al., 2020) | measurement only | 200 web pages and 200 mobile screens, with annotated importance. Never used for training; one half is used to pick the model, the other to report the result. |
| THINGS-fMRI (Hebart et al.) | train the brain model | 8,740 images seen by 3 people. CC0 data; THINGS images are for research only. |
| About 1,500 public sites (Tranco list) | train the element detector | 3 screens per site, labels taken automatically from the page code. Adult, gambling and piracy sites excluded. Screenshots not published. |
What leaves, what stays
- The capture server sees the address you give and the page content during the analysis. It keeps no image, no text, no report. It keeps in memory, for one hour, a counter per IP address to limit abuse.
- Gaze, brain, rules and score are calculated in your browser. Once the capture is received, nothing goes back out.
- No account, no cookies, no audience measurement. Fonts and libraries are served by this site, not by a third party. The page's host (Vercel) sees visits like any host.
- The server refuses internal addresses (localhost, private networks), unusual ports and redirects to them.
What Mona can't do
- Tell whether people like a page. It measures attention and readability, not taste, and does not replace a test with real people.
- Gaze is learned from free viewing during the first 3 seconds: it does not predict searching for a specific piece of information.
- The brain layer has not been validated on web pages (it has on photos). It is indicative.
- Starting from an image, reading the interface is less reliable than from the page code. The measured score gap is given in the charts above.
- Text drawn inside an image is not read. A screen is only seen at one moment: carousels, videos and windows that open later escape the analysis.
- Pages behind a login, a blocking banner or bot protection give a partial report. At most 12 screens are analyzed.
- Mona doesn't replace a full accessibility audit: it checks contrast and size, not keyboard navigation or screen readers.
In short
For those who just want to know whether Mona is for them, without reading the charts.
Mona was tested on pages and screens it had never seen, and compared with real measurements. It's good at spotting what draws the eye and what gets in the way of reading. It doesn't know what people like.
Yes, you can rely on it
For what is measured directly:
- Where the eye lands. Mona finds most of what real people look at: 0.68 out of 1, versus 0.43 for the simple habit of looking at the top and center. On web pages it has never seen: 0.56 versus 0.32.
- What makes a live website hard to read. Text too small, contrast too low, too much text, a hard-to-see button: these are precise rules, applied to the letter. The calculation in your browser gives the same result as the original version (a 0.1-point difference out of 100).
Yes, but with caution
Useful, not exact:
- The score of an image or a mockup. Without the page code, Mona guesses the texts and buttons. Result: a score about ±5.5 points from the one it would give with the code (half the time within 3.3 points; 80 screens out of 100 within 10 points). Think of a thermometer that is off by a few degrees.
- Small elements. Icons and input fields are often missed (scores of 0.4 and 0.5 out of 1). They do not count toward the score.
- The brain response. It is predicted from photos, not web pages, and it does not count toward the score: treat it as a curiosity.
No, that's not its job
Mona can't:
- Tell whether people like your page, or whether it makes them want to buy or sign up. It measures attention and readability, not taste.
- Replace a test with real people. It helps you sort your ideas before showing them, not settle the debate.
- Do a full accessibility audit. It checks contrast and text size, not keyboard use or screen readers.
- Read pages behind a password, or a native mobile app.
What it's for, concretely
- “Is my main button seen?” Mona shows a heatmap: in red, what the eye visits in the first seconds. If your button sits in a cold area, you know it.
- “Is my text readable?” It spots text that is too small or too pale, and tells you where.
- “What should I fix first?” It ranks problems from most to least important, screen by screen, with a score out of 100.
- “Is my new version better?” Analyze the old one and the new one: you compare two scores and two heatmaps.
Who it's for
It's for you if…
- you create or improve a site, a sales page, a landing page or a mockup;
- you're a designer, a developer, a freelancer, a student, or you run a small organization's website;
- you want a quick, free opinion before showing your work, or to choose between two ideas;
- you don't have the budget for an eye-tracking test.
It's not enough if…
- you have to make a costly decision (a big redesign): also run a test with real people;
- you have to prove legal accessibility compliance;
- your page is behind a login, or it's a native mobile app;
- you want to know whether people will buy: Mona doesn't measure that.
The numbers, simply explained
- Correlation, for example 0.68
- A measure of how similar Mona's map is to that of real people: 0 = no relation, 1 = identical. 0.68 means “clearly similar”; the simple habit of looking at the top center only reaches 0.43.
- 5.5-point gap
- If a page's “true” score is 70, Mona reading only an image will land between 67 and 73 half the time, and between 60 and 80 8 times out of 10.
- F1 (element detector)
- A score from 0 to 1 that tells whether Mona finds the texts, buttons and images without inventing any. 0.73 for texts: it finds most of them, with a few mistakes.
- “Never seen during training”
- The tests use pages Mona has never seen, like an exam with brand-new questions: that's what makes the numbers honest.
If you remember only one thing: Mona is a good first look, fast and free, at what draws the eye and what reads poorly. Fix things with it, then check with real people.
