The rise of Buy Now Pay Later services (Affirm, Afterpay, Klarna, Apple Pay Later, PayPal Pay Later) has created a new tracking challenge for Beancount users.
The BNPL Tracking Problem
BNPL services make purchasing frictionless, but create hidden debt across multiple platforms:
- Each service has its own payment schedule
- No consolidated view of total obligations
- Not typically reported to credit bureaus (“phantom debt”)
- Easy to lose track of total monthly payment burden
Recent data:
- BNPL market: $70B in 2025, projected $258B by 2031
- 63% of borrowers have multiple simultaneous BNPL loans
- 33% use multiple BNPL providers
- 41% paid late in past year (up from 34%)
Recommended Beancount Structure
Track BNPL as liabilities with separate accounts per service:
; Create liability accounts
2026-01-01 open Liabilities:BNPL:Affirm
2026-01-01 open Liabilities:BNPL:Afterpay
2026-01-01 open Liabilities:BNPL:Klarna
; Record purchase
2026-01-15 * "Laptop via Affirm"
Expenses:Electronics:Computer 800.00 USD
Liabilities:BNPL:Affirm -800.00 USD
; Record payments
2026-02-15 * "Affirm payment - laptop"
Liabilities:BNPL:Affirm 67.00 USD
Assets:Checking -67.00 USD
Querying Total BNPL Debt
Use BQL to see consolidated obligations:
SELECT account, sum(position)
WHERE account ~ 'Liabilities:BNPL'
GROUP BY account
Best Practices
- Separate account per service - easier to track and reconcile
- Record full purchase immediately - shows true liability on balance sheet
- Track payments as liability reduction - decreases debt as paid
- Use metadata for payment schedules if needed
- Monthly reconciliation - review total BNPL exposure
Discussion Topics
- How do you structure BNPL tracking in your ledger?
- Metadata strategies for payment schedules?
- Red flags for excessive BNPL usage?
- Automation approaches for recurring payments?
This is an evolving area as BNPL adoption grows. Would love to hear community approaches.