Now available on PyPI

Your Excel models are changing.
Do you know when?

TestSheet detects silent changes in financial models — before they flow into board decks, investor reports, or key decisions.

You're on the list. We'll be in touch!

No spam. Unsubscribe anytime.

See it in action

terminal
# Capture a golden-master baseline
testsheet baseline "Q3 Model.xlsx"
✓ Baseline written to .testsheet/baseline.json

# Someone edits the model. Run the check.
testsheet run "Q3 Model.xlsx" --html report.html

CHANGES DETECTED — PENDING REVIEW

Sheet Address Kind Baseline Current
──────────── ──────── ───────────── ─────────── ────────
Assumptions B4 value_only 8.5% 9.2%
Assumptions B7 value_only 1,200 1,350
DCF D12 error_introd $4,821,000 #REF!

# Review changes, then approve the new version
testsheet approve "Q3 Model.xlsx"
✓ Approved: Q3 Model.xlsx is now the new baseline.
The problem

Excel models break silently.
No one finds out until it matters.

A single changed assumption can cascade through hundreds of cells. By the time someone notices the numbers are wrong, the damage is already done.

😱

Silent cell changes

An input gets updated. Formulas cascade. Nobody notices until the board meeting.

📋

No audit trail

"Who changed this?" There's no way to know what changed, when, or by how much.

🔒

Broken formulas

#REF! errors appear after a restructure. No one checks every cell manually.

🔀

Version confusion

v12_final_FINAL.xlsx. Which one is right? What changed between versions?


Everything you need to trust your models.

🔎

Drift detection

Compare any two versions cell-by-cell. Classifies changes as value, formula, error, new, or deleted.

🛡

Invariant rules

Define business logic constraints — revenue must be positive, totals must tie — and enforce them automatically.

📄

Beautiful reports

Standalone HTML reports you can email to stakeholders. No login required to view.

⚙

CI/CD integration

Drop into GitHub Actions or any CI pipeline. Fail builds when models drift unexpectedly.

✓

Approve workflow

Intentional changes? Run testsheet approve to promote the new version as the golden master.

⚙

Float tolerance

Configure numeric tolerance to ignore rounding noise. Only flag changes that actually matter.

How it works

Three commands. That's it.

1

Install

pip install testsheet-xl
Works with any .xlsx file. No Excel required.

2

Baseline

testsheet baseline model.xlsx
Captures the golden-master snapshot of your model.

3

Run

testsheet run model.xlsx
Detects every change since the baseline. Every time.

Be the first to know what's next.

We're building a team version with web UI, version history, and collaborative review.
Sign up for early access.

You're on the list!

No spam. Unsubscribe anytime.