Calculate your actual take-home Patreon revenue after platform fees and payment processing. See the real difference between Lite, Pro, and Premium plans.
Patreon fees hit twice: first the platform fee (5–12% depending on plan), then payment processing. Payment processing uses a blended model: for pledges over $3, it's 2.9% + $0.30 per transaction. For pledges under $3, a micro-transaction rate of 1.5% + $0.10 applies.
A creator with 210 patrons at $9/month on the Pro plan: gross $1,890, Patreon fee $151 (8%), payment processing ~$63, net $1,676. That's a combined fee rate of about 11.3% — better than many alternatives, but worth knowing before you set pricing.
The biggest lever you have is average pledge amount. Going from $5 to $12 average (by offering compelling mid-tier perks) nearly triples revenue without adding a single patron. Most successful Patreon creators have 2–3 tiers with a clear anchor tier around $8–$15.
How much does Patreon take?
5% on Lite, 8% on Pro, 12% on Premium — plus payment processing of 2.9% + $0.30 per transaction (1.5% + $0.10 for under $3). Total effective fee rate is typically 8–15% of gross revenue.
How many patrons do I need to make $1,000/month on Patreon?
At $9 average pledge on the Pro plan, you need roughly 125–130 patrons to net $1,000. At $5 average, you need 225–230 patrons. Higher average pledges dramatically reduce the patron count needed.
What is a good average Patreon pledge?
Most Patreon creators see averages of $5–$15. Niche B2B content and professional education creators often see $20–$50 averages. Podcast and YouTube creators typically see $5–$10.
Is Patreon Pro worth the extra 3% over Lite?
Pro adds analytics, custom goals, and tier management tools that most active creators need. The extra 3% costs $27/month at $900 gross revenue — likely worth it. At $5,000 gross, the cost is $150/month, which should be more than offset by the growth tools.
// URL param sharing
(function(){
var sliders = ['patrons','pledge'];
// Load from URL on init
var params = new URLSearchParams(window.location.search);
sliders.forEach(function(id){
var val = params.get(id);
var el = document.getElementById(id);
if(val && el){ el.value = val; }
});
// Update URL on change
function syncUrl(){
var p = new URLSearchParams();
sliders.forEach(function(id){
var el = document.getElementById(id);
if(el) p.set(id, el.value);
});
history.replaceState(null,'', '?' + p.toString());
}
sliders.forEach(function(id){
var el = document.getElementById(id);
if(el) el.addEventListener('input', syncUrl);
});
// Run update after URL params applied
if(typeof update === 'function') update();
})();