The gap
of runs where GPT-6 Astra gave the exact count.
Across adversarial questions on real photos, three runs each.
See the leaderboard ↗Visual counting on real photos
Real photos. Questions with precise conditions. Human counts backed by instance annotations. We test integer-answer questions against a frontier model three times, then check the answers with a blind recount. Open a task and inspect the photo, masks and saved runs yourself.
Placeholder scores until full runs finish. They show how the table will read, not real results.
One rule: the exact integer, or it's wrong.
A run is correct only if its integer equals the verified answer. Off by one is wrong. No partial credit.
Every model answers every question three times. The score is the share of correct runs across all of them, so lucky guesses and unstable answers both show.
Each bar is one model's exact-match accuracy over all runs. The tag after the name is the reasoning setting it ran with. Higher is better.
Questions were kept only when the filter model got them wrong, so its score is low by construction. It's reported apart, never ranked against the rest.
What we measure
A count is short to ask and quick to check. Getting it exactly right means looking at the whole image.
Miss one or add one and the answer is wrong. A count catches skipped corners, small objects and clutter that a caption can gloss over.
Color, position, purpose or an expert term narrows what counts. The model has to test each candidate against every condition.
Some answers are 0 while near matches sit in the frame. A model that guesses from context will count things that aren't there.
The circles identify seven parts of this example. Select a label to highlight its matching number.
How many vases with plants are not reflected in the pond? Return an integer.
Counted: the large pot in the round basin, which has no reflection. Left out: the small pot at the far end, which shows up in the water.
One real scene, used as taken. No edits, no generated images.
Plain English, ending in "Return an integer." Each one looks at a different part of the scene.
The accepted count. Here, the writer and blind reviewer both counted 1.
A second person counts without seeing the first number. A mismatch sends the question back.
The colored fill follows the object's original segmentation mask. Circle 5 identifies the saved point inside it. The notes explain the near-match that was excluded.
Three answers from the filter model. The question stays only if most are wrong.
Which objects made the count, which near matches didn't, and why.
Follow the courtyard question through the counting workflow. The photo, instance mask, model responses and human recount are all from the saved task.
01 · Real photos
Streets, shop windows, patios, parking lots. We pick scenes where the target sits right next to things that look like it.
02 · Question definition
A plant pot can be visible and still be excluded. This question counts only pots that do not appear as reflections in the pond.
Moorish courtyard / P2
How many vases with plants are not reflected in the pond? Return an integer.
03 · Human count and instance annotation
The writer establishes the count and selects the matching objects. Each instance is saved with its mask, bounding box and point. Here, one pot qualifies. The crosshair uses the original saved point.
filled silhouette = original instance mask
04 · Adversarial filter
A frontier model answers each integer question three times. Candidates stay when the model misses most runs. For the courtyard question, it answered 2, 2 and 2 against a count of 1. Below are the saved runs for all five examples.
These are construction runs. The set was selected against this model, so its results are reported separately from independent evaluations.
05 · Independent human check
A second person counts without seeing the writer's answer. The courtyard question was counted as 1 by both people. Disagreements go back for review before the answer is accepted.
The question
How many vases with plants are not reflected in the pond? Return an integer.
The saved review records the writer's 1, the reviewer's independent 1, and a match.
When counts disagree: in Casino / P2, the writer counted 2 and the blind reviewer counted 1. After checking a close-up, the reviewer acknowledged 2. The accepted answer is 2.
Five example tasks
For each question: the answer, the filter model's three runs, why it's hard, and what was counted or left out.
How the model did
Takeaway
The data
Step 06 keeps the evidence together. Open the courtyard questions, original mask JSON or saved model runs. The instance IDs connect each counted object to its question.

Conditional counting checks explicit conditions. Reasoning counting first interprets a relationship, purpose or category. The examples below show both.
For investors
We're raising our first pre-seed round to turn Tallyglass-bench into the counting evaluation and training data that AI labs rely on.
The gap
of runs where GPT-6 Astra gave the exact count.
Across adversarial questions on real photos, three runs each.
See the leaderboard ↗Why it matters
Inventory and shelf audits, logistics, insurance claims, robotics, lab and medical imaging. When a model can't say how many, it can't be trusted with any of them.
What we deliver today
Want the deck?
Reply to whoever shared this page with you and we'll send it the same day.
The exact integer, nothing else. Off by one is wrong. There's no credit for being close.
Models don't answer the same way every time. Three runs show whether a correct answer is stable or lucky, and the score counts all of them.
It's the frontier model we test questions against while building the set. Each question goes to it three times and stays only if it misses most runs. That pushes its score down, so it's reported apart.
Yes, toward being hard for that one model, which is why its score is set apart. No other model was used during building, so the set wasn't tuned against them. Reviewers also cut questions that turn a count into arithmetic or allow two readings.
A second person counts every question without seeing the writer's number. If the counts match, the answer is confirmed. If not, both look again and the question is fixed or rewritten.
Those are Null questions. The photo always contains partial matches, like scalloped pots and aloe plants that never share a pot. A model that checks says 0.
Yes. Every photo is a real scene, used as taken. No edits, no composites, no generated images.
The public examples include exported questions and answers and saved model runs. Where the original mask file is available, it contains COCO RLE instance masks, bounding boxes, click points and links to each question. The courtyard files above show the full data.
Try the five tasks with answers hidden. Then check yourself against the blind recount and the model runs.