Skip to content

For SaaS and digital products

Seats, plans and usage credits, in books that balance.

Every Stripe invoice, prorated seat changes included, becomes balanced books, a signed receipt and tracked credits. Replay the events and get the same books.

  • Seat changes, upgrades and proration posted from the invoices Stripe sent.
  • Usage credits granted, used and expired, tracked as balances.
  • Signed receipts and sealed months; replay to the same books.

Simulated · invented names · synthetic data

A SaaS product, simulated.

Lumen Notes is invented. A seeded scenario runs its year through the engine, hledger and DuckDB, and all three give the same KPI hash. Run it yourself with the command on the card. See every preset and where the simulations simplify.

SaaS and digital products

Simulated

Lumen Notes, a simulated SaaS product.

In their words: seats · plans · proration · usage credits

What's modelled

  • Solo, team (3, 5 or 10 seats) and business (10, 25 or 50 seats), priced per seat
  • About a third prepay annually
  • Seats added mid-month, billed at once with proration; dropped at renewal
  • Upgrades from solo to team to business
  • API usage as credit blocks of 1,000 calls
  • Boost packs and support add-ons

saas-seats · seed 401 · 2026-01..2026-12

A year of seat plans, seats added and dropped, upgrades and API credits.

Gross collected gross_collected
$69,521
New paying members new_paying_members
89
Paying members last month paying_members_last_month
49

scenarios describe saas-seats

saas-annual · seed 402 · 2026-01..2027-12

Everyone prepays a year, over 24 months so the renewals show.

Gross collected gross_collected
$52,993
New paying members new_paying_members
20
Paying members last month paying_members_last_month
0

Paying members last month is 0: every plan is yearly, so nobody pays in a given month.

scenarios describe saas-annual

KPIs each preset produces

Gross collected · Net income · Refunds · Disputes · Stripe fees · Payouts · Payments · New paying members · Paying members last month · Credits granted, consumed and expired

How the orgs are simulated ↗(opens in a new tab)

Three things that make SaaS books hard

1. Seat changes and proration that are hard to reconcile

Teams add seats mid-month and drop them at renewal. Upgrades bill at once, with a credit for the old plan and a charge for the new one.

How Trifold answers it (chapters 01 and 02, Money in and Books): every invoice Stripe sends, prorated seat changes and upgrades included, lands as an event and posts as balanced books. Reconcile against Stripe’s records on request.

2. Usage credits that drift from what was billed

How Trifold answers it (chapter 02, Books): credits are balances built from the same events as the money. Credits granted, used and expired are counted from the invoices and the usage, so the two can’t drift apart unseen.

3. Investors or auditors asking where revenue came from

How Trifold answers it (chapter 03, Proof): every number traces to the Stripe payment behind it, each payment has a signed receipt, and sealed months show any later change. Replay the events and you get the same books.

What it doesn’t do: Trifold doesn’t recognise revenue or make ASC 606 claims, and there’s no MRR KPI yet. It keeps the books of what Stripe charged, collected and refunded.

Questions

Seats and credits that show their work.

Books ✓Receipt ✓Stripe ✓

Design partners: founder onboarding, free during the pilot.