Workflows

Plans you can read. Runs you can trace.

Workflows run accounting work the way your reviewer wishes it were prepared: a plan you can read up front, versioned operations underneath, and a working paper behind every number.

Commission payable – Q2 2026 · planned, run, and traced to policy

From approved rules to a signed-off number.

Rules you approved compose into a plan you can read. Declarative operations execute it. Every cell lands with lineage, and the whole run arrives ready for sign-off.

  • rate schedulesapproved
  • thresholdsapproved
  • proceduresapproved

from the knowledge base

compose

The plan

  • union
  • aggregate
  • range_lookup
  • ⋯ each step cites its rule
execute

The run

versioned operations only

complete

trace
  • commissionstraced to source
  • accrualstraced to source
  • reconciliationstraced to source
sign off
Review – working papers attached · approve, or send backruns attach to close tasks

Describe the work. Read the plan.

The planner composes a step-by-step plan from your policy – every step cites the rule it implements, and it runs when you say so.

Q2 2026 – an 8-step plan, read before it runs

The operation library

Every step is a document you can read.

Each operation is specified, tested, and deployed by Assertion before it ever touches your data – and every run records the version it ran on.

range_lookupoperation set v1.2.0

Matches a value against [min, max) bands in a reference table and brings the matched band across. Tiered commission, tax brackets, aging buckets.

  • Compares in decimal – no float drift on a rate boundary.
  • Overlapping bands raise a loud error, never an arbitrary pick.
  • A value outside every band is null or an error – your choice, declared up front.
  • Each result cell records the input value and the matched band's min, max, and value.

23 testsbuilt by Assertionversion pinned per run

A few of them

aggregate
Group rows and total, average, or count them
range_lookup
Assign the band a value falls into
reconcile
Compare two sets and summarise the differences
allocate
Distribute an amount across targets on a ratio – rounding that still sums
variance_check
Flag rows where actual differs from expected beyond a threshold
match
Pair rows across two datasets – matched, and both unmatched sides

Every step is an operation from a fixed library that Assertion builds, tests, and deploys. If an operation isn't in the library, it doesn't run.

One version for the whole set.

The operation set version bumps only when an operation's output changes for the same input – never for logging or refactors. So when a number moves between two runs, the run diff can tell you whether your data changed or the operations did.

Every number, walked back.

Open any cell's working paper and walk it to source – the contributing rows, the rate applied, and the policy clause that decided it.

3 rows summed → 7,490.00 · policy §3.2

Ask why. Open the answer.

Ask why a number is what it is – the answer cites the operation and the policy clause, down to the source file and row. And everything it cites, you can open: inquiry lands on top of inspection, not instead of it.

7,490.00 = SUM(deal_commission)
3 rows · Silver 7.00% · §3.2 / §4.1

The full working paper for a 7,490.00 commission payable: formula, three contributing rows, trace to source, and the policy basis with sections 3.2 and 4.1
The whole working paper – formula, rows, trace, policy basis

Early pilot

We're onboarding a handful of early teams.

Tell us where your close hurts. That answer doesn't go to a sales queue – it goes to the founders who write the roadmap. Pilot teams get early access, and first say in what we build next.