TrueCalc
Generated 2026-08-05 · 2a8aefd

Measured against Google Sheets itself.

Expected values come from Google Sheets, not from a specification. 12,885 cases, checked on every change.

12,885
Cases in the corpus
12,671
Matching Google Sheets
214
Known divergences
98.34%
Passing

How it works

Where the expected values come from.

Each expression is evaluated in Google Sheets and the result recorded. Those recorded answers are fixed, and every change to the engine is checked against them.

An engine checked against its own output can only ever agree with itself. Ours is checked against the system it claims to match.

Building that reference is most of the work, and it is why the numbers below mean something.

Where a naive engine drifts

  • =ROUND(2.5, 0)3

    Sheets rounds half away from zero. Banker’s rounding — the IEEE 754 default, and what Python’s round() does — returns 2.

  • ="10" + 515

    Text coerces to a number in arithmetic. It does not in a comparison: ="10" = 10 is FALSE.

  • =1/0#DIV/0!

    An error is a value that flows onward through the sheet, not an exception that stops it.

  • =TEXT(DATE(2026, 13, 1), "yyyy-mm-dd")2027-01-01

    There is no month 13, so the date rolls forward into the next year rather than erroring.

By category

Every category, including the ones that fail.

A change that breaks any of these cannot ship. Published in full, including where we come up short.

Conformance results by function category, showing passing and total cases
CategoryPassingCasesShare passing
statistical3,1913,1913,191 of 3,191 passing
math2,0062,0062,006 of 2,006 passing
financial1,2081,2081,208 of 1,208 passing
engineering886888886 of 888 passing
text803804803 of 804 passing
array552552552 of 552 passing
date418418418 of 418 passing
lookup393393393 of 393 passing
logical267267267 of 267 passing
info256256256 of 256 passing
operator251251251 of 251 passing
database182182182 of 182 passing
parser939393 of 93 passing
filter818181 of 81 passing
web595959 of 59 passing

Known failures

  • engineering — 2 of 888 cases do not match.
  • text — 1 of 804 cases do not match.

These are tracked as bugs, not as accepted behaviour. They are listed here for the same reason they are listed in CI: a number you cannot check is not evidence.

What we do not match

214 cases we already know we fail.

Out of 12,885. Each one is a real Google Sheets behaviour the engine does not reproduce yet — found, recorded, and kept in the count rather than dropped from it.

We publish this number because a conformance claim you cannot check is a marketing claim. Figures as of 2026-08-05.

Found one we miss?

A formula that disagrees with Google Sheets is a bug. Send it to us and it joins the reference — permanently, for everyone.