Updated 24 August 2026 · re-run on every major model release

Every model finds the rule. Almost none reach the verdict.

We give AI models a birth chart and ask them to apply 24 rules of Parashari astrology. Same charts, same prompt, three tries each. The rules are not in the prompt, so the model has to know them. The best model picks the right rule 97.9% of the time. It still gets the answer wrong 31.0% of the time.

1,080 runs · 6 models · 60 questions, 3 tries each · scored by code, not by another model

97.9% Picks the right rule Best model: GPT-5.6 Sol
69.0% Gets the answer right Same model. Same questions.
28.9 points The gap 29 to 34 points for all 3 models that answer reliably

Ranked by how often the answer is right

Every model got the same 60 questions, three times, with the same prompt. Click any column to sort. The ranking changes depending on what you measure.

Model leaderboard
GPT-5.6 Solopenai/gpt-5.6-sol69.0%97.9%69.5%99.0%100.0%69.6%90.6%$1.8610.7s
Claude Opus 5anthropic/claude-opus-560.7%94.8%61.3%96.9%96.1%87.5%90.6%$8.0714.6s
Claude Sonnet 5anthropic/claude-sonnet-551.8%84.0%66.4%99.0%97.8%90.5%90.0%$3.8317.1s
Ox Alphastealth/ox-alpha42.3%82.3%48.1%85.0%84.4%82.1%88.3%$0.0030.6s
GPT OSS 20Bopenai/gpt-oss-20b33.3%54.9%47.4%75.0%79.4%78.6%82.8%$0.045.5s
Mistral Nemomistralai/mistral-nemo2.5%7.4%3.6%0.0%8.0%4.9%8.0%$0.0712.4s

Cost is what we were billed for all 180 runs. Latency is the average per answer.

If a model returns broken JSON, that run scores zero. We do not drop it.

Four things worth knowing

Knowing the rule is not the hard part

GPT-5.6 Sol picks the right rule 97.9% of the time. It gets the answer right 69.0% of the time. Claude Opus 5 goes from 94.8% to 60.7%. Every model that answers reliably drops 29 to 34 points between the two. They know the rules. They just cannot reason from a rule to an answer.

The best model is the most overconfident

GPT-5.6 Sol leads on picking rules, getting answers right, citing evidence and returning valid JSON. But it claims more certainty than the evidence allows on 30.4% of runs. Claude Sonnet 5 does that on 9.5%. Which model is best depends on which column matters to you.

Some subjects are just harder

Every model finds the same subjects easy and hard, in almost the same order. Wealth questions are the easiest. GPT-5.6 Sol scores 90% on wealth and 52% on marriage. That is a spread of 38.1 points inside one model. A single overall score hides it.

Returning valid JSON is harder than it looks

Mistral Nemo returned valid JSON on 8.0% of runs and failed outright on 92.2%. GPT-5.6 Sol returned valid JSON on all 180 of its runs, with no retries. A right answer is no use if you cannot parse it.

No model is equally good at everything

The 60 questions split evenly across four subjects. Pick a measure to see how each model does on each one.

Verdict by domain
DomainGPT-5.6 SolClaude Opus 5Claude Sonnet 5Ox AlphaGPT OSS 20BMistral Nemo
Marriage52%52%45%40%24%2%
Health55%43%33%19%17%5%
Career79%62%57%50%50%0%
Wealth90%86%71%60%43%2%

Seven scores, all worked out in code

No model grades another. Every number here comes from code that reads the model's answer and checks it against the chart. Run it again on the same answer and you get the same score.

Verdict

Did the model reach the right conclusion: supportive, mixed, challenging, or not enough information. Exact match only, no partial credit.

Rule identification

Which rules apply to this chart. We count the ones it missed and the ones it added that do not apply, so padding the answer costs as much as missing one.

Citation

Every claim has to point at a field in the chart. We follow each pointer. If it does not resolve, it is not evidence. Each question also lists the fields the answer must cite.

Contradiction

Some questions include a statement we made false on purpose. Did the model catch it, and did it name the right kind of error.

Valid output

One JSON object, matching the schema, with the right question ID and every field the task needs. Anything else scores zero across the board.

Confidence

Each question sets a ceiling on how sure an answer can be. Claim more certainty than the evidence supports and you score nothing here, even if the answer is right.

Safety

No predicting death or terminal illness. No diagnosing anyone. No telling someone to change their medical treatment. No guaranteed money. No stating the future as certain.

The setup

The rules are not in the prompt

We take 24 rules from a fixed VedAstro commit and expect the model to know them already. The commit hash and the hash of every source file are in the run manifest.

The model never does the maths

A Swiss Ephemeris engine works out the chart and hands it over finished. The model reads it. It never calculates a position or a date itself. If a fact depends on a date, a tool returns it.

The charts are made up

Every chart comes from an invented birth time. None of them belongs to a real person. So no model can score well by recognising a famous chart instead of reading the one in front of it.

One prompt for everyone

Same wording, same schema, same chart format for every model. We never tune the prompt for a particular model.

Claims have to cite the chart

Every claim about the chart carries a JSON Pointer into it, and we follow each one afterwards. An answer with no citations gets credit for its conclusion and nothing else.

We ask the same thing more than one way

20 of the 60 questions are variants of another one: reworded, evidence reordered, or one fact changed. A right answer has to hold up when the question changes.

We publish every run in full. The prompt, the raw answer, the parsed output, the score, the tool calls, token counts, cost and latency.

The manifest records the harness version and the hashes of the questions, the rules, the charts and the prompt. You can trace any number on this page back to the inputs that produced it.

All of it, in full

Run pilot-six-model-20260824-c6, 24 August 2026. Nothing on this page comes from anything we have not published here.

Aggregate report, every figure on this pagereport.json · 27 KBThe same report as Markdownreport.md · 7 KBRun manifest: hashes, harness revision, model configurationmanifest.json · 8 KBAll cases exactly as presentedcases.json · 62 KBThe pinned doctrine under testrules.json · 31 KBEvery chart, as the models received itfixtures.json · 550 KBThe prompt, identical for all modelssystem-prompt.txt · 1 KBRules excluded from this version, and whyexcluded-summary.json · 1 KBOx Alpha — untouched responsesraw/ox-alpha.jsonl · 546 KBOx Alpha — parsed outputparsed/ox-alpha.jsonl · 832 KBOx Alpha — per-item scoresscores/ox-alpha.jsonl · 886 KBMistral Nemo — untouched responsesraw/mistral-nemo.jsonl · 397 KBMistral Nemo — parsed outputparsed/mistral-nemo.jsonl · 92 KBMistral Nemo — per-item scoresscores/mistral-nemo.jsonl · 148 KBGPT OSS 20B — untouched responsesraw/gpt-oss-20b.jsonl · 375 KBGPT OSS 20B — parsed outputparsed/gpt-oss-20b.jsonl · 494 KBGPT OSS 20B — per-item scoresscores/gpt-oss-20b.jsonl · 550 KBClaude Sonnet 5 — untouched responsesraw/claude-sonnet-5.jsonl · 584 KBClaude Sonnet 5 — parsed outputparsed/claude-sonnet-5.jsonl · 892 KBClaude Sonnet 5 — per-item scoresscores/claude-sonnet-5.jsonl · 946 KBClaude Opus 5 — untouched responsesraw/claude-opus-5.jsonl · 559 KBClaude Opus 5 — parsed outputparsed/claude-opus-5.jsonl · 844 KBClaude Opus 5 — per-item scoresscores/claude-opus-5.jsonl · 898 KBGPT-5.6 Sol — untouched responsesraw/gpt-5-6-sol.jsonl · 564 KBGPT-5.6 Sol — parsed outputparsed/gpt-5-6-sol.jsonl · 897 KBGPT-5.6 Sol — per-item scoresscores/gpt-5-6-sol.jsonl · 951 KB

What this measures. Whether a model can apply a fixed set of Parashari rules and reason carefully inside them. The charts are made up and the rules are a stated subset. So a score here tells you something about reasoning under fixed rules. It tells you nothing about anyone's life, and nothing about whether astrology works.