On July 1, 2026, Envato quietly rewrote the economics of selling on CodeCanyon and ThemeForest. Authors who had spent a decade building up "exclusive" status — and with it, commission rates as generous as 87.5% of each sale — were moved to a single flat 50% revenue share, full stop. No tiers, no loyalty bonus, no exclusivity requirement. If you're a WordPress plugin or theme developer who sells there, your per-sale take-home may have just been cut in half, and if your books weren't already tracking revenue per platform, per fee structure, and per license type, you probably didn't notice until the payout landed short.
That's the real problem hiding underneath this specific change: most solo and small-team WordPress product businesses don't actually know what they earn. They know what hits their bank account. Those are not the same number, and the gap between them — marketplace commissions, payment processor fees, currency conversion, VAT withheld at source, renewal revenue booked as one-time income — is exactly where bookkeeping mistakes compound quietly for years.
The Multi-Channel Payout Problem
Most WordPress product businesses don't sell through one channel. A typical setup looks like some mix of:
- A self-hosted store using a merchant-of-record platform like Freemius or Paddle, which handles licensing, subscriptions, and tax collection
- Envato Market (CodeCanyon for plugins, ThemeForest for themes), a marketplace that takes its cut before you ever see a deposit
- Direct checkout via Stripe or a payment gateway bolted onto Easy Digital Downloads or WooCommerce, where you're the merchant of record yourself
Each of these channels pays out on a different schedule, in a different currency mix, after deducting a different combination of fees. Freemius might remit monthly net of its revenue share and any sales-tax handling. Envato pays out via PayPal or bank transfer after its commission, with the exact percentage now depending on the July 2026 flat-rate change rather than your historical exclusivity tier. A direct Stripe checkout deposits gross card revenue, and processor fees show up as a separate expense line days later.
If your bookkeeping consists of recording whatever number lands in the bank account as "sales income," you're conflating four different accounting events — gross revenue, marketplace commission, processing fees, and tax remittance — into one number that tells you almost nothing about which channel is actually profitable per unit sold.
The fix isn't complicated, but it does require discipline: book gross revenue at the point of sale in each channel's sub-ledger, and record marketplace commissions, processing fees, and any tax withheld as separate expense or contra-revenue lines. That's the only way to answer a question like "is CodeCanyon still worth the listing after the July 2026 rate change?" with a real number instead of a gut feeling.
Why the Envato Change Matters for Your Chart of Accounts
Before July 2026, Envato's exclusive-author program tiered commissions by lifetime earnings — the longer you'd sold on the platform and the more volume you'd done, rates could fall as low as 12.5% for top authors, meaning you kept up to 87.5% of each sale. Non-exclusive sellers, who could also list their products elsewhere, got materially worse terms. As of July 1, 2026, that entire tiered structure is gone. Every author — regardless of sales history or exclusivity status — now receives a flat 50% revenue share.
For bookkeeping purposes, this is not a footnote. If you had an "Envato Sales" account that was implicitly assuming an 85%+ take rate baked into your historical margin calculations, that assumption is now wrong for every transaction going forward. Two things to do immediately:
- Split your revenue-per-platform reporting at the July 1, 2026 boundary. Don't average pre- and post-change months together when you're evaluating whether the marketplace is still worth it — the unit economics genuinely changed on that date.
- Re-run your channel comparison. A flat 50% commission on Envato is a very different number to compare against Freemius's progressive revenue-share model (which typically starts higher and decreases as your volume grows) or a self-managed Stripe checkout where your only "commission" is a ~2.9% processing fee plus whatever you spend on customer acquisition. Products that made sense to keep exclusive to Envato under the old tiers may no longer pencil out.
Merchant of Record vs. Self-Managed Checkout: Who Owes the Tax Man
This is the part of WordPress product bookkeeping that catches the most people off guard, because the two models create completely different obligations on your books.
If you sell through a merchant-of-record (MoR) platform like Freemius or Paddle, that platform is legally the seller of record for tax purposes. It calculates, collects, and remits VAT in the EU/UK, GST where applicable, and US sales tax across the states where you have economic nexus. Your books don't need a sales-tax-payable liability account for those sales — the MoR has already assumed that liability. What you record is the net payout you actually receive, plus you should keep the MoR's own transaction reports as your audit trail in case a tax authority ever asks how a given sale was taxed.
If you sell direct — a Stripe or Paddle-classic integration bolted onto your own checkout, where you're the merchant of record — that liability is yours. You're responsible for tracking economic nexus thresholds state by state (most US states trigger a sales tax obligation somewhere between $100,000 in sales or 200 transactions annually, though thresholds vary), registering where required, and remitting what you collect. That means your books need an actual sales-tax-payable liability account, not just a revenue line, and you need a process for reconciling what you collected against what you've remitted each filing period.
Mixing these two models without distinguishing them in your books is a common and expensive mistake: businesses either double-count tax liability that a MoR platform already handled, or — worse — assume a MoR is handling tax obligations on a channel where they're actually the ones on the hook.
License Renewals Are Not One-Time Sales
Plugin and theme licenses are usually sold as annual (or lifetime) keys, and it's tempting to book the full renewal payment as revenue the moment it hits your account. Under standard revenue recognition principles (ASC 606 in the US), that's not correct if the license grants a year of updates and support: revenue from a renewal should be recognized no earlier than the start of the renewal period, spread across the period the customer is actually entitled to service.
Concretely: if a customer renews a $120/year license, you don't book $120 of revenue on the day it's charged. You record $120 as deferred revenue (a liability — you owe a year of updates/support), then recognize $10 of revenue each month as you actually deliver that obligation. If you sell mostly annual licenses and only book cash-in as revenue, your monthly profit-and-loss statement will be misleading — spiky around your renewal-heavy months and understated the rest of the year — and if you ever need financials for a loan application, an acquisition conversation, or even just an honest read on whether the business is growing, that spikiness will hide the real trend.
This matters even more once you're selling across Freemius, Envato, and a direct checkout simultaneously, because each channel's renewal mechanics differ slightly (Envato's licenses, for instance, are traditionally more one-time-purchase-oriented than subscription-renewal-oriented, while Freemius is built around recurring licensing). Your deferred-revenue tracking needs to account for that per channel, not apply one blanket assumption to every sale.
Reconciling Payouts Without Losing Your Mind
The practical weekly or monthly task that ties all of this together is payout reconciliation: matching what each platform's dashboard says you earned against what actually landed in your bank account, and understanding every line item in between. A workable process looks like:
- Pull the transaction-level report from each channel (Freemius, Envato, Stripe) rather than relying on the summary payout total — you need gross sale, commission/fee, and tax withheld as separate line items, not one net number.
- Book gross revenue and each deduction separately in your ledger, tagged by channel, so you can run a true channel-by-channel margin report.
- Reconcile the net deposit against the sum of gross revenue minus fees minus tax withheld for that payout period. A mismatch usually means a refund, chargeback, or currency-conversion difference you haven't recorded yet.
- Track renewal vs. new-sale revenue separately, even within a single channel, so you can see your actual renewal rate — arguably the single best health metric for a licensed-software business, and one that gets completely obscured if renewals and new sales are lumped into one "Envato Sales" account.
Doing this by hand in a spreadsheet is workable at a handful of transactions a month; it stops scaling the moment you're reconciling three channels with different currencies, fee schedules, and tax treatments against each other every payout cycle.
Keep Your Multi-Channel Books Auditable
If you're juggling payouts from Freemius, Envato, and a direct Stripe checkout, plain-text accounting is a natural fit: each channel's transactions live as version-controlled entries you can tag, script, and diff, rather than being buried inside a black-box dashboard that only shows you net deposits. Beancount.io gives you that transparency — full control over how gross revenue, marketplace fees, and deferred renewal revenue are categorized, with a complete audit trail for every sale. Get started for free and see why developers who already think in version control are switching their books to plain text, too.