Methodology
How the math works.
A retirement planner asks you to trust it with the biggest financial decision of your life. That trust shouldn't rest on a marketing page — it should rest on tests you can count, sources you can look up, and formulas you can read. This page is the audit trail.
Proof, not promises
282 assertions run before every release.
Granary's deploy pipeline chains two test layers ahead of the build, and the deploy fails unless both pass. The first is a calculation-engine harness: 282 assertions that exercise the planning math end to end. The second is a unit-test suite — 151 tests across the tax, ACA, Social Security claiming, backtesting, and billing-entitlement modules, including tests that pin the historical dataset to the published record so a mistyped year can't slip in.
The engine harness covers, among other things:
- →Federal bracket math against golden hand-computed cases
- →Tax-aware withdrawal sequencing across all three strategies
- →Social Security claiming, breakevens, and the Pub 915 taxability ramp
- →RMD timing and prior-year-end balances
- →IRMAA tier boundaries
- →Roth conversion and QCD analyzers
- →Monte Carlo inflation timing
- →Mortgage and loan amortization
- →Survivor scenarios and edge cases
- →The 2026 tax constants themselves
What the tests don't do: they verify that the engines implement the published rules correctly, not that the future will resemble the past. No test suite can fix a wrong assumption about your own life — that part stays yours.
No black box
Every number opens its formula.
Click any figure on the dashboard and a drill-down opens with the exact formula and the inputs that fed it — plain English, your actual numbers substituted in. Net worth, cash flow, readiness, withdrawal-year tax: each one traces back to arithmetic you can check by hand.
This is the same instinct that makes people build their own spreadsheets: if you can't see the math, you can't trust the answer. We kept the visible math and removed the part where you maintain forty tabs of cell formulas.
Citations
Where the numbers come from.
Every engine in Granary names its source at the top of its source file, and the values are tested against the published tables. These are the sources, as cited in the code:
Historical market returns
NYU Stern (Aswath Damodaran), "Historical Returns on Stocks, Bonds and Bills: 1928–Current"
S&P 500 total returns, 10-year Treasury total returns, and CPI-U inflation for every year from 1928 through 2024 — 97 years. The dataset is cross-checked against landmark years in the published table (1931 stocks −43.84%, 2008 −36.55%, 1982 bonds +32.81%) by tests that fail if a value drifts. This is what historical backtesting replays your plan against.
ACA premium subsidies
IRS Rev. Proc. 2025-25 (July 2025)
The 2026 applicable-percentage table (2.10%–9.96% of income, by federal poverty level) — the post-ARPA schedule, which means the subsidy cliff at 400% FPL is back. Granary models the cliff explicitly rather than pretending the enhanced subsidies still exist.
Social Security claiming math
SSA reduction and delayed-credit formulas, as published for 2026
Early-claiming reduction of 5/9 of 1% per month for the first 36 months before full retirement age, 5/12 of 1% per month beyond that; delayed retirement credits of 2/3 of 1% per month (8% per year) from FRA to 70; FRA by birth year per the SSA schedule.
Social Security taxability
IRS Publication 915
The provisional-income ramp that makes 0%, 50%, or 85% of your benefit taxable depending on your other income — applied consistently in the withdrawal planner, Tax Planning, and the projections, not just in one panel.
Federal income tax
IRS Rev. Proc. 2025-32, as amended by OBBBA
2026 brackets and standard deduction for all four filing statuses, the over-65 additional deduction (Pub 501), and the OBBBA senior bonus deduction with its income phase-out. FICA and the 3.8% NIIT are modeled separately.
State income tax
2026 state rate table, all 50 states plus DC
Flat-tax states use the exact rate. Progressive states use the top marginal rate as a deliberately conservative default — most retirees pay less — and the rate is editable, so you can set what you actually pay.
Required minimum distributions
SECURE 2.0 and IRS Pub 590-B, Table III (Uniform Lifetime)
Start age 73 for those born 1951–1959 and 75 for 1960 or later, with the age-72 divisor retained for the pre-1951 cohort already taking RMDs. Each year’s RMD is computed on the prior-year-end balance — an easy detail to get wrong, and one our tests pin down.
When users find bugs
A user caught a state-tax error. Good.
Because the formulas are visible, users check them — and sometimes they find something. A user noticed their projected state tax looked too low. They were right: the withdrawal engine was applying the state rate to the federal tax bill instead of to taxable income. Another user caught an RMD timing edge case. Both were fixed within 48 hours.
The part that matters is what shipped with the fixes: regression tests. The suite now asserts that state tax lands in the correct range of taxable income — far above what the buggy ratio would produce — and that RMDs use the prior-year-end balance. Those two bugs are structurally unable to come back.
That's the process, and it's a feature: visible math invites scrutiny, scrutiny finds errors, and every error becomes a permanent test. A black-box planner with the same bug would still have it.
Found something yourself? Settings → Feedback in the app sends us a report with enough context to reproduce it.
Honest limits
Every panel ships its caveats.
A model that hides its simplifications is lying by omission. Granary's panels state theirs in the interface, next to the numbers they qualify — not in a terms-of-service footnote. Two examples, quoted from the product:
“Honest limits: all figures are real (today's) dollars… Each person is modeled on their own benefit only — spousal and survivor benefit interactions are not optimized yet, and for couples those can change the answer. Longevity is the dominant unknown… This is a planning comparison, not advice.” — the Social Security claiming panel
“Simplifications still in play: taxable-bucket basis/gain ratio held constant; state tax flat-rated… Use as a planning compass, not a filing document.”— the withdrawal plan's modeling notes
When a simplification gets removed, the caveat comes down and a test goes up. Until then, you deserve to know exactly where the model rounds the corners.
Want to see this process in motion? Read the changelog — every entry is a real merge, dated.
Run your own numbers.
The free calculators use these same engines — no account needed to check our work.
Start free7-day free trial on Monthly & Annual. Cancel anytime, no charge. 30-day money-back guarantee on every plan.