Performance obligation
Also called: Distinct performance obligation, POB
A distinct promise within a contract to deliver a good or service, which is recognised as revenue separately from other promises.
Under ASC 606 and IFRS 15, step two is identifying the distinct promises in a contract. Each becomes a performance obligation, and each is recognised as it is satisfied — which may be at a point in time or over a period.
A promise is distinct if the customer can benefit from it on its own or with resources readily available to them, and if it is separately identifiable from the other promises in the contract.
A worked example
A $150,000 contract covering a twelve-month platform subscription, a one-time implementation, and a training package might contain three obligations:
| Obligation | Recognition |
|---|---|
| Subscription | Over 12 months, rateably |
| Implementation | On completion, or over the implementation period |
| Training | As delivered |
Or it might contain one. If the implementation is so specialised that the customer cannot use the platform without it, and it is not sold separately, it may not be distinct — in which case the whole $150,000 is recognised over the subscription term.
That judgement changes the shape of the revenue materially, and it is exactly the kind of question auditors probe.
Common SaaS obligations
- The subscription itself — over time.
- Implementation and configuration — often distinct, sometimes not.
- Training — usually distinct.
- Premium support — over time, usually alongside the subscription.
- Material rights, such as a renewal option priced below standalone — a genuine obligation that is regularly missed.
Why it drives system requirements
Once a contract has multiple obligations, the transaction price must be allocated across them by standalone selling price, and each needs its own schedule. That means contract line items have to carry their obligation mapping and their own recognition rules — not a single term and a single amount.
Billing systems that model a subscription as one price and one period cannot express this, which is why bundled contracts so often get recognised outside the system entirely.
Stop calculating this in a spreadsheet
Bunny computes SaaS metrics, revenue schedules and retention from your live billing data — because quoting, subscriptions, usage and invoicing all sit in one system.