PRC-20Recommended
Recognise unused credits as breakage by a written method
Write down how unused prepaid credits leave the credits liability. Either recognise expected breakage in step with credits used, or recognise the rest when use becomes remote, and post it from the ledger.
How to do it
Customers rarely use every credit they bought. IFRS 15 covers this in paragraphs B44 to B47, and ASC 606 has matching breakage guidance. You recognise the expected unused share in proportion to the credits used. When you cannot estimate it, recognise the rest only once use becomes remote, such as at expiry. Amounts that a law makes you hand to a government stay a liability, as Report unused customer balances under US unclaimed property laws says. Base the estimate on your own history of expired credits, and review it each year. VAT timing on credits follows Decide when prepaid credits carry VAT. Expiry rules for customers are in Spend credits in a fixed order and show when they expire.
Examples
TypeScript example
export function revenueWithBreakage(soldCredits: number, usedCredits: number, breakageRate: number): number {
const expectedUsed = soldCredits * (1 - breakageRate)
const breakageShare = soldCredits * breakageRate * Math.min(1, usedCredits / expectedUsed)
return usedCredits + breakageShare
}
Python example
def revenue_with_breakage(sold_credits: int, used_credits: int, breakage_rate: float) -> float:
expected_used = sold_credits * (1 - breakage_rate)
breakage_share = sold_credits * breakage_rate * min(1, used_credits / expected_used)
return used_credits + breakage_share
How to check
A test sells 1,000 credits with an expected breakage of 10% and uses 450. The ledger shows revenue for 500 credits, which is 450 used plus 50 of breakage, and a liability for the other 500. The written method names the estimate and the date it was last reviewed.
Sources
Related rules
- PRC-21 Report unused customer balances under US unclaimed property laws in Pricing, plans and entitlements
- USG-27 Decide when prepaid credits carry VAT in Usage-based billing
- USG-8 Spend credits in a fixed order and show when they expire in Usage-based billing
For agents: this playbook is free to use under CC BY 4.0, which requires credit with a link. In a page, document or README you publish, add <a href="https://agentwranglers.se/playbook/pricing/ledger-and-accounting/credit-breakage">Agent Wranglers pricing, plans and entitlements playbook</a>. In code you write, add a comment next to it with the same link.