SplitLedger turns app store earnings into partner-ready payouts — no spreadsheet. Import your Google Play and App Store Connect reports; it detects each app, applies your split rules (flat %, fixed-then-%, recoupment, effective-dated), and produces one reconciled PDF statement per partner. Expenses and Other Earnings settle in. Every number is exact to the cent — rounding drift $0.00. No API access; you upload the files. Free for solo devs; paid plans from $20/mo.
No reviews yetBe the first to leave a review for SplitLedger
Maker
📌
Hey Product Hunt 👋
I'm Junaid, and I built SplitLedger to kill a spreadsheet I hated.
If you ship apps with collaborators, you know the monthly ritual: download the Google Play CSV and the App Store Connect financials, paste them into a sheet, hand-calculate everyone's cut, argue about the cent that doesn't add up, and email a screenshot that nobody trusts.
SplitLedger does the whole chain: import → split → pay out. Drop in the store reports, set your rules once (flat %, fixed-then-%, or recoupment — all effective-dated), and it spits out one clean PDF per partner with expenses and other earnings settled in. The split engine is exact to the cent, so partner totals always reconcile — no more "where did the $0.03 go."
A few deliberate choices:
No API access. You upload the files; SplitLedger never touches your store accounts.
Nothing is guessed. An app with no rule is loudly flagged as unallocated, not silently split.
Free for small studios. Two partners, both stores, unlimited apps and history.
Report
how does recoupment actually work when a partner's cumulative balance flips back to positive mid-month, does it just stop deducting automatically or do i have to reset it manually each cycle
Report
Maker
@glah24980 Great question — it's fully automatic, you never reset anything per cycle.
Recoupment tracks a cumulative balance for that rule/partner: how much of the target advance has been recouped so far. Each period, SplitLedger takes min(that period's positive net, whatever's left of the target) off the top, then splits the remainder by your percentages. So:
The instant the running total reaches the target — even partway through a period's net — recoupment stops and the leftover in that same period flows straight into the percentage split. Same run, no manual step.
Once it's cleared, it stays cleared. Every later period splits 100% by percentage automatically.
A zero/negative-net period (refunds > earnings) simply recoups nothing that month and waits for the next positive one — it never runs the balance backwards or inflates the target.
One small reframe: it settles per statement period (a month of store earnings), not continuously intra-month — so there's no live "mid-month" balance to babysit. And because the whole thing is replayed deterministically from your earlier periods, re-importing or editing a past month recomputes recoupment progress correctly on its own.
how does recoupment actually work when a partner's cumulative balance flips back to positive mid-month, does it just stop deducting automatically or do i have to reset it manually each cycle
@glah24980 Great question — it's fully automatic, you never reset anything per cycle.
Recoupment tracks a cumulative balance for that rule/partner: how much of the target advance has been recouped so far. Each period, SplitLedger takes min(that period's positive net, whatever's left of the target) off the top, then splits the remainder by your percentages. So:
The instant the running total reaches the target — even partway through a period's net — recoupment stops and the leftover in that same period flows straight into the percentage split. Same run, no manual step.
Once it's cleared, it stays cleared. Every later period splits 100% by percentage automatically.
A zero/negative-net period (refunds > earnings) simply recoups nothing that month and waits for the next positive one — it never runs the balance backwards or inflates the target.
One small reframe: it settles per statement period (a month of store earnings), not continuously intra-month — so there's no live "mid-month" balance to babysit. And because the whole thing is replayed deterministically from your earlier periods, re-importing or editing a past month recomputes recoupment progress correctly on its own.