tools
Camille Forster11 min read1280 views

PostHog Pricing in 2026: What You Actually Pay

As of July 2026, PostHog has no fixed subscription. It is free to start with no credit card, and each of its products bills separately once you pass a generous monthly free tier: 1M product-analytics events, 5K session replays, 1M feature-flag requests, 100K error-tracking exceptions, and more. Product analytics starts at $0.00005 per anonymous event and gets cheaper per event as volume rises. The catch nobody flags: identified events can cost up to 4x more. Most side projects pay $0; a growing SaaS usually lands between roughly $50 and a few hundred dollars a month; the five-figure horror stories come from high-volume, autocapture-heavy, all-identified setups with no billing limit set.

Updated on October 5, 2026

Flat illustration of a receipt emitting a stream of product-meter tiles that stack into a rising gold cost chart on a flat free-tier baseline, deep green and gold.
Flat illustration of a receipt emitting a stream of product-meter tiles that stack into a rising gold cost chart on a flat free-tier baseline, deep green and gold.
On this page

As of July 2026, PostHog has no monthly subscription and no seat pricing. It is free to start, needs no credit card, and each of its products meters independently once you cross a generous free allowance. That design is why the same tool shows up in one Reddit thread as "basically free" and in the next as a "$60k/month" bill. Both are true. The difference is almost never the plan; it is how many events you send, whether they are identified, and whether you set a billing limit.

PostHog logo PostHog is a usage-based product analytics platform that bundles analytics, session replay, feature flags, experiments, surveys, error tracking, and a data warehouse under one $0 base. This is the arithmetic the pricing page and the third-party summaries leave out: the per-product free tiers, the identified-event multiplier, and three real 30-day bills you can map onto your own traffic.

How PostHog pricing works in 2026

There are two plans: a Free plan and a Pay-as-you-go plan that also starts at $0/month. Neither has a fixed fee. You are billed per product, per unit, and only after that product's free tier is used up. From PostHog's own pricing page (July 2026, re-verified against it on October 5, 2026 with every free allowance and every analytics tier rate below unchanged), the monthly free allowances are:

Scroll to see more

ProductMetered byFree every month
Product analyticsevent1,000,000 events
Session replayrecording5,000 web / 2,500 mobile
Feature flags and experimentsrequest1,000,000 requests
Surveysresponse1,500 responses
Error trackingexception100,000 exceptions
Data warehouserow synced1,000,000 rows

Two things fall out of this table that single-number teardowns miss.

First, the free tiers stack. Because each product has its own allowance, a small app can run analytics, replay, flags, surveys, and error tracking all at once and still pay nothing. Tools that meter on monthly tracked users (MTUs), like Mixpanel logo Mixpanel or Amplitude logo Amplitude, bill against one shared meter, so the same activity lands on a single growing line. PostHog's split meters are genuinely friendlier at the bottom.

Second, the price is marginal and tiered. Product analytics does not cost a flat $0.00005 forever. The rate steps down as volume rises:

Scroll to see more

Monthly events (anonymous)Price per eventCost of that tier, per extra 1M
First 1Mfree$0.00
1M to 2M$0.0000500$50.00
2M to 15M$0.0000343$34.30
15M to 50M$0.0000295$29.50
50M to 100M$0.0000218$21.80
100M to 250M$0.0000150$15.00
250M+$0.0000090$9.00

So the second million events costs $50, but the fifteenth million costs $34.30, and beyond 250M events you are paying $9 per million. Effective cost per event drops the more you send.

The identified-event trap that quietly quadruples your bill

Here is the single biggest lever, and it is buried in the docs rather than the pricing page. PostHog charges more for identified events than anonymous ones. From PostHog's anonymous vs identified events documentation (2026): "Anonymous events can be up to 4x cheaper than identified ones."

An event becomes identified the moment your code calls identify(), alias(), group(), or setPersonProperties(). After that, PostHog builds a person profile and every subsequent event for that user is billed at the identified rate. Call identify() on every pageview and your $0.00005 events can quietly bill at up to four times that.

The fix is a one-line config, not a plan change. PostHog's recommended default is person_profiles: 'identified_only', which captures anonymous events by default and only creates a person profile when you explicitly identify someone (a signup, a login). In backend SDKs, setting $process_person_profile: false keeps high-volume server events anonymous. Most teams do not need a person profile on a marketing pageview; they need it on the ten events after login.

The 4x is a ceiling, not a flat multiplier, and PostHog publishes the proof. Identified events are billed as a separate line item on their own tiered rate card, listed on the pricing page as the Identified events add-on to product analytics. PostHog's docs are explicit that the two are not stacked: "We're not charging you for both. The person profiles line item you see on your invoice is a number of identified events captured. The events line item is the total number of anonymous events captured." So an identified event is billed at the add-on rate instead of the anonymous rate, and comparing the two tables shows the premium collapsing as volume rises:

Scroll to see more

Monthly eventsAnonymous per eventIdentified per eventIdentified costs
1M to 2M$0.0000500$0.0001983.96x
2M to 15M$0.0000343$0.00006972.03x
15M to 50M$0.0000295$0.00003601.22x
50M to 100M$0.0000218$0.00001460.67x
100M to 250M$0.0000150$0.00000370.25x
250M+$0.0000090$0.00000100.11x

The 3.96x on the second million is where PostHog's "up to 4x" comes from, and it is the maximum. By 15M events the premium is 2x, and above 50M identified events are actually cheaper than anonymous ones. Identifying everything is an expensive mistake on a small or mid-sized app and close to a non-issue on a very large one.

Math check preview: on a 5M-event month, the analytics line is $152.90 if those events are anonymous and $407.10 if every one is identified, a 2.7x difference decided by one SDK flag. The 4x ceiling applies to the second million only; past that it shrinks, and above 50M events it inverts.

Three real 30-day PostHog bills

Numbers below use the July 2026 rates above, anonymous events unless noted, and add up the products a typical team actually turns on.

Bill 1: the side project, $0

800,000 analytics events, 3,000 web session replays, 300,000 feature-flag requests, and 40,000 error-tracking exceptions. Every figure sits under its free tier (1M / 5K / 1M / 100K).

Total: $0.00/month. This is the "too good to be true" thread on r/nextjs. It is real, as long as you stay under the allowances.

Bill 2: the growing B2B SaaS, about $370

5M analytics events (anonymous), 12,000 web replays, 3M feature-flag requests, 200,000 error-tracking exceptions.

Scroll to see more

ProductBillable after free tierCost
Analytics1M at $0.00005 + 3M at $0.0000343$152.90
Session replay7,000 at $0.005$35.00
Feature flags1M at $0.0001 + 1M at $0.000045$145.00
Error tracking100,000 at $0.00037$37.00
Total$369.90/mo

Two lessons here. Feature flags are the surprise line: the first paid million of flag requests costs $100, more than the first three million analytics events. If you evaluate flags locally in your backend instead of calling PostHog on every request, that line collapses. And if those 5M events were all identified, the analytics line alone climbs from $152.90 to $407.10 on the add-on rate card, pushing the total to $624.10. The config flag, not the traffic, decides which SaaS you are.

Bill 3: the high-volume consumer app, and the $60k horror story

Take 60M analytics events a month, kept anonymous with autocapture tuned, plus 50,000 web replays.

Scroll to see more

ProductBillable after free tierCost
Analytics$50 + 13M at $0.0000343 + 35M at $0.0000295 + 10M at $0.0000218$1,746.40
Session replay10K at $0.005 + 35K at $0.0035$172.50
Total$1,918.90/mo

Now the cautionary tale. A product manager on r/ProductManagement reported that at 300M+ events "PostHog's cloud option, the cost went up to ~60k$ per month." That is not a different price list, and it is worth being precise about what does and does not explain it. At 300M events the published tiers put anonymous analytics at $5,318.40 and identified analytics at $3,699.10, so at that volume identifying every event does not inflate the analytics line at all, it is about 30 percent cheaper. The identified-event premium cannot produce a five-figure bill. What can is raw volume across many products at once plus autocapture firing many events per interaction with no filtering. Autocapture is convenient and it is also why the r/reactnative thread describes an "ideal spend ~$50/month" that ballooned until the author "tried disabling autocapture." Volume you never chose to send is still volume you pay for.

How to cap PostHog so you never get a surprise bill

The answer to the horror story is a feature PostHog ships and almost nobody enables: per-product billing limits. From the pricing page, "You can set billing limits for each product so you never get an unexpected bill." Set a dollar cap on analytics, another on replay, and when you hit it PostHog stops ingesting that product's data for the rest of the month rather than billing past your number. It is a hard ceiling, per product, and it turns an open-ended usage bill into a budget you control.

The other levers, in order of impact:

  • Keep events anonymous by default (identified_only); identify only after signup. Up to 4x.
  • Tune autocapture or switch to explicit capture() calls for the events you actually analyze. Cuts raw volume.
  • Evaluate feature flags locally in the backend to avoid a request per check.
  • Sample high-frequency events, and set billing limits as the backstop.

One correction for anyone reading older guides: teardowns from 2024 and early 2025 still cite a "$65/month basic plan for 5,000 sessions." That plan is gone. In 2026 PostHog is pure pay-as-you-go on a $0 base; the paid tiers you will see, PostHog logo Boost at $250/mo, Scale at $750/mo and Enterprise at $2,000/mo, buy platform features rather than usage. PostHog's own package table puts unlimited projects, white labeling, a HIPAA BAA and SSO enforcement in Boost; priority support and SAML in Scale; and RBAC, dedicated support and training in Enterprise. Your usage is billed the same whether or not you add any of them.

Correction, October 5, 2026. This page previously put a fully identified 5M-event month at "up to roughly $610" and a total of "past $800", and it explained the $60k report partly as "every event identified (up to 4x)". PostHog publishes identified events as a separately tiered add-on, and on those rates 5M identified events cost $407.10 (total $624.10) while at 300M events identified analytics is cheaper than anonymous, so the 4x is a ceiling on the second million rather than a flat multiplier and it does not explain a high-volume bill. The page also previously listed RBAC among what Boost and Scale buy; PostHog's package table places RBAC in Enterprise at $2,000/mo. Every free allowance and every analytics, replay, flag and error-tracking rate quoted here was re-verified against posthog.com/pricing and remains unchanged.

Is PostHog cheaper than the alternatives?

Honestly, it depends on shape, not logos. For an early product juggling analytics, replay, and flags, the stacked free tiers make PostHog logo PostHog hard to beat, and if you only want privacy-friendly web stats, a flat tool like Plausible logo Plausible or free Google Analytics logo GA4 may be simpler. At high, mostly-identified volume, an MTU-priced competitor can undercut usage pricing, which is exactly why the r/analytics consensus is "PostHog is great for startups since it's cheaper" with the caveat that it scales in cost with usage. PostHog also overlaps tools you may already pay for: its error tracking competes with a dedicated monitor, so if you are pricing that separately it is worth reading our Sentry pricing teardown alongside this one, and its usage-metered model rhymes with other per-unit infra like Upstash.

Math check: PostHog's bill is set by volume across independently metered products, not by a plan. The identified-event premium is a second rate card that runs 3.96x the anonymous rate on the second million and falls below 1x above 50M events, so it is the lever that matters at small scale and not the one that matters at large scale. Set a per-product billing limit, keep events anonymous by default while you are small, and tune autocapture once you are not.

C

Written by

Camille Forster

Frequently asked questions

Is PostHog really free?

Yes, to start. As of July 2026 PostHog has a $0 base with no credit card required, and each product carries its own monthly free tier (1M analytics events, 5K web session replays, 1M feature-flag requests, 100K error-tracking exceptions, and more). Because the free tiers stack across products, many side projects pay nothing at all. You only pay per unit after a given product's free allowance is used up.

How much does PostHog cost for 1 million events?

The first 1,000,000 product-analytics events every month are free. The second million (1M to 2M) costs $50 at $0.00005 per anonymous event, and the per-event price steps down above that ($0.0000343 from 2M to 15M). If those events are identified rather than anonymous, they can cost up to 4x more.

Why did my PostHog bill suddenly jump?

Almost always one of three things: your events became identified (calling identify() makes every later event for that user cost up to 4x more), autocapture is sending far more events than you realized, or feature-flag requests crossed the free million (the first paid million of flags is $100). Setting person_profiles to 'identified_only' and evaluating flags locally are the usual fixes.

What is the difference between anonymous and identified events in PostHog?

Anonymous events have no person profile attached; identified events do, created when your code calls identify(), alias(), group(), or setPersonProperties(). PostHog's docs state anonymous events can be up to 4x cheaper. The recommended default person_profiles: 'identified_only' keeps events anonymous until you explicitly identify a user. That 4x is a ceiling on the second million events: identified events are billed on their own tiered add-on rate card, and the premium falls to about 2x by 15M events and below 1x above 50M, so it is the biggest cost lever on a small or mid-sized app rather than on a very large one.

Can I cap my PostHog spend?

Yes. PostHog lets you set a billing limit for each product independently. When usage hits your dollar limit, PostHog stops ingesting that product's data for the rest of the month instead of billing past the cap. It is the direct answer to the five-figure surprise-bill stories, and it is off by default, so you have to set it.

Is self-hosting PostHog free?

PostHog is open source under an MIT license and offers a free Docker Compose deployment you can host yourself, so there is no license fee. You still pay for the servers, storage, and engineering time to run and scale it. For small teams the managed cloud free tier is usually cheaper and less work than self-hosting; self-hosting tends to pay off only at large scale or under strict data-residency requirements.

Is PostHog cheaper than Mixpanel or Amplitude?

For early-stage products that want analytics, session replay, and feature flags in one place, PostHog's stacked free tiers usually make it cheaper. At high volume with mostly identified events, MTU-priced tools like Mixpanel or Amplitude can come out ahead, since PostHog's usage pricing scales with event count. Compare on your real event volume and identified-event ratio, not on the headline per-event rate.

Sentry Pricing in 2026: What You Actually Pay

Sentry pricing in 2026 is event-based: a free Developer plan, Team at $26/mo and Business at $80/mo (billed annually), each including 50,000 errors, 5M tracing spans, 50 replays and 5 GB of logs. Everything above that baseline is pay-as-you-go, and that overage, not the sticker, is your real bill. Errors run about $0.15 to $1.11 per 1,000 and spans about $1.60 to $4.00 per million, so tracing usually dominates. Below: the full per-unit ladder, three modeled 30-day bills, and why the Business plan includes the same base quotas as Team at three times the price.

8 min read734
tools

Upstash Pricing in 2026: What You Actually Pay for Serverless Redis

As of July 2026, Upstash Redis is free up to 256 MB and 500K commands per month; pay-as-you-go bills $0.20 per 100K commands plus $0.25/GB stored, and fixed plans run $10 to $1,500/month. Because Upstash charges per command, not per server, request volume sets your bill, not data size. Above ~5M commands/month a flat $10 fixed plan usually beats pay-as-you-go.

10 min read678
Infrastructure economics

Cloudinary Pricing in 2026: What You Actually Pay

Cloudinary pricing in 2026 runs on credits: 1 credit equals 1,000 transformations, 1 GB of managed storage, or 1 GB of net delivery bandwidth. Free gives 25 credits, Plus is $99/mo ($89 annual) for 225 credits, and Advanced is $249/mo ($224 annual) for 600 credits. Because credits are one shared pool, delivery bandwidth is usually the line that runs out first, and it works out to roughly $0.40 per GB, far above a raw CDN.

9 min read767