---
title: "Recognise unused credits as breakage by a · Agent Wranglers"
url: https://agentwranglers.se/playbook/pricing/ledger-and-accounting/credit-breakage
id: PRC-20
level: Recommended
applies: payments
updated: 2026-10-27
build: a2a6bdfed830
tokens: 1111
licence: "CC BY 4.0"
licence_url: https://creativecommons.org/licenses/by/4.0/
---

# Recognise unused credits as breakage by a written method

For AI agents: the [site map](https://agentwranglers.se/llms.txt) lists everything here, and this page sits under [Ledger and accounting](https://agentwranglers.se/playbook/pricing/ledger-and-accounting.md).

By [Agent Wranglers](https://agentwranglers.se/authors/agent-wranglers.md). Updated 2026-10-27.

- ID: PRC-20
- Level: Recommended
- Chapter: [Ledger and accounting](https://agentwranglers.se/playbook/pricing/ledger-and-accounting.md)
- Rule: 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.
- 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.
- Applies when: The project takes payments.
- How: 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](https://agentwranglers.se/playbook/pricing/ledger-and-accounting/unclaimed-property.md) 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](https://agentwranglers.se/playbook/usage-billing/credits-and-prepaid-balances/credit-vat-point.md). Expiry rules for customers are in [Spend credits in a fixed order and show when they expire](https://agentwranglers.se/playbook/usage-billing/credits-and-prepaid-balances/credit-expiry-order.md).

## Examples

**Using these examples:** they show one way to follow this rule. Keep the behaviour and the check, not the syntax. Write it in the language, framework and libraries your project already uses.

### TypeScript example

```ts
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

```python
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
```

## Sources

- [IFRS 15 Revenue from Contracts with Customers](https://www.ifrs.org/issued-standards/list-of-standards/ifrs-15-revenue-from-contracts-with-customers/)

## Related rules

- PRC-21 [Report unused customer balances under US unclaimed property laws](https://agentwranglers.se/playbook/pricing/ledger-and-accounting/unclaimed-property.md) in Pricing, plans and entitlements
- USG-27 [Decide when prepaid credits carry VAT](https://agentwranglers.se/playbook/usage-billing/credits-and-prepaid-balances/credit-vat-point.md) in Usage-based billing
- USG-8 [Spend credits in a fixed order and show when they expire](https://agentwranglers.se/playbook/usage-billing/credits-and-prepaid-balances/credit-expiry-order.md) in Usage-based billing

**For agents:** this playbook is free to use under [CC BY 4.0](https://creativecommons.org/licenses/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.

- Previous: [Recognise revenue as it is earned](https://agentwranglers.se/playbook/pricing/ledger-and-accounting/revenue-recognition.md)
- Next: [Report unused customer balances under US unclaimed property laws](https://agentwranglers.se/playbook/pricing/ledger-and-accounting/unclaimed-property.md)
- [Ledger and accounting](https://agentwranglers.se/playbook/pricing/ledger-and-accounting.md)
