Contracts

The contract is the source of truth.

Every figure on every statement points back to the clause that authorized it, and to the version of the contract it ran against. The contract isn't paperwork that lives next to the system; it's the thing the system reads to compute the answer.

Contract wizard

Build a contract by answering questions.

No formula language, no spreadsheet wiring. Pick a template, answer a handful of plain-English questions, and the wizard assembles the contract: formula, splits, rates, recoupment, reserves. The same building blocks the engine reads to compute every period, structured the same way every time.

New contract All set · ready to generate
01Who is this contract for?
Maren Aldo · App Store unit royalty
02What's the deal type?
Revenue share (% of net receipts)
03Base creator share?
70 % of net
04Tier escalation?
At $1M cumulative LTV → 85 % of net (prospective, §4.1)
05Reserve holdback?
30-day refund window, released after window closes
06Recoupable advance?
No
07Statement cadence?
Monthly
Plain English
The questions are about the deal, not the math.
No formula syntax to learn. The wizard maps your answers to the engine's building blocks (tiered rates, recoupment, reserves, splits) without you ever thinking about the wiring.
Template-aware
It only asks what's relevant.
Pick a template (flat, tiered, escalating, advance-recoupable, multi-recipient) and the wizard tailors the questions. No tier? No tier questions.
Editable before commit
Change anything until you're ready.
Tweak any answer, see the contract update live in a preview panel, and only commit when the deal matches what you signed.
Frozen on commit
Generate snapshots the formula onto the contract.
The moment you commit, the formula is locked on this contract. Edits to the underlying template afterward never reach back. New terms create a successor contract that supersedes the old one going forward.
Non-fungibility

Once committed, frozen. Edits supersede, never overwrite.

When a contract is signed, its terms are locked on that contract: formula, splits, rates, recoupment rules, reserves. If a term needs to change, a new contract is created that supersedes the old one going forward. The old contract remains the authority for every period it covered. Nobody can reach back and edit a past period's terms. Not a tenant admin. Not CleaRoyalty support.

CR-01847 · v1
Maren Aldo · App Store unit royalty
Frozen · authoritative
Creator share70 %
Tier · §4.1≥ $1M LTV → 85 %
Reserve30-day refund
Authoritative for periods through Mar 2026
CR-01847.1 · v1
Maren Aldo · App Store unit royalty
Live · prospective
Creator share75 % flat
Bonus · §4.2+5 % on bundle SKUs
Reserve30-day refund
Authoritative starting Apr 2026 forward
Formula library

One engine, every kind of deal.

The engine reads your contract, whatever shape it takes, and runs the same calculation the same way every period. Mix and match the building blocks below to model any deal you've ever signed.

flat_rate

Flat rate

Fixed percentage of net receipts every period. The simplest deal, and the most common.

tiered_cumulative

Tiered cumulative

Rate steps up after the artist crosses a lifetime threshold. Tier reached prospectively, never retroactively.

escalating_by_time

Escalating by time

Rate moves on a schedule (say, +5% after year 3). Anchor dates and escalation events live on the contract.

per_unit

Per-unit royalty

Dollar amount per unit sold, with optional caps and floors. Pairs with bundle allocation for multi-SKU deals.

recoupment

Recoupable advances

Pre-paid advance recouped from royalties as they earn. Per-contract or cross-collateralized across an artist's catalog.

reserves

Reserve holdbacks

A percentage held back for a defined window (refunds, returns) and released on a schedule when the window closes.

splits

Multi-recipient splits

Share a single SKU across writers, producers, sub-publishers, collaborators. Splits are part of the contract, not a side spreadsheet.

bundle_alloc

Bundle allocation

Bundle revenue split across constituent SKUs by their standalone price. Each SKU then runs its own contract math.

expense_alloc

Pro-rata expense allocation

Shared expenses (ad spend, processing fees, returns) allocated across SKUs by revenue share before the royalty calc runs.

expense_debt

Expense debt carry-forward

When a period's expenses exceed receipts, the deficit carries to the next period before royalties pay out again.

opening_bal

Opening balances

Carry forward advance balance, expense debt, and holdback reserves at cutover, so periods after CleaRoyalty pick up exactly where prior periods left off.

custom

Custom contract types

If your deal doesn't fit any template, model it once and the engine runs it the same way every period. No bespoke code per artist.

Per-clause traceability

Every figure is a citation.

On a CleaRoyalty statement, no number is an opinion. Tap a line and it opens to the sale that drove it, the clause that authorized it, and the version of the contract that ran. The same trace is what an auditor or counsel sees when they ask "where does this come from?"

Apr 2026 · for Maren Aldo
USD10,416.30
Gross sales 17,424.00
Store fee (30 %) −5,227.20
Creator share §4.1 × 0.85
Net to Maren 10,416.30
Ran against · CR-01847 · v3 SHA-256 · b7a4…2f1c
CONTRACT CR-01847 · §4.1
"Upon reaching $1,000,000 cumulative lifetime revenue, Creator share increases from 70% to 85% of net, applied prospectively, in the first full period after the threshold is crossed."
version   CR-01847 · v3
committed   2025-09-12 14:22:08 UTC
predecessor   CR-01847 · v2 (frozen)
authoritative for   periods Q4 2025 →
Version history & audit

The contract you committed to. The one the engine ran.

Every contract is versioned. Every calculation records the exact version it ran against. Every change is who, what, and when. The artist always knows what was true on every date.

Versioned end-to-end
Every clause change creates a new version. The previous version stays intact and remains authoritative for every period it covered.
Calculation pinned to version
Every statement records the exact contract version that produced it. Re-running a period a year later returns the same answer, by construction.
Templates don't reach back
Edits to a template create a new version going forward. Existing contracts on the old template remain on the old template. Full stop.
Superseding is a first-class action
When terms change, a new contract supersedes the old one with an explicit start date. The chain is part of the artist's record, not a footnote.
No admin escape hatches
Once the objection window closes, statements lock permanently. There is no override path inside CleaRoyalty. Corrections happen with a signed audit-package export, never quiet edits.
Discoverable on demand
Every version, every change, every calculation, all exportable as CSV, PDF, or JSON when an auditor or counsel asks. Ready in seconds, not weeks.

See a contract tap-traced end-to-end.