The price became a measurement, and measurements need systems.
For twenty years the revenue number at a software company came from two stable things: a contract that said what the customer had bought, and a count of seats that changed a few times a year. Revenue accounting was hard in the way contracts are hard, full of judgement about performance obligations and standalone selling prices, but the inputs sat still while you thought about them. You could print the order form and reason about it.
That is changing quickly, and the numbers are no longer small. Deloitte’s 2026 technology predictions cite a Maxio survey finding that 83 percent of AI native software companies currently offer usage based pricing, and quote Gartner saying at least 40 percent of enterprise software spend will shift toward usage, agent or outcome based pricing by 2030. The same report makes an observation that sounds like product advice and is really an accounting warning: these models need agreed definitions of an agent, a task, a process, an interaction and an outcome, and system instrumentation and metering may have to become more advanced while data observability, billing and financial compliance become more real time.
Read that as a controller and the consequence is direct. If the price is a count of things that happened, then the thing producing the count has become a source document. It is usually a stream of events emitted by application code, designed by engineers for product analytics, shipped on a weekly cadence, with retention set by storage cost and a schema nobody thought of as permanent. None of that is a criticism of how it was built. It was built for a purpose, and it does that purpose well. The purpose has now quietly expanded.
The good news is that this is a solved problem on the accounting side. The guidance for variable consideration is fifteen years of thinking old, both standard setters have recently reviewed it and concluded it works, and the paragraphs that matter here are short and readable. The work that remains is engineering work with a clear specification, which is a far better position than waiting for a standard. What follows is the specification.
| Signal | What the source reports | What it asks of your systems |
|---|---|---|
| Usage pricing is already normal | Deloitte’s 2026 predictions cite a Maxio survey finding that 83 percent of AI native software companies currently offer usage based pricing | For most of these companies the meter is already the invoice. The question is whether the same meter is trusted to produce the revenue number, or whether a second calculation runs beside it in a spreadsheet. |
| The shift has a long runway | Gartner, quoted in the same Deloitte report, says at least 40 percent of enterprise software spend will shift toward usage, agent or outcome based pricing by 2030 | This is not a one year reporting problem to be worked around. The data model is worth building properly, because the share of revenue depending on it goes up every year from here. |
| Definitions are the hard part | Deloitte’s report says these models require agreed definitions of terms such as an agent, a task, a process, an interaction and an outcome, agreed contractually and across engineering, sales and legal | Every one of those definitions eventually resolves to a boolean in a row of data. Whoever writes the definition is writing the recognition rule, usually without knowing it. |
| Instrumentation is named as the gap | The same report says system instrumentation and metering may have to become more advanced, and that data observability, billing and financial compliance may have to become more real time | Finance is rarely in the room when metering is designed, because metering looks like a product analytics concern. It stops being one the moment a number it emits reaches the income statement. |
| Outcome pricing is still emerging | Practitioners describe outcome pricing as harder to sell than to design, so hybrid structures that mix a fixed fee with a variable one are the common landing point | Hybrids are the awkward case in the guidance. A fixed fee sitting alongside outcome fees is one of the things that removes the simplest recognition route, so the most commercially natural structure is also the one that asks most of your systems. |
Pricing is one of the toughest questions facing AI startups today. The thinking has been that everything will shift to outcome-based pricing. But the reality is messier.
Two doors, and the contract decides which one you walk through.
On 4 June 2026 Deloitte published a Technology Spotlight dealing specifically with outcome based pricing in agentic software, and KPMG has a webcast on revenue for AI companies scheduled for 1 October 2026. Reading the Deloitte piece in full, the striking thing is how little new law there is in it. The analysis runs through paragraphs that have been in the standard since it was written. What has changed is how many contracts now land on them.
The first question is the nature of the promise. Either you are standing ready to provide access to a service throughout a term, which is satisfied over time because the customer simultaneously receives and consumes the benefit, or you are obliged to deliver a specified quantity of successful outcomes. The tells for the second are concrete: each success reduces a remaining entitlement, the customer’s right ends when the quantity is consumed, and getting more requires a fresh purchase order rather than simply continuing. Where usage is driven by downstream events, a customer’s own end customers submitting refund requests, or fraud attempts arriving from outside, the promise is almost always the stand ready one.
A stand ready hosted service is typically a series of distinct service periods under ASC 606-10-25-14(b) or IFRS 15 paragraph 22(b), which is the structural fact everything else rests on. Being a series is what makes it possible to say that a variable fee belongs to March rather than to the contract as a whole. Without the series, there is one undifferentiated performance obligation and the variable amount has nowhere specific to go.
| Shape | What the contract says | Where it lands | The worked example |
|---|---|---|---|
| Specified quantity of outcomes | The customer buys a defined number of successful outcomes. Each success reduces the remaining entitlement, unused volume may roll over, and once the volume is consumed the customer has to make a fresh purchasing decision before anything more is owed | An obligation to deliver a specified quantity, satisfied over time, with revenue recognised on an output method as outcomes are delivered | Deloitte’s Example 3 has 250,000 fully resolved refund cases bought for 5 million dollars up front, which is 20 dollars an outcome, with rollover permitted and the same service also sold on a pay as you go basis |
| Stand ready access, outcome fees on top | The customer gets continuous access with no specified volume, pays a fixed access fee, and pays a fixed rate for each contractually successful outcome on top. Usage is driven by downstream events rather than by a procurement decision | A stand ready obligation treated as a series of distinct service periods. The fixed fee goes over time on a time based measure. The outcome fees are allocated to the period in which the outcomes happened | Example 4 has a 1 million dollar annual access fee plus 3 dollars per successful autonomous fraud intervention. The invoice expedient is unavailable because of the fixed fee, so the allocation route is used instead |
| Outcome fees only, fixed rate, billed as they occur | Pricing is solely variable, at a fixed rate per outcome, with a right to invoice for outcomes as they occur and no up front, back end or minimum amounts anywhere in the arrangement | A stand ready obligation where the amount you may invoice corresponds directly to the value transferred, so the invoice practical expedient can be considered and no inception estimate is needed | Deloitte sets three conditions for this: transferred over time, priced solely on successful outcomes, at a fixed rate per outcome, with a right to invoice as they occur |
| Outcome fees that settle across the whole term | The fee depends on aggregate performance measured over the full contract rather than within a period, through a term wide success rate, a cumulative volume tier or a year end true up | Still a stand ready obligation, but the variable amount is no longer attributable to any one period, so it becomes an estimate made at inception, constrained, spread over the term and updated at every reporting date | Example 6 is Example 5 with one change: the success rate is computed for the whole twelve months instead of resetting monthly. Nothing else about the product, the price or the meter changes |
The comparison worth sitting with is the last two rows against each other. Deloitte’s Example 5 has a monthly fee set by that month’s resolution success rate: 18,000 dollars above 80 percent, 15,000 dollars between 70 and 79, 12,000 dollars between 60 and 69, and nothing below 60. Because it resets each month and applies only to that month’s service, the variable amount is allocated to that month and recognised when the month’s metric is determined. Example 6 keeps every one of those facts and changes exactly one: the success rate is computed across the whole twelve month term instead of monthly. That single change means the fee is not attributable to any distinct month, so the exception falls away and the company must estimate total variable consideration at inception, apply the constraint, recognise it over time on a time based measure, and revisit the estimate every reporting period.
Same product. Same price. Same meter. Same customer experience. One clause in the order form separates reading a number off a system from running an estimation model four times a year and documenting it for an auditor. That is worth knowing at the point the clause is drafted, which is months before anyone in revenue accounting normally sees it.
| The question | US GAAP | IFRS | What it turns on |
|---|---|---|---|
| Is this one performance obligation or many? | ASC 606-10-25-14(b) and 25-15 | IFRS 15.22(b) and 15.23 | A series is distinct goods or services that are substantially the same with the same pattern of transfer. The pattern test has two criteria: each distinct item would be satisfied over time, and the same method would measure progress for each. Daily or monthly access to a hosted service usually clears both. |
| Why is access satisfied over time? | ASC 606-10-25-27(a) | IFRS 15.35(a) | Because the customer simultaneously receives and consumes the benefit as you perform. This is the criterion both the stand ready case and the specified quantity case lean on, which is why the choice between them is about the nature of the promise rather than about timing in the abstract. |
| Can I put the variable fee in the period it was earned? | ASC 606-10-32-39(b) and 32-40 | IFRS 15.84(b) and 15.85 | Only if both criteria hold. The payment terms must relate specifically to your effort to transfer that distinct service or to a specific outcome from doing so, and allocating the amount there must be consistent with the allocation objective. This is the paragraph a monthly meter lives or dies on. |
| What is the allocation objective it has to satisfy? | ASC 606-10-32-28 | IFRS 15.73 | That the amount allocated depicts the consideration you expect to be entitled to for transferring the promised goods or services. In practice: a consistent rate per outcome that reflects its standalone selling price, resetting each period, with no cross period true ups and no pricing for one agent set on the expectation of buying another. |
| Can I just recognise what I am allowed to invoice? | ASC 606-10-55-18 | IFRS 15.B16 | The wording is identical in both: where you have a right to consideration in an amount that corresponds directly with the value to the customer of performance completed to date, you may recognise the amount you have a right to invoice. It is a genuine simplification and it is narrower than it looks. |
| What happens if neither exception is available? | ASC 606-10-32-11 | IFRS 15.56 to 15.59 | You estimate the variable consideration, include it only to the extent a significant reversal is not expected, and update that estimate at the end of every reporting period. IFRS 15.57(c) names limited experience with similar contracts as a factor increasing reversal risk, which describes a pricing model launched this year. |
| Does the usage based royalty rule help me here? | ASC 606-10-55-65 | IFRS 15.58 and 15.B63 | Almost certainly not. That treatment is available only for a royalty promised in exchange for a licence of intellectual property. A hosted service is not a licence. The FASB’s own review records that the Board considered widening it beyond licensing when the standard was written and chose not to. |
| Does the choice change what I disclose? | ASC 606-10-50-14 | IFRS 15.121(b) and 15.122 | Yes. Recognising under the invoice expedient relieves you of the remaining performance obligation disclosure for that obligation, but you then have to say qualitatively that you are applying the expedient. The recognition decision reaches the notes, so it is worth making once and documenting properly. |
One route is worth closing off explicitly, because it is the first place experienced revenue people reach. The sales based or usage based royalty treatment, where you recognise only as the usage occurs and never estimate anything, is genuinely simple and genuinely unavailable here. IFRS 15 paragraph 58 and paragraph B63 confine it to a royalty promised in exchange for a licence of intellectual property, and the US equivalent does the same. A hosted service is not a licence. The FASB’s post-implementation review of Topic 606 even records that the Board considered widening the exception beyond licensing when the standard was written and decided against it, because it would add complexity or delay revenue past the point goods and services transfer. The door is closed deliberately rather than by oversight.
A definition of success is a query over somebody’s audit trail.
The allocation exception has a first criterion that reads like boilerplate and is the whole game in practice. The payment terms must relate specifically to your effort to transfer that distinct service, or to a specific outcome from doing so. Deloitte’s reading of that for outcome pricing is blunt: the contract has to define a successful outcome with enough specificity that both parties can tell when the obligation has been satisfied and the right to consideration earned. Without clear contractual success criteria, the payment may not be specifically related to an outcome at all, and the exception is not available.
The clearest way to see what that demands is Deloitte’s Example 7, which happens to be an accounts payable agent. The arrangement carries a 600,000 dollar annual access fee, 1 dollar 25 per invoice processed straight through, and 1 dollar per duplicate payment prevented. A successful outcome is defined as an invoice posted correctly to the ERP with a document identifier and passing required field validations, approvals that followed the delegated authority matrix with a workflow audit trail and no overrides, and controls passing with the transaction not reversed for cause within an agreed window. Duplicate prevention requires the controls agent to have logged, held or blocked the payment, to demonstrate no payment occurred, and for the prevention not to be overturned inside the window.
Read that sentence as a specification and every clause is a condition something has to evaluate and store. A document identifier exists. A set of validations passed. An approval chain matched a matrix. No override was applied. A window elapsed without a reversal. The revenue for that line is the count of rows satisfying all of it. Which means the vendor’s revenue recognition depends on evidence produced inside the customer’s own system of record, and the vendor has to be able to show that evidence to its own auditor months later.
This cuts both ways, and the second direction is the more interesting one. If you are the buyer rather than the seller, an outcome priced contract is an invoice you cannot check unless the same evidence is available to you. Agreeing a success definition without agreeing how it will be evidenced, retained and recomputed is how a procurement win becomes a dispute in month seven. The asymmetry is worth fixing at signature, and the fix is a clause about evidence and retention rather than a clause about price.
There is a related trap in the denominator. A tiered or performance based fee turns on a success rate, and a rate needs both numbers. Deloitte’s Example 5 spells out the denominator carefully: eligible requests submitted in the month meeting predefined automation criteria, excluding contractually defined out of scope items such as fraud investigations, regulatory exceptions and missing required data. If your event pipeline only writes a row when something succeeds, which is a very common and entirely reasonable design choice for product telemetry, the denominator does not exist anywhere and the fee cannot be recomputed by anyone. That is a schema decision made years earlier with no accounting intent whatsoever, and it is the single most common way this goes wrong.
About 7% of TP's revenue now comes from its ‘revenue-as-a-service’ business, where contracts are linked to business outcomes such as revenue generation, customer retention or cost savings.
Build the event record once and let both jobs run off it.
The practical answer to all of this is a single well built record per outcome, serving billing and revenue at the same time, rather than a metering feed for invoicing and a separate reconstruction for the close. The fields that make that work are not exotic. Most of them are the things you would want anyway for a billing dispute, which is a useful argument to have ready when asking for engineering time.
| Field | What it holds | Why it is load bearing |
|---|---|---|
| event_id and idempotency_key | A stable identifier the producer generates once, plus a key that makes a replay of the same event a no operation | Pipelines retry. Without an idempotency key a retry is indistinguishable from a second outcome, and a duplicate here is revenue you did not earn and an invoice line the customer will dispute. |
| occurred_at and recorded_at | When the outcome happened and when your systems learned about it, both stored, both in UTC, with the derived accounting period held as its own column | These diverge, and the gap is where period cutoff errors live. An event that occurred on the 30th and arrived on the 3rd belongs to the earlier period, and only a stored occurred_at lets you prove that after the fact. |
| contract_id and contract_version | The arrangement the event is priced under, and the specific version of its terms that was in force when it occurred | Order forms get amended mid term. Pricing an old event at a new rate is a silent misstatement, and an amendment that changes how a success rate is measured can move the whole arrangement from one recognition route to the other. |
| success_criteria_version and success_result | Which version of the contractual success test was applied, and the explicit pass or fail it produced, rather than the presence of the row being taken to imply success | The contract defines success. If only successful events are ever written, you cannot compute a success rate, you cannot support a tiered fee, and you cannot show an auditor the population the rate was drawn from. |
| evidence_ref | A pointer to the underlying proof that the criteria were met: the document identifier, the workflow trail, the validation result | This is the field that turns a count into evidence. Without it, testing a sample of outcomes means asking an engineer to reconstruct what happened, which is an expensive way to answer a routine audit question. |
| rate_applied and unit_amount | The rate taken from the contract version and the resulting amount, stored on the event rather than recomputed at reporting time | Storing the amount makes a period reproducible. Recomputing it later means the number depends on whatever the pricing tables say today, and a rate table is one of the easiest things in a system to change without leaving a trace. |
| reversal_of and reversal_reason | A reversal is a new row pointing at the original, never an update or a delete, with the reason recorded and the original left intact | Contracts often say an outcome is only successful if it is not overturned within an agreed window, which means reversals are part of the design rather than an exception. An immutable history is also what lets you explain a restated prior period instead of merely reporting one. |
| billing_status and revenue_status | Whether the event has been invoiced and whether it has been recognised, tracked separately on the same row | They are different questions with different timing, and holding them on one row is what makes the monthly tie between billings and revenue a query rather than a reconciliation project. |
The outcome event, the success rate it supports, and the exception query that guards both
-- One row per outcome. Append only: a reversal is a new row, never an edit.
create table outcome_event (
event_id uuid primary key,
idempotency_key text not null,
contract_id text not null,
contract_version int not null,
customer_id text not null,
agent_or_sku text not null,
occurred_at timestamptz not null, -- when the outcome happened
recorded_at timestamptz not null, -- when we learned about it
accounting_period date not null, -- derived from occurred_at
success_criteria_version int not null,
success_result boolean not null, -- failures are stored too
exclusion_reason text, -- contractually out of scope
evidence_ref text, -- document id, workflow trail
rate_applied numeric(18,6),
unit_amount numeric(18,6),
currency char(3) not null,
reversal_of uuid references outcome_event(event_id),
reversal_reason text,
billing_status text not null default 'unbilled',
revenue_status text not null default 'unrecognised',
unique (idempotency_key)
);
-- The success rate a tiered fee turns on. It needs the denominator,
-- which only exists because failures were written down.
select accounting_period,
contract_id,
count(*) filter (where success_result) as successes,
count(*) filter (where exclusion_reason is null) as eligible,
round(100.0 * count(*) filter (where success_result)
/ nullif(count(*) filter (where exclusion_reason is null), 0), 2)
as success_rate_pct
from outcome_event
where reversal_of is null
group by accounting_period, contract_id;
-- The exception query to run before the close, not after it.
select 'no contract version' as issue, event_id from outcome_event where contract_version is null
union all
select 'priced off contract', event_id from outcome_event e
where not exists (select 1 from contract_rate r
where r.contract_id = e.contract_id
and r.contract_version = e.contract_version
and r.rate = e.rate_applied)
union all
select 'landed in closed period', event_id from outcome_event e
join period_status p on p.period = e.accounting_period
where p.status = 'closed' and e.recorded_at > p.closed_at
union all
select 'reversal with no original', event_id from outcome_event e
where e.reversal_of is not null
and not exists (select 1 from outcome_event o where o.event_id = e.reversal_of)
union all
select 'success with no evidence', event_id from outcome_event
where success_result and evidence_ref is null;Two things in that shape deserve a note. The first is that failures are stored. It costs almost nothing and it is the difference between a success rate you can recompute and one you have to assert. The second is that reversals are appended rather than applied. Contracts in this space routinely make success conditional on the outcome not being overturned inside an agreed window, which means reversals are part of the normal path rather than an error case. An append only history lets you answer the question an auditor will eventually ask, which is not whether the number is right today but whether you can explain how it got there.
The occurred_at and recorded_at pair is the other piece worth insisting on early. They diverge routinely and the gap is exactly where cutoff problems live. An outcome that happened on the 30th and arrived on the 3rd belongs in the earlier period, and the only way to demonstrate that after the fact is to have stored both timestamps at the time. Measuring the size of that late tail each month turns your cutoff from an assumption into a policy you can describe.
How to build it, in the order that keeps it cheap.
- 1. Read your own order forms before touching any system. For each active arrangement, record four things: whether there is any fixed fee, whether there is a minimum or committed volume, whether the outcome rate is constant through the term, and whether any measure of performance is computed across a period longer than the one you report in. Those four answers decide which recognition route the contract is on, and most revenue teams have never had them in one table.
- 2. Write the definition of a successful outcome down as a testable expression, in the same words as the contract, and have the person who signs the revenue number read it. Deloitte’s Example 7 defines success as an invoice posted correctly with a document identifier and passing field validations, approvals that followed the delegated authority matrix with a clean workflow trail and no overrides, and controls passing with no reversal for cause inside an agreed window. Every clause in that sentence is a condition something has to evaluate.
- 3. Instrument the failures as well as the successes. A meter that only records wins cannot produce a success rate, and a success rate is exactly what a tiered or performance based fee turns on. Record the eligible population, the exclusions the contract permits, and the outcome of each attempt.
- 4. Give the event record an immutable history. Append reversals rather than updating rows, key everything on a stable identifier, and make replays idempotent. Doing this early is cheap. Retrofitting it onto a pipeline that has already been deleting rows for a year is not.
- 5. Stamp every event with the contract version and the rate that version carried. Then make amendment handling explicit: when an order form changes mid term, decide and document whether it is a separate contract or a modification, and make sure events either side of the change price correctly without anyone editing history.
- 6. Build the monthly tie as a standing query, not a spreadsheet. Events in the period, by contract, summed at the stored rate, reconciled to what was invoiced and to what was posted to revenue, with the three differences explained by late arrivals, reversals and deliberate timing rather than by rounding.
- 7. Run an exception query before the close rather than after it. Events with no contract version, events priced at a rate not present in any contract version, events whose occurred_at falls in a closed period, reversals with no original, outcomes recorded without an evidence reference, and any contract whose terms changed without the recognition route being reassessed.
- 8. Decide the invoice expedient question deliberately and document it once per contract shape. It is attractive because it removes the estimate, and Deloitte lists four things that usually take it away: fixed fees alongside outcome fees, substantive minimums, a rate that varies during the term, and up front or back end charges. Also note that using it changes what you disclose about remaining performance obligations.
- 9. For any arrangement that lands on the estimate route, build the estimate as a repeatable calculation with stored inputs rather than as a quarterly judgement call. You have to update it every reporting period anyway, and the standard setters have said plainly that no simplification is coming, so the only thing that makes it cheaper is having the history in a queryable shape.
- 10. Bring the engineers who own the meter into the close calendar. They are now producing a source document, and the most common failure in this whole area is a pipeline change shipped on a Thursday by someone who had no reason to know that a column had become an accounting record.
What tends to go wrong, and what to do instead.
| Failure mode | How it happens | What to do instead |
|---|---|---|
| A pipeline change quietly changes the revenue | Metering is usually owned by a product team with its own release cadence. A redefinition of what counts as a completed task, shipped as a product improvement, moves the revenue number with no accounting entry behind it | Treat the success definition as a controlled artefact. Version it, tie each version to the contracts that reference it, and put a change to it through the same review as a change to a posting rule. A diff on that definition should be readable by an accountant. |
| Late events land in a closed period | Events arrive after the books close, legitimately, because a reversal window ran past the cutoff or an upstream system was slow | Store occurred_at and recorded_at separately, set an explicit and documented cutoff policy, and measure the size of the late tail each month. Once you know the tail is stable and small, it becomes a disclosed convention rather than a monthly surprise. |
| Hybrid pricing removes the easy route without anyone noticing | A deal desk adds a modest platform fee or a small minimum to close a deal. Commercially it is a rounding detail. Technically it can remove the invoice expedient for that contract | Put the four structural questions on the order form approval itself. The cost of answering them at signature is a minute. The cost of discovering the answer during a year end audit is a remeasurement across a population of contracts. |
| A term wide metric turns a meter into a model | A success rate measured across the year rather than the month means the variable amount is not attributable to any one period, so it has to be estimated at inception and revisited at every reporting date | This is a pricing design choice with a direct reporting consequence, so make it one. If a customer wants an annual performance measure, price it as a separate annual element rather than letting it govern the whole fee, and let the recurring part keep resetting. |
| The constraint is hardest exactly when the product is new | IFRS 15.57(c) names limited experience with similar contracts, or experience with limited predictive value, as a factor that raises reversal risk. A pricing model launched this year has both | Start collecting the history before you need it. Even a few months of outcome rates by customer segment gives the first estimate something to stand on, and the working papers for that estimate are far easier to write while the data is being produced than a year later. |
| Nobody can test the outcomes | An auditor asks for support for a sample of the outcomes that drove the quarter, and the answer involves an engineer writing a query against logs with a retention period | The evidence reference field solves this before it becomes a problem. Decide retention against the audit and dispute windows rather than against storage cost, and make a sample of outcomes something a controller can pull unaided. |
The evidence to keep.
- The contract inventory that drives the recognition routes: for every active arrangement, the fixed fee, any minimum or committed volume, whether the outcome rate is constant, and whether any performance measure spans more than one reporting period. Plus the conclusion each set of answers led to, with the paragraph relied on.
- The success definition, versioned, in the contract’s own words, with the mapping from each clause to the field or check that evaluates it, and a dated history of every change with the contracts affected.
- The event population for the period, including failures and excluded items, so a success rate can be recomputed independently rather than taken on trust. Storing only successes makes a tiered fee unauditable.
- The monthly tie from events to invoices to revenue, with the differences attributed to late arrivals, reversals and timing, retained for every month rather than only for the ones someone asked about.
- The reversal history in full, showing originals preserved, reasons recorded and the period each reversal was reflected in.
- Where an estimate was required, the calculation with its stored inputs, the constraint judgement, and the record of each reporting period’s update, since the requirement to revisit it is explicit in the standard.
- The disclosure position that follows from the route chosen, including the qualitative statement required where the invoice expedient is applied.
- The change log for the metering pipeline itself over the period, reviewed against the close calendar, so that a change to how outcomes are counted can be tied to the period it first affected.
Questions worth asking in your own review.
- For each of our contract shapes, which paragraph are we recognising under, and can the person who signs the revenue number say which one without looking it up?
- Does any fee in our current order forms depend on performance measured across a period longer than the one we report in? If so, is that a deliberate pricing choice or an artefact of how the clause was drafted?
- If an auditor picked twenty outcomes from last quarter at random, how long would it take us to produce the evidence that each one met the contractual definition of success, and who would have to do it?
- Can we recompute last month’s success rate from stored data today, including the failures and the contractually excluded items, without asking anyone to rerun anything?
- What happens in our data when an outcome is reversed inside the contractual window? Is the original row still there, and can we show which period the reversal landed in?
- Who can change the definition of a successful outcome, and does that change pass anyone in finance before it ships?
- Do we store the rate and contract version on the event, or do we recompute amounts at reporting time from whatever the pricing tables currently hold?
- How large is our late event tail, and do we know whether it is stable? If we do not measure it, our cutoff is a hope rather than a policy.
What this adds up to.
The accounting question here is settled, and it is worth saying that clearly because the surrounding noise suggests otherwise. The IASB reviewed IFRS 15 and decided to take no action on variable consideration, concluding that estimating it inherently requires judgement and that no improvement was available that would make it significantly easier. The FASB’s review of Topic 606, drawing on outreach with more than 2,200 stakeholders, landed in the same place, with the staff noting that the difficulty concentrates where a price depends on data affected by external factors or spans a long period. Nobody is coming to simplify this. That is not bad news. It means the answer is stable, and the leverage sits somewhere you control.
It sits in two places. The first is contract design, and it costs nothing. A performance measure that resets each period instead of running across the term keeps you on the simple route with no commercial difference the customer would notice. Keeping a rate constant through the term, avoiding a token minimum added late in a negotiation, and writing a success definition your own systems can evaluate are all decisions made by people who are in the room long before the close. Putting four structural questions on the order form approval is the highest return process change available here.
The second is the event record, and it pays for itself in places that have nothing to do with the audit. A well built outcome log settles billing disputes in an afternoon, supports the customer facing reporting that outcome pricing implicitly promises, gives product a clean measure of how often the thing actually works, and makes the revenue number reproducible at any point in the past. Finance is usually the last function to ask for it and the one with the clearest argument for why it has to be right.
If there is one place to start, it is smaller than a project. Take your current order forms and answer four questions for each: is there a fixed fee, is there a minimum, is the rate constant through the term, and is any performance measure computed across more than one reporting period. That table takes an afternoon and it tells you which contracts are already on the estimate route. Most teams find at least one they did not know about, and finding it in September is a very different experience from finding it in February.
Sources.
- Deloitte, Technology Spotlight, Accounting for Outcome-Based Pricing in an Agentic AI Software Product, 4 June 2026. Fetched as a file and read in full rather than through a summary, per the standing rule about firm and standard setter publications. Source for the central judgment framed here (whether the promise is a stand ready obligation recognised on a time based measure of progress or an obligation to deliver a specified quantity of successful outcomes recognised on an output method), for the position that a stand ready agentic software arrangement is typically a series of distinct service periods, for the four situations in which the invoice practical expedient is described as most likely unavailable (fixed fees alongside outcome fees, substantive minimum requirements, an outcome price that varies during the contract period, and up front or back end fees), and for the nine worked contract examples whose figures are quoted in this article as that publication’s examples rather than as real arrangements.
- Commission Regulation (EU) 2016/1905 of 22 September 2016, adopting IFRS 15 Revenue from Contracts with Customers, consolidated text on EUR-Lex. The endorsed standard text, fetched and read directly. Source for every IFRS 15 paragraph quoted or described here: paragraph 22(b) on a series of distinct goods or services, paragraph 23 on when such a series has the same pattern of transfer, paragraph 35(a) on a customer simultaneously receiving and consuming the benefits, paragraphs 56 to 59 on constraining and reassessing estimates of variable consideration including the factors at 57 and the requirement at 59 to update at the end of each reporting period, paragraph 58 and paragraph B63 restricting the sales based or usage based royalty treatment to a licence of intellectual property, paragraphs 84 and 85 on allocating variable consideration with the allocation objective at paragraph 73, paragraph B16 on the practical expedient permitting revenue in the amount an entity has a right to invoice, and paragraphs 120 to 122 on remaining performance obligation disclosure and the expedient that follows from applying B16.
- Financial Accounting Standards Board, Post-Implementation Review Report, Topic 606 Revenue from Contracts with Customers, 2024. Downloaded and read directly. Source for the statement that the review drew on outreach with more than 2,200 stakeholders, for the staff observation that applying the constraint is hardest where a transaction price is inherently difficult to estimate because it depends on data affected by external factors or covers a long period, and for the record that when the Board first wrote the standard it considered expanding the sales based or usage based royalty exception beyond licensing arrangements and decided not to, because doing so would add complexity or prevent revenue recognition when goods and services transfer.
- IFRS Foundation, Post-implementation Review of IFRS 15 Revenue from Contracts with Customers, Project Summary and Feedback Statement, September 2024. Downloaded and read directly. Source for the statement that the IASB decided to take no action on the matters raised about variable consideration, having concluded that estimating variable consideration inherently requires judgement, especially in conditions of high uncertainty, and having identified no improvement that would make it significantly easier. The same passage records the Board pointing stakeholders back to the factors listed in paragraph 57 and to the requirement in paragraph 59 to update the estimate at each reporting date.
- Deloitte Insights, Technology, Media and Telecommunications Predictions 2026, SaaS meets AI agents, by David Jarvis. Fetched and read directly. Source for the market figures used here: that a Maxio survey found 83 percent of AI native software companies currently offer usage based pricing, and that Gartner says at least 40 percent of enterprise software spend will shift toward usage, agent or outcome based pricing by 2030. Also the source for the observation that these models require agreed definitions of terms such as an agent, a task, a process, an interaction and an outcome, and that system instrumentation and metering may have to become more advanced while data observability, billing and financial compliance may have to become more real time.
- KPMG, webcast listing for Financial Reporting for AI Companies: Asset Lifecycles and Revenue, scheduled for Thursday 1 October 2026. Fetched and read directly. Cited only to show that revenue recognition for software priced this way is live practitioner territory in 2026 across more than one firm, not as the source of any technical statement in this article.
Every IFRS 15 paragraph referred to here was read from the endorsed standard text in Commission Regulation (EU) 2016/1905 on EUR-Lex, fetched as a file and read directly rather than through a summary. The US paragraph references and the four contract shapes come from Deloitte’s Technology Spotlight of 4 June 2026, which was also fetched and read in full rather than summarised, and which quotes the US paragraphs verbatim. The two post-implementation review reports were downloaded as files and read directly. Where a figure appears in a worked example, it is Deloitte’s constructed fact pattern quoted as such: those arrangements, entities and amounts are examples in that publication rather than real customers, contracts or results, and none of them has any connection to Rivane. The market figures are Deloitte’s 2026 technology predictions citing a Maxio survey and Gartner respectively, reported here as those sources report them. Both posts on X were opened in a browser and read on the rendered page before being quoted, rather than taken from a search snippet. The record shape and the queries in this article are a worked structure, and every field name, rate and identifier in them is a placeholder rather than anything drawn from a real system. Nothing here is accounting advice for any particular company: the requirements that apply to any arrangement come from the standards themselves and from the facts of the contract, and a conclusion in this area depends on terms that only the parties to it can read.