BACK TO ENGINEERING
Billing 11 min read

85/15 Almost Killed My Marketplace — The Hidden Economics of Two-Tier Billing

Article Hero

85% goes to the creator. 15% goes to the platform.

Sounds simple. It almost destroyed the first version of Vibe.

The math is easy. The implementation is a minefield. When you're building a two-sided marketplace, every dollar flows through three entities — the user who pays, the creator who earns, and the platform that facilitates. Getting the money from point A to point C while correctly splitting at point B, handling refunds, tracking referral bonuses, enforcing payout minimums, and staying compliant with financial regulations... that's where "simple" becomes a 6-month project.

I built vibe.oakoliver.com as a micro-SaaS marketplace where users buy credits, spend them on AI-powered tools built by creators, and creators earn revenue through an 85/15 split powered by Stripe Connect.

This is everything I learned about two-tier marketplace billing. The architecture. The economics. The edge cases. And the painful lessons.


I – One-Tier Is Easy. Two-Tier Is a Different Universe.

Most SaaS billing is one-tier. User pays, platform receives. Set up Stripe Checkout, done.

Two-tier billing introduces a fundamental complication: the platform isn't the final recipient of the money.

The user pays $10. The platform needs to route $8.50 to the creator and keep $1.50. Sounds like a trivial routing problem.

Until you consider the questions.

When does the creator get paid? Immediately? Daily? Weekly? On request? What if the user wants a refund? Does the creator return their share? What about Stripe's processing fees? Who absorbs the 2.9% plus $0.30? What if the creator hasn't earned the minimum payout? Where does the money sit? What about taxes? Who issues the 1099? What about chargebacks? Who's liable?

Every one of these questions has a different answer depending on your business model. And if you get them wrong, you either lose money, lose creators, lose users, or lose your Stripe account.

Sometimes all four.


II – Credits: The Abstraction Layer That Saves Your Sanity

Vibe doesn't transfer money directly from users to creators. We use prepaid credits as an abstraction layer.

Users buy credits with real money via Stripe Checkout. Users spend credits on creator tools. Creators accumulate earnings based on credit usage. Creators request payouts when they hit the minimum threshold. The platform transfers money to the creator's Stripe Connect account.

Why credits instead of direct payments?

First, credits decouple purchase from consumption. A user buys 100 credits for $10 and uses them across 15 different tools from 8 different creators over 3 weeks. Imagine processing 15 separate Stripe transfers ranging from $0.30 to $2.00 each. The fees alone would eat the margins.

Second, credits simplify refund economics. If a tool fails, we release the credit hold. No Stripe refund needed. No money moves. The user's credits are restored instantly. This ties directly into the captive credit system — the hold-confirm-release pattern eliminates the need for Stripe-level refunds in most failure scenarios.

Third, credits let us batch payouts. Instead of 500 micro-transfers per day, we do one payout per creator per withdrawal request. This reduces Stripe fees dramatically and simplifies accounting.

The credit pricing uses volume discounts. The smallest package gives you 50 credits for $5. The largest gives you 800 for $50 — a 38% bonus per credit. The bulk discount incentivizes larger purchases, which reduces per-transaction Stripe fees as a percentage of revenue and increases user commitment through sunk cost.


III – Stripe Connect: The Compliance Layer You Can't Skip

Stripe Connect is the infrastructure that makes two-tier billing possible without becoming a money transmitter.

Without Stripe Connect — or an equivalent — you need financial licenses in most jurisdictions. Routing money from buyers to sellers is a regulated activity. Stripe Connect makes you the platform, not the money transmitter. Stripe handles the regulatory complexity.

We use Express accounts for creators. Stripe manages identity verification, bank account collection, tax form generation, and compliance. The creator sees a Stripe-hosted dashboard for earnings, bank info, and tax documents.

This is non-negotiable. If you try to handle payouts yourself — sending money to PayPal addresses, doing manual bank transfers — you're operating as an unlicensed money transmitter. Don't.

The onboarding flow generates a Stripe account for the creator, stores the account ID in our database, and redirects them to Stripe's hosted onboarding page for identity verification and bank details. When they return, they're ready to receive payouts.

The amount of compliance complexity that Stripe Connect absorbs is worth every basis point they charge.


IV – The Real Math Behind 85/15

When a user spends credits on a creator's tool, we record the split. The creator gets 85% of the dollar value. The platform gets 15%.

But what's the "dollar value" of a credit? Credits are purchased at different price points due to bulk discounts. A credit from the $5 package is worth $0.10. A credit from the $50 package is worth about $0.0625.

We use a weighted average based on all purchases in the last 90 days. This smooths out the pricing differences and gives a fair valuation for earnings calculations.

A critical detail: the platform takes the remainder after calculating the creator's share. Rounding in the creator's favor would cost the platform fractions of cents that compound over millions of transactions. Rounding against the creator would cause trust issues. Rounding down for the creator and giving the platform the remainder ensures every cent is accounted for with minimal creator impact.

This sounds like penny-pinching. At scale, pennies become thousands of dollars.


V – The Payout System: Minimum Thresholds Protect Everyone

Creators accumulate earnings in a pending balance and request payouts when they're ready — subject to a $20 minimum threshold.

Why $20? Stripe charges $0.25 per transfer to a Connect account. On a $1 payout, that's a 25% fee — unacceptable. At $20, it's 1.25%. The minimum protects both the platform and the creator from being devoured by transaction fees.

The payout process is a transactional sequence. Zero out the creator's pending balance. Create a payout record in processing state. Execute the Stripe transfer. Update the record to completed on success, or to failed on error — in which case the balance is restored.

If the Stripe transfer fails, the creator's balance is restored in the same transaction. They don't lose their earnings due to a Stripe hiccup. They can try again later.

Why not automatic payouts? Two reasons. First, control and cash flow. Automatic daily payouts would mean the platform never holds a significant balance, which matters for covering refunds and chargebacks. Second, creator autonomy. Creators choose when they receive income, which helps with their own financial planning and tax timing.


VI – Why Not Automatic Payouts? The Chargeback Buffer.

This deserves its own section because it's the insight that saved Vibe.

When a user files a chargeback, Stripe debits the platform immediately. If you've already automatically paid out the creator's share, that money is gone. The platform eats the full loss.

The minimum payout threshold creates a buffer. The longer earnings sit in pending state, the more refund and chargeback protection the platform has. A $20 minimum means there's at least $20 of potential recovery before money becomes irreversible.

Creator-initiated payouts give the platform a window to detect fraud, process disputes, and claw back earnings before they leave the system.

This isn't about distrust. It's about operational reality. Chargebacks happen. Refund requests happen. If your creator payout schedule is faster than your dispute resolution timeline, you're guaranteeing losses.


VII – Referral Bonuses: Growth That Compounds

Vibe's referral system gives existing creators a bonus when they bring new users to the platform. The referrer gets 25 credits. The new user gets 10 credits.

The bonus is in credits, not cash. This is deliberate.

Cash bonuses create tax complications — you'd need to issue 1099s for referral income. Credit bonuses are platform-internal and drive usage rather than payouts. The referrer earns credits they'll spend on the platform, which generates more earnings for other creators, creating a virtuous cycle.

The system prevents self-referral and duplicate referrals automatically. Invalid referral codes are silently ignored — they don't block signup. If someone arrives with a bad code, they still create their account. The referral just doesn't process.

Referral codes are unique to each creator, not each campaign. One creator, one code, simple tracking. If we needed campaign-level attribution, we'd layer UTM parameters on top rather than complicating the referral system.


VIII – The Refund Minefield

Refunds are where two-tier billing gets genuinely painful.

Scenario one: user bought credits but hasn't spent them. Simple. Process a Stripe refund, deduct credits from the user's account. No creator impact.

Scenario two: user spent credits on a tool that failed. The captive credit system handles this automatically. The hold is released, credits are restored. No Stripe refund needed because no real money moved to a creator.

Scenario three: user wants a refund after successfully using credits. This is the hard one. The credits are spent. Earnings are recorded. Maybe the creator already requested a payout.

The system first reverses any unpaid earnings — those still in pending state. Creator pending balances are decremented. Earnings are marked as reversed. Then the Stripe refund is processed. Credits are deducted from the user.

But earnings already transferred to creators cannot be clawed back. This is both a technical limitation — you'd need to debit their bank account, which requires permission — and a business decision. Creators would flee the platform if their income could be retroactively revoked. The platform absorbs the loss on paid-out earnings.

This is another reason the minimum payout threshold matters. It's not just about fees. It's about refund protection.


Building a two-sided marketplace? I've navigated every edge case described in this article while building Vibe at vibe.oakoliver.com. If you're designing marketplace billing and want to avoid the expensive mistakes, book a session at mentoring.oakoliver.com.


IX – The Real Take Rate: What 85/15 Actually Means

Your advertised split is 85/15. But after Stripe fees, refunds, and referral bonuses, the actual take rate is very different.

Let me trace a single $10 purchase through the system.

The user pays $10.00. Stripe's processing fee takes about $0.59. The platform receives $9.41. But the marketplace still credits the user with $10 worth of purchasing power. When those credits are spent, 85% — or $8.50 — accumulates as creator earnings. The platform's share is $1.50. Minus the processing fee absorbed earlier, that's $0.91. Minus a fraction of the $0.25 transfer fee amortized across payouts.

Effective platform profit per $10 purchase: roughly $0.66. That's a 6.6% effective margin before operating costs.

Not a lot. This is why volume is existential for marketplace businesses. At 10,000 purchases per month, that's $6,600 in platform revenue. At 100,000, it's $66,000. The economics only work at scale.

Track your real take rate weekly. Your advertised split is marketing. Your real take rate — after all fees, refunds, chargebacks, and bonuses — is your business reality. If it drops below operating costs, you're subsidizing the marketplace.


X – Fee Absorption: The Marketing Decision

A common question: why not pass Stripe fees to the user or the creator?

Passing fees to users means weird pricing. Instead of "$10 for 120 credits," it's "$10.59 for 120 credits." Users perceive this as nickel-and-diming. Conversion rates drop. Apple, Google, and every major platform absorb processing fees for exactly this reason.

Passing fees to creators means the headline reads "15% platform fee plus processing fees." That's confusing and feels like the platform is taking 18% or more. Creators compare percentages across platforms and choose the one with the cleaner, lower number.

Vibe absorbs all Stripe fees. The advertised split is 85/15, and that's exactly what creators see in their dashboard. The platform's actual take is lower than 15% after fees, but the simplicity of the messaging is worth more than the margin optimization.

Simplicity is a competitive advantage. When a creator evaluates your marketplace against competitors, they compare one number: the platform fee. Keep that number clean.


XI – Webhook Handling: The Backbone of Reliability

Stripe webhooks are how you learn about asynchronous events. Successful payments, failed charges, disputes, account updates, transfer failures. In a two-tier system, you handle more webhook types than a simple subscription app.

Checkout completion triggers credit provisioning. Dispute creation triggers account suspension and financial tracking. Connect account updates trigger capability checks. Transfer failures trigger balance restoration.

The dispute handler is especially critical. When a chargeback arrives, you need to flag the user's account immediately, record the dispute for financial tracking, and alert the team. If you've already paid out the creator's share, that's a direct loss you need to track for accounting purposes.

Every webhook handler should be idempotent. Stripe may deliver the same event multiple times. If your handler isn't idempotent, you might process a credit purchase twice — giving the user double credits. Or flag a user for a dispute twice, which might trigger escalation logic incorrectly.

Design every handler to be safe to replay. Check if the event was already processed before acting on it.


XII – Lessons That Cost Real Money

After building this system and watching it process thousands of transactions, here are the lessons I'd give anyone building marketplace billing.

Start with a higher platform fee. Launching at 85/15 was aggressive. A 75/25 or 70/30 split would have given more room for error. You can always reduce fees later as a "creator benefit" — raising them is practically impossible without revolt.

Credits simplify everything at the cost of one abstraction. Direct payments would eliminate credit pricing, balance tracking, and payout management. But they'd also make the user experience worse — micro-charges on every action — and the economics harder to manage.

The minimum payout threshold is a feature, not a limitation. It protects creators from fee erosion, protects the platform from refund exposure, and encourages creators to build momentum.

Stripe Connect Express is the right choice for 95% of marketplaces. Custom accounts give more control but require you to build onboarding UI, handle compliance, and manage identity verification. Unless you have a dedicated fintech team, Express is the way to go.

Always absorb processing fees in your take rate. The moment you show a creator "15% plus fees," you've lost the marketing battle.

Your split isn't 85/15. It's 85/15 minus Stripe fees, minus refunds, minus referral bonuses, minus chargebacks. Know your real take rate — or die by it.

What's the most expensive billing assumption you've made that turned out to be wrong — and how much did it cost you before you caught it?

– Antonio

"Simplicity is the ultimate sophistication."