An internal API has a sunset date, but nobody can name every consumer. Traffic remains after the deadline, exceptions have no owner, and the old service still requires on-call support. That is migration debt.

Use one ledger

consumer,monthly_calls,owner,migration_hours,exception_until,last_seen

billing-ui,120000,team-a,24,,2026-07-18

legacy-export,80,team-b,40,2026-08-15,2026-07-17