Creator Payout Pipelines: Ledger Design, Revenue Splits, and Why Floating-Point Money Kills Platforms
Engineering the money side of a video platform — double-entry ledgers for revenue splits, payout threshold batching, and the rounding bugs that quietly destroy creator trust.
The moment a video platform pays creators, it becomes a financial system — with all the correctness requirements that implies. Ad revenue arrives as cents per thousand impressions, must be split across platform, creator, and sometimes multiple rights holders, and a single rounding bug replicated across a million events is either real money lost or a creator-relations crisis.
Rule Zero: Never Store Money in Floating Point
0.1 + 0.2 === 0.30000000000000004 is not a joke — it’s a payout discrepancy. All ledger amounts must be integers in the smallest currency unit (cents, satang) or fixed-point decimals. Every story about a platform that “mysteriously” underpaid creators traces back to a float in the earnings path.
Double-Entry Ledger: The Only Safe Model
Every revenue event creates balanced entries — money is never created or destroyed, only moved:
Ad impression revenue event: $10.00 (1000 cents)
─────────────────────────────────────────────
DR platform_revenue_pending +1000
CR creator_payable -650 (65% split)
CR platform_retained -350 (35% split)
Σ = 0 ✓ (invariant enforced at write time)
If the entries don’t sum to zero, the write fails. This invariant catches entire classes of bugs — race conditions in split computation, partially-applied refunds, duplicate events — at the storage layer rather than in a reconciliation panic months later.
Idempotent Event Processing
Ad impression webhooks arrive with at-least-once delivery — the same event will retry. Every ledger write must carry an event_id unique constraint; a duplicate event_id is a no-op, not a double-pay. This single constraint is the difference between a platform that can replay three days of failed events safely and one that can’t.
Payout Batching and Thresholds
| Design Choice | Naive Approach | Production Approach |
|---|---|---|
| Payout timing | Pay on request | Weekly batch, minimum threshold |
| Threshold check | Query at request time | Materialized payable_balance view |
| Currency conversion | At each event | At payout time, with recorded rate |
| Chargeback handling | Deduct future earnings | Reserve holdback (5–10% for 60 days) |
“Creators don’t audit your ledger — they audit their bank statement. The system has to be right even when nobody is watching, because eventually somebody does watch.”
Our reference schema, invariants list, and reconciliation runbook are published in the creator payout and ledger engineering guide.