Back to Blog

PostHog Pricing 2026: Free Tier, Rates and Worked Examples

PostHog pricing explained: each product's free tier, per-unit rates by volume, identified vs anonymous events, and four real bills worked out step by step.

Published
Written by
Rybbit Team
Reading time
16 min

Tags

  • posthog
  • pricing
  • comparisons

PostHog pricing is usage-based and billed separately for each product. Every product has a free allowance that resets monthly (1 million analytics events, 5,000 session recordings, 1 million feature flag requests, 100,000 exceptions and 1,500 survey responses, among others), and you don't need a card to use it. Past the allowance you pay per unit on a sliding scale: analytics events start at $0.00005 each ($50 per million) and fall to $0.000009, web recordings start at $0.005 and fall to $0.0015, and flag requests start at $0.0001. There are no seats, minimums or contracts, and you can cap each product with a billing limit. Two things push real bills above the headline rate: events from identified users carry an extra person-profile charge, and each product you switch on is metered on its own.

The free tier is genuinely generous. PostHog's official pricing page says 97% of companies using it pay nothing, and a small SaaS can run analytics, replay, feature flags and error tracking without a bill (see worked example 1).

Disclosure: we build Rybbit, an open-source analytics tool that appears in the comparison near the end; Rybbit vs PostHog covers features. Every PostHog number here comes from posthog.com (the pricing page and its calculator, the per-product pricing pages, PostHog's docs and its public handbook), linked inline and checked in September 2026. Prices are as of September 2026, in US dollars, excluding tax.

PostHog pricing at a glance

ProductBilled onFree every monthThen from
Product and web analyticsEvents1,000,000$0.00005 per event
Person profilesIdentified events1,000,000+$0.000198 per event
Session replayWeb / mobile recordings5,000 / 2,500$0.005 / $0.01 per recording
Feature flags and experimentsFlag requests1,000,000$0.0001 per request
Error trackingExceptions100,000$0.00037 per exception
SurveysResponses1,500$0.10 per response
AI observability and evaluationsEvents100,000$0.00035 per event
Data warehouseRows synced1,000,000 (historical syncs free)$0.000015 per row
Data pipelinesTrigger events / exported rows10,000 / 1,000,000$0.0005 / $0.000015
Logs and tracingGB ingested10 GB$0.25 per GB
WorkflowsEmails / push and other dispatches10,000 each$0.003 / $0.00075
PostHog AI, Replay Vision, PostHog DesktopCredits500 / 2,500 / 2,000$0.01 per credit
Inbox (beta)Pull requests3$15 per PR

Sources: the pricing page and its calculator, plus each product's pricing page linked below. Experiments are billed with feature flags and evaluations with AI observability. Platform packages (Boost $250/month, Scale $750/month, Enterprise custom) come on top.

How PostHog's usage-based pricing works

  • Graduated tiers. Each band's rate applies only to the units inside it. Five million events cost $0 for the first million, $50 for the second and $102.90 for the next three ($0.0000343 each), not the lowest rate on all five million.
  • Allowances reset monthly and stay the same whether or not you have a card on file. Unused allowance doesn't roll over.
  • You pay on ingestion only. PostHog charges when data is first received and has no storage fees.
  • No seats, minimums or commitments. Billing is monthly on your sign-up date, the first charge comes a month after sign-up, and cards are charged through Stripe. Paying by invoice requires buying credits up front.

Free plan vs pay-as-you-go

Both self-serve plans get the same free allowances. The difference is what happens past them.

FreePay-as-you-go
Cost$0, no card$0 until you pass an allowance, then per unit
Projects16
Event data retention1 year7 years
Recording retention30 days90 days
Team membersUnlimitedNo per-seat charges
SupportCommunityEmail (Slack above $2,000/month)
Past the allowanceExtra events are dropped; flags return a quota-limited responseBilled per unit, up to any billing limit you set

PostHog recommends pay-as-you-go for "nearly everyone": it unlocks all features and still costs nothing within the allowances, which a billing limit can enforce.

Product analytics pricing: events

Product and web analytics share one meter: PostHog bills "events captured – pageviews, clicks, custom events, and everything autocapture picks up" (product analytics pricing), and web analytics uses the same events. Heatmaps don't add to the count: PostHog's autocapture docs say heatmap capture creates no additional events.

Identified vs anonymous events

Every event pays the base rate. Events from identified users (or users with custom person properties) also pay a person profiles rate, with its own tiers and its own first million free. From the breakdown in PostHog's calculator:

Monthly volumeBase rate (all events)Person profiles (identified events only)
First 1MFreeFree
1M–2M$0.0000500$0.0001980
2M–15M$0.0000343$0.0000697
15M–50M$0.0000295$0.0000360
50M–100M$0.0000218$0.0000146
100M–250M$0.0000150$0.0000037
250M+$0.0000090$0.0000010

Base tiers count all events; person-profile tiers count identified events only. In the 1M–2M band an identified event costs $0.000248 against $0.00005 for an anonymous one, about five times as much; from 2M to 15M it's about three times, and above 100M only 1.1 to 1.25 times. PostHog's own pages round this differently ("up to 4x" in the docs, "10x" on the web analytics page); the rates above are the ones its calculator uses.

The JavaScript SDK defaults to person_profiles: 'identified_only', so visitors stay anonymous until you call identify(), after which all of that user's events are identified. Backend SDKs and the API capture identified events by default (anonymous vs identified events). A marketing site with no logins can run entirely on the base rate; a logged-in SaaS app mostly can't.

Group analytics, a paid add-on for account-level B2B analysis, is billed on every identified event in the project once you subscribe: first 1M free, then $0.000071 per event, falling to $0.0000029 above 250M (group analytics pricing).

Session replay pricing: recordings

Recordings per monthWebMobile
Free allowanceFirst 5,000First 2,500
Up to 15,000$0.0050$0.0100
15,000–50,000$0.0035$0.0070
50,000–150,000$0.0020$0.0040
150,000–500,000$0.0017$0.0034
500,000+$0.0015$0.0030

Web and mobile are billed separately, each with its own allowance (session replay pricing). Recordings are kept up to 30 days on the free plan, 90 days on pay-as-you-go, up to 1 year with the Boost or Scale package and up to 5 years with Enterprise (recording retention). Replay Vision, which uses AI to watch recordings and turn what it sees into queryable data, is billed separately in credits.

Feature flags and experiments pricing: requests

Flag requests per monthPrice per request
First 1MFree
1M–2M$0.000100
2M–10M$0.000045
10M–50M$0.000025
50M+$0.000010

A request is a call to PostHog's /flags endpoint, not each flag check in your code (feature flags pricing). In the browser, the SDK makes one when it initializes, when a user is identified or their properties change, when you reload flags and when you create a group. On a server, each evaluation call is a request unless you use local evaluation, where every poll for flag definitions counts as 10 requests; at the default 30-second interval that's 864,000 requests a month per server (estimating usage and costs). Surveys evaluate flags for targeting, so they generate requests too.

Other products: error tracking, surveys, AI observability and more

Each band's price applies to usage up to the volume shown, after the free allowance.

Product (unit)Free every monthPrice per unit by volume
Error tracking (exception)100,000$0.00037 to 325k · $0.00014 to 10M · $0.000115 above
Surveys (response)1,500$0.10 to 2k · $0.035 to 10k · $0.015 to 20k · $0.01 above
AI observability (event)100,000$0.00035 to 150k · $0.000175 to 250k · $0.0001 to 500k · $0.00008 to 1M · $0.00007 to 10M · $0.000065 to 50M · $0.00006 above
Data warehouse (row synced)1,000,000$0.000015 to 10M · $0.00001 to 25M · $0.000008 to 50M · $0.000005 to 100M · $0.000002 to 1B · $0.000001 above
Realtime destinations (trigger event)10,000$0.0005 to 50k · $0.0003 to 100k · $0.00015 to 1M · $0.0001 to 10M · $0.00005 to 100M · $0.000025 above
Batch exports (row)1,000,000$0.000015 to 10M · $0.000005 to 50M · $0.0000025 to 100M · $0.00000125 above
Logs and tracing (GB)10 GB$0.25 to 300 GB · $0.15 above
Workflow emails (email)10,000$0.003 to 50k · $0.0018 to 100k · $0.001 to 1M · $0.0005 to 10M · $0.000375 to 100M · $0.00025 above
Workflow push and other destinations (dispatch)10,000$0.00075 to 50k · $0.00045 to 100k · $0.000225 to 1M · $0.00015 to 10M · $0.000075 to 100M · $0.0000375 above

Data warehouse and pipeline rates come from the calculator on the pricing page. Surveys don't limit how many surveys or questions you create, AI observability adds no markup on model tokens, a pipeline trigger event that fans out to five destinations is billed once, and logs are kept 14 days unless you pay $0.05 per GB per month for longer retention.

Platform packages and other extras

PackagePriceWhat it adds
Boost$250/monthUnlimited projects, white labeling, HIPAA BAA, SSO enforcement, collaboration features; recordings kept up to 1 year
Scale$750/monthEverything in Boost, plus priority support, SAML and more organization controls
EnterpriseCustomEverything in Scale, plus role-based access control, dedicated support and training; recordings kept up to 5 years

Packages are a flat monthly fee on top of usage (platform packages). PostHog also sells a 30-minute onboarding call for $80.

Billing limits, alerts and what happens when you go over

On pay-as-you-go, usage past the allowance is billed until you cap it. The controls, per PostHog's billing limits and spike detection docs:

  • Billing limits per product. At the limit PostHog stops ingesting that product's data, and the extra data is lost for good. Feature flags return a quota_limited response, and SDKs fall back to default values.
  • Alert emails go to organization owners at 80% and 100% of each limit and of each free allowance.
  • Spike detection runs daily and emails self-serve customers about unusual jumps or drops, at most once a week.
  • A billable-usage dashboard template breaks usage down by event, SDK and product.

A hard limit means a traffic spike leaves a gap in your data until the billing period resets or you raise the limit, so set limits with headroom. PostHog's pricing page also says that if you get an unexpected bill, "we'll pretty much always refund it".

Discounts: startups, non-profits and prepaid credits

  • Startups: $50,000 in credits for 12 months if your company is under 2 years old, has raised less than $5 million, signed up on or after January 1, 2023, and applies from a company email domain. Since September 14, 2026, credits no longer cover PostHog's AI tools (PostHog Desktop, the Slack app, Replay Vision, PostHog AI and Inbox). Y Combinator companies get a separate deal (startup program).
  • Non-profits: the pricing FAQ says there's a discount "in most cases" once you contact sales. PostHog's public sales handbook sets it at 15% on credit purchases under $25,000 and an extra 5% on purchases of $25,000–$100,000 (contract rules).
  • Prepaid credits: monthly pay-as-you-go gets no discount beyond the built-in volume tiers. Buying credits up front, usually for 12 months, does: 20% off at $25,000–$59,000 a year, 25% at $60,000–$99,000, 30% at $100,000–$249,000, 35% at $250,000–$499,000 and 40% at $500,000–$999,000. Self-serve accounts with at least three paid invoices averaging $280 or more can buy credits in the app at 10% off. Half of any unused credit rolls over if you renew at equal or higher spend (pre-paid plans).

Worked examples: what PostHog costs at four sizes

All four use pay-as-you-go rates. We ran each through the calculator on PostHog's pricing page, and the usage totals match to the dollar (the calculator rounds).

1. Early-stage SaaS: 500k events and 5k recordings

Usage: 500,000 events (400,000 from logged-in users), 5,000 web recordings, 300,000 flag requests and 20,000 exceptions.

Line itemUsage vs free allowanceCost
Events, base rate500,000 of 1,000,000$0
Person profiles400,000 of 1,000,000$0
Session replay5,000 of 5,000$0
Feature flags300,000 of 1,000,000$0
Error tracking20,000 of 100,000$0
Total$0/month

On the free plan that means 1 project, a year of event history and 30 days of recordings. Pay-as-you-go with billing limits at $0 keeps the bill at $0 and unlocks 6 projects, 7-year retention and 90-day recordings. Replay has the least headroom: at 6,000 recordings the extra 1,000 would cost $5.

2. Growth-stage product: 5M events, 50k recordings, 2M flag requests

Assume 2M of the 5M events come from identified users.

Line itemCalculationCost
Events, base rate1M free; 1M × $0.00005 = $50.00; 3M × $0.0000343 = $102.90$152.90
Person profiles2M identified: 1M free; 1M × $0.000198$198.00
Session replay5k free; 10k × $0.005 = $50.00; 35k × $0.0035 = $122.50$172.50
Feature flags1M free; 1M × $0.0001$100.00
Total$623.40/month

The identified share swings this bill. With all 5M events anonymous, the total would be $425.40. With all 5M identified, the person-profile line would be $407.10 ($198 + 3M × $0.0000697) and the total $832.50.

3. High-traffic content site: 20M anonymous events and 20k recordings

A publisher with no logins and roughly 10M pageviews a month, which becomes about 20M events because the JavaScript SDK sends a $pageview and a $pageleave by default (click autocapture is off here). It also records 20,000 sessions.

Line itemCalculationCost
Events, base rate1M free; 1M × $0.00005 = $50.00; 13M × $0.0000343 = $445.90; 5M × $0.0000295 = $147.50$643.40
Person profilesNo identified events$0
Session replay5k free; 10k × $0.005 = $50.00; 5k × $0.0035 = $17.50$67.50
Total$710.90/month

Turning off automatic $pageleave capture would bring events down to about 10M: analytics falls to $324.40 ($50 + 8M × $0.0000343) and the bill to $391.90. PostHog documents the setting, with the caveat that bounce rate may stop working.

4. Scale-up on five products plus Boost

Usage: 10M events, all identified; 100,000 web recordings; 10M flag requests; 300,000 exceptions; 5,000 survey responses; and the Boost package for SSO enforcement.

Line itemCalculationCost
Events, base rate1M free; 1M × $0.00005 = $50.00; 8M × $0.0000343 = $274.40$324.40
Person profiles1M free; 1M × $0.000198 = $198.00; 8M × $0.0000697 = $557.60$755.60
Session replay5k free; 10k × $0.005 = $50.00; 35k × $0.0035 = $122.50; 50k × $0.002 = $100.00$272.50
Feature flags1M free; 1M × $0.0001 = $100.00; 8M × $0.000045 = $360.00$460.00
Error tracking100k free; 200k × $0.00037$74.00
Surveys1,500 free; 500 × $0.10 = $50.00; 3,000 × $0.035 = $105.00$155.00
Boost packageFlat fee$250.00
Total$2,291.50/month

That's about $27,500 a year, inside the $25,000–$59,000 band where PostHog's handbook offers 20% off prepaid credits: roughly $5,500 a year if usage holds. The person-profile line is the largest item; if half of those events could be sent anonymously, it would drop to $407.10.

How to keep your PostHog bill down

From PostHog's own cost-cutting docs:

  1. Keep events anonymous unless you need person data. Leave the JavaScript SDK on person_profiles: 'identified_only', and call identify() and group() once per session. On backend SDKs, set $process_person_profile to false for events that don't need a profile (product analytics costs).
  2. Trim autocapture with an allow or ignore list, or turn it off and send custom events for what you actually analyze.
  3. Drop automatic events you don't use. You can disable automatic $pageview and $pageleave capture and send them manually where they matter; bounce rate may break.
  4. Record fewer sessions. Replay trigger groups let you sample a percentage of sessions, start recording on a URL or event, gate recording behind a feature flag, and set a minimum duration so quick bounces aren't recorded (recording controls).
  5. Cut flag requests. Skip the first-load request (advanced_disable_feature_flags_on_first_load), bootstrap flags, poll for local evaluation every 5 minutes instead of 30 seconds, avoid local evaluation in edge or Lambda functions, disable flags in test and CI, and find forgotten environments still calling /flags (feature flag costs).
  6. Set a billing limit on every product and build the billable-usage dashboard from PostHog's template to see which events and SDKs drive the bill.
  7. Prepay once spend is stable. Bills above about $2,100 a month cross the $25,000-a-year prepaid threshold; smaller accounts can use the 10% self-serve credit purchase.

PostHog vs alternatives at the same volume

Per-unit prices only compare cleanly if the units match, and events don't.

  • PostHog bills every event its SDKs capture. By default the JavaScript SDK sends a $pageview and a $pageleave for each page, plus autocapture events for clicks, form changes and copies. Identified events pay the person-profile rate on top.
  • Rybbit bills by events too, but counts fewer of them: pageviews, custom events and outbound-link clicks by default, plus Web Vitals, button clicks, copies and form interactions only if you switch those on. Error events, session replays and identify calls don't count, and logged-in users cost the same as anonymous ones. Rybbit's pricing is a set of flat tiers: Standard from $19/month for 100k events, and Pro from $39/month, which adds session replay with a monthly quota of 10% of your event allowance (10,000 replays on the $39 tier).

The table assumes two PostHog events per pageview (click autocapture off) and one Rybbit event per pageview, at monthly list prices. The cheaper option in each row is in bold.

Monthly trafficPostHogRybbit
250k pageviews, anonymous500k events: $0Standard 250k: $29
1M pageviews, anonymous2M events: $50Standard 1M: $69
1M pageviews, logged-in users, 20k replays2M identified events ($248) plus 20k recordings ($67.50): $315.50Pro 1M: $139
10M pageviews, anonymous20M events: $643.40Standard 10M: $249
10M pageviews, anonymous, 20k replays$710.90 (worked example 3)Pro 10M: $499

Where PostHog is cheaper. Small sites: below about 500k pageviews a month PostHog costs nothing, while Rybbit Cloud is paid after a 7-day trial (the card is collected at signup). Under these assumptions PostHog stays cheaper for anonymous traffic up to about 1.7M pageviews a month, and Rybbit Standard is cheaper at every tier above about 2.5M; in between, it depends on where you land in Rybbit's tiers. Turning off $pageleave roughly halves PostHog's count and moves both points higher. PostHog also sells what Rybbit doesn't: surveys, a data warehouse, AI observability, logs and workflows, plus heatmaps that create no extra events (Rybbit has no click or scroll heatmaps). If you'd use several of those, PostHog puts them on one bill.

Where Rybbit is easier to predict. Logged-in traffic costs the same as anonymous traffic, replays are included in Pro up to its quota (100,000 a month on the 1M plan), and the price only changes when you change tiers. Rybbit doesn't bill overage: past your tier it stops recording new events until you upgrade or the next month starts, much like a PostHog billing limit. On retention, Rybbit Standard keeps data 3 years and Pro 5, against 7 on PostHog's paid plan; Rybbit keeps replays 30 days, PostHog's pay-as-you-go 90.

Both can be self-hosted without license fees: Rybbit under AGPL-3.0, and PostHog as an MIT-licensed Docker Compose deployment that PostHog calls "officially unsupported" and steers away from once you expect more than 300k events, 1k recordings or 300k flag requests a month (self-host docs).

For a feature-by-feature view, see Rybbit vs PostHog. For more replay tools with verified prices, see the best session replay tools.

FAQ

How much does PostHog cost per month? Nothing until you pass a product's free allowance. After that it depends on volume and mix: 2 million anonymous events cost $50 a month, and 5 million events (2 million identified) plus 50,000 recordings and 2 million flag requests cost $623.40. The calculator on PostHog's pricing page estimates your own mix.

What does the PostHog free tier include in 2026? Every month: 1M analytics events, 5,000 web and 2,500 mobile recordings, 1M flag requests, 100,000 exceptions, 1,500 survey responses, 1M warehouse rows, 100,000 AI observability events, 10 GB of logs, plus pipeline, workflow and AI-credit allowances. The free plan adds 1 project, 1-year data retention, unlimited team members and community support. It doesn't expire, and no card is needed.

Does PostHog's free allowance reset every month? Yes. Allowances reset monthly, stay the same after you add a card, and don't roll over.

Why do identified events cost more? PostHog creates a person profile for identified users, and querying their events needs more expensive table joins. So identified events pay a person-profile rate on top of the base rate: $0.000198 extra per event between 1M and 2M, falling to $0.000001 above 250M, with the first 1M identified events exempt.

Can I cap my PostHog bill? Yes, with a billing limit on each product. At the limit PostHog stops ingesting that product's data (it's dropped, not queued) and feature flags return default values.

Does PostHog offer startup or non-profit discounts? Yes. Startups under 2 years old that have raised less than $5 million can get $50,000 in credits for 12 months. Non-profits get a discount through sales; PostHog's handbook puts it at 15% on credit purchases under $25,000.

Is PostHog cheaper than FullStory? FullStory doesn't publish paid prices. Its plans page lists a free plan with 30,000 sessions a month, 12 months of data retention and up to 10 users, and quotes everything above that. On PostHog, the first 5,000 recordings each month are free and 30,000 recordings cost $102.50 on pay-as-you-go (10,000 × $0.005 plus 15,000 × $0.0035).


Want analytics and session replay on a flat monthly price? Start a 7-day Rybbit trial or open the live demo.

Ready for better analytics?

The full analytics surface on one dashboard: cookieless, open source, and live in minutes.

Live demo