Worthune Evals
The answer key your eval harness is missing
15,250 input/expected-output pairs across 61 financial models — the exact cases our Concordance harness runs on every change. Download them and diff offline, or post your answers and let us grade them at the tolerances we hold ourselves to. Three datasets are open; the full set comes with a paid key.
Watch the film — The Answer Key, 2½ minutes
The problem with testing money math
When your copilot answers “when does this refinance break even?”, what checks the number? Most eval stacks can grade tone, structure, and safety — but they have nothing that knows the right answer to a financial computation. So teams grade fluency and hope the arithmetic holds.
These datasets are the missing answer key. Every expected output comes from two independent implementations that agree to one part in a billion — the engine that computed it, and a second implementation written from the published spec alone, re-checked on every change. If your model, agent, or engine disagrees with a case, start by diffing against the spec: how Concordance testing works.
Use it in an afternoon
# Grab a dataset (JSONL: meta line, then one case per line)
curl -s https://worthune.com/api/v1/evals/refinance | head -3
# Every case: {"id", "inputs", "expected"}
# Meta line carries specVersion + tolerances (rel 1e-9, abs 1e-6)# The eval loop, in pseudocode
for case in dataset:
answer = your_model_or_agent(case.inputs) # LLM, agent, your own engine
for key, expected in case.expected.items():
assert close(answer[key], expected,
rel=1e-9, abs=1e-6) # same bar our CI holdsDatasets are deterministic for a given spec version — pin one in CI and it never shifts under you. When a spec changes, the changelog says exactly what moved and why. Sentinel and non-finite values are encoded as strings (“Infinity”, “NaN”) per the spec convention.
61 datasets, 250 cases each
| Model | Spec | Download |
|---|---|---|
| relocation | v1.0.0 | JSONL (250 cases) — open |
| rent-vs-buy | v1.1.0 | 250 cases — with your paid key |
| fire | v1.0.1 | 250 cases — with your paid key |
| roth-vs-traditional | v1.0.1 | 250 cases — with your paid key |
| refinance | v1.0.0 | 250 cases — with your paid key |
| windfall | v1.0.1 | 250 cases — with your paid key |
| sabbatical | v1.0.0 | 250 cases — with your paid key |
| one-income | v1.0.0 | 250 cases — with your paid key |
| second-home | v1.1.0 | 250 cases — with your paid key |
| divorce | v1.2.0 | 250 cases — with your paid key |
| down-payment | v1.0.0 | 250 cases — with your paid key |
| rsu | v1.1.0 | 250 cases — with your paid key |
| debt-payoff | v1.1.0 | 250 cases — with your paid key |
| student-loan-payoff | v1.0.0 | 250 cases — with your paid key |
| emergency-fund | v1.0.0 | JSONL (250 cases) — open |
| salary-jump | v1.0.1 | 250 cases — with your paid key |
| having-a-child | v1.1.0 | 250 cases — with your paid key |
| wedding | v1.1.0 | 250 cases — with your paid key |
| renovation | v1.1.0 | 250 cases — with your paid key |
| side-business | v1.0.1 | JSONL (250 cases) — open |
| mega-backdoor-roth | v1.0.0 | 250 cases — with your paid key |
| 529-college-savings | v1.0.0 | 250 cases — with your paid key |
| private-school | v1.2.0 | 250 cases — with your paid key |
| social-security-timing | v1.1.0 | 250 cases — with your paid key |
| long-term-care | v1.1.0 | 250 cases — with your paid key |
| eldercare | v1.1.0 | 250 cases — with your paid key |
| estate-planning | v1.1.0 | 250 cases — with your paid key |
| auto-loan | v1.0.0 | 250 cases — with your paid key |
| loan-comparison | v1.0.0 | 250 cases — with your paid key |
| extra-payment | v1.0.0 | 250 cases — with your paid key |
| biweekly-mortgage | v1.0.0 | 250 cases — with your paid key |
| points-break-even | v1.0.0 | 250 cases — with your paid key |
| pmi-removal | v1.0.0 | 250 cases — with your paid key |
| arm-vs-fixed | v1.0.0 | 250 cases — with your paid key |
| credit-card-minimum | v1.0.0 | 250 cases — with your paid key |
| rmd | v1.0.0 | 250 cases — with your paid key |
| roth-conversion-ladder | v1.0.0 | 250 cases — with your paid key |
| backdoor-roth | v1.0.0 | 250 cases — with your paid key |
| employer-match | v1.0.0 | 250 cases — with your paid key |
| capital-gains | v1.0.0 | 250 cases — with your paid key |
| ssa-pia | v1.0.0 | 250 cases — with your paid key |
| state-income-tax | v1.1.0 | 250 cases — with your paid key |
| quarterly-estimates | v1.0.0 | 250 cases — with your paid key |
| espp | v1.0.0 | 250 cases — with your paid key |
| burn-rate-runway | v1.0.0 | 250 cases — with your paid key |
| safe-dilution | v1.0.0 | 250 cases — with your paid key |
| option-pool | v1.0.0 | 250 cases — with your paid key |
| equipment-lease-vs-buy | v1.0.0 | 250 cases — with your paid key |
| sba-loan-cost | v1.0.0 | 250 cases — with your paid key |
| iso-exercise | v1.0.0 | 250 cases — with your paid key |
| qsbs-exclusion | v1.0.0 | 250 cases — with your paid key |
| 83b-election | v1.0.0 | 250 cases — with your paid key |
| wash-sale | v1.0.0 | 250 cases — with your paid key |
| retirement-income-cliffs | v1.0.0 | 250 cases — with your paid key |
| longevity-horizon | v1.0.0 | 250 cases — with your paid key |
| annuity-payout | v1.0.0 | 250 cases — with your paid key |
| life-insurance-needs | v1.0.0 | 250 cases — with your paid key |
| step-up-vs-gift-now | v1.0.0 | 250 cases — with your paid key |
| inherited-ira-10-year | v1.0.0 | 250 cases — with your paid key |
| qcd | v1.0.0 | 250 cases — with your paid key |
| plan529-superfunding | v1.0.0 | 250 cases — with your paid key |
Don’t just download the answer key — send us your answers: POST /api/v1/grade/{model} grades your copilot’s outputs against the engine at the same tolerances (see the grading docs). The open case sets also power FinPlanBench, our reproducible benchmark for how well language models execute published financial math. Full index, machine-readable: /api/v1/evals. Open datasets are free with attribution; the full catalog downloads with a paid key (Authorization: Bearer wk_…), licensed for your internal testing per the terms.
Need evals we haven’t built?
We can build custom datasets for your product’s exact scenarios — written to a spec, Concordance-tested, and kept current across tax years, the same way we build our own. That’s an Enterprise conversation.
Talk to usQuestions
Common questions
- Are there eval datasets for testing financial calculations in LLMs?
- Yes. Worthune publishes deterministic input and expected-output pairs for its financial models — the same cases its own verification harness runs. Three datasets are open downloads with no signup; the full catalog comes with a paid key. Each expected value is produced by two independent implementations that agree to one part in a billion.
- How do I test whether my finance copilot's math is correct?
- Two ways. Download the datasets and diff your model's answers offline in your own harness, or post your answers to the grading endpoint and get back per-case pass or fail at the tolerances we hold ourselves to. The second is faster to try; the first is what you want in CI.
- Where do the cases come from, and can I trust them?
- They are generated deterministically per model: automatically derived corner cases at the edges of the valid domain, hand-written cases each pinning a specific boundary such as a bracket edge or a compensation cap, and seeded random fill. Expected outputs come from the production engine and are re-checked against an independent Python implementation in CI on every change.
- What tolerance should I grade at?
- The same one the harness holds: one part in a billion relative, with a small absolute floor for values near zero. Grading looser than that and calling it a pass is how a rounding bug survives to production. The grading endpoint accepts a tolerance override but clamps it, so nobody can grade sloppily and cite our bar.
- Can I use these datasets in my own published benchmark?
- Yes, free with attribution — credit Worthune when publishing results built on them. If you need private or custom datasets for models outside the open sample, that is a paid conversation.
Last reviewed