Heap cost vs self-hosted PostHog: where the money actually goes
If your Heap renewal, or the Contentsquare integration that followed Heap's September 28, 2023 agreement to join the group, has pushed the price up, the first thing to know is that Heap's pricing is not published and is session-based. The cost gap between Heap and PostHog therefore depends on three things you can measure yourself: your monthly session volume, how much data history you need to keep, and whether you need Heap Connect to export data. Ask Heap for a written quote that states the session tier, the data history period and whether Heap Connect is included or sold as an add-on, then compare it line by line with the PostHog options below. Treat any figure you have not seen in writing as unknown.
PostHog Cloud charges by usage rather than by session. Its pricing page states that the first 1 million analytics events are free every month, that the Free plan includes 1 project and 1-year data retention, and that the Pay-as-you-go plan raises this to 6 projects and 7-year data retention. Count your events, not your sessions, when you model this, because an autocaptured page view or click is an event. Self-hosting removes the license fee for the MIT-licensed core of PostHog, but the ee directory needs a PostHog license for some premium features on a self-hosted instance, so confirm which features you rely on before assuming a zero license cost. SSO, audit logs, custom roles and project permissions are sold as platform packages on Cloud, and you should confirm the equivalent terms for any self-hosted deployment.
Self-hosting moves costs from the vendor invoice to your own budget. The recurring costs are servers, storage, backups, monitoring and the engineering time to upgrade and operate PostHog. The one-time costs are the migration work, the event mapping and the validation of dashboards against the old data. PostHog's self-host documentation states that self-hosted deployments are officially unsupported and that PostHog does not offer customer support for self-hosted instances, so the support line in your cost model is internal staff or a paid implementation and support partner such as DeployOpen, scoped in writing. Ask any partner to separate the initial implementation fee from any retainer for upgrades, backups and testing, and to state who pays for the infrastructure. A small hobby deployment is documented as needing a server equivalent to 4 vCPU, 16 GB of RAM and more than 30 GB of storage, but the PostHog README advises migrating to PostHog Cloud above approximately 100k events per month, so model volume before choosing.
Which cost components change between Heap and PostHog
This table compares each cost component of running Heap against PostHog Cloud or a self-hosted PostHog deployment, and marks whether it is one-time or recurring. Use it to build a like-for-like quote request, since Heap's pricing is not published and several PostHog costs depend on your event volume and deployment choice. The main takeaway is that the largest differences usually sit in data export, migration effort and internal skills rather than in the software line itself.
| Cost component | Heap (current contract) | PostHog (cloud or self-hosted) |
|---|---|---|
| Software subscription or license | Recurring, session-based plan with unpublished pricing; confirm the rate and renewal terms in writing | Cloud is recurring usage pricing with a free monthly event allowance; self-hosted core is MIT licensed with no license fee, but premium ee features need a PostHog license |
| Data export path (Heap Connect) | Recurring add-on; confirm which plans include it and what it costs at your session volume | Not needed for PostHog itself; historical import is a one-time job, though the import features require a paid product analytics plan |
| Historical data migration | One-time: export effort and any extra fees to extend data history before the contract ends | One-time: scripted Heap migration plus per-event table conversion and identity aliasing, with no selective deletion once imported |
| Infrastructure (self-hosted only) | None; Heap runs as a hosted service | Recurring: servers, storage, backups and networking; PostHog's self-host docs suggest about 4 vCPU, 16 GB RAM and over 30 GB storage as a starting point |
| Cloud usage charges | Not applicable; cost follows session volume under the Heap plan | Recurring and volume-based; confirm how event volume, retention length and project count affect the bill on PostHog's pricing page |
| Implementation and configuration | Mostly internal effort for tracking setup and event definitions, with vendor services quoted separately if needed | One-time: deployment, event schema, SDK changes and dashboard rebuilds, which DeployOpen would scope in writing if you choose outside help |
| Support | Recurring, included in the Heap contract; confirm the support tier and response terms | Cloud support is part of the platform plan; self-hosted instances are officially unsupported, so support must come from your team or a retainer |
| Upgrades and maintenance | Handled by the vendor | Recurring: PostHog releases, security patches and dependency updates; new Kubernetes deployments of the paid self-hosted product are no longer supported |
| Internal skills and staffing | Recurring analyst time on Heap-specific tooling | Recurring: platform engineering time for self-hosting, plus analyst time to rebuild queries and dashboards |
What moves the Heap and PostHog comparison
Six factors decide whether Heap's session-based spend or a PostHog deployment costs less to run. Each one pushes the total toward PostHog Cloud or toward your own servers, and they interact, so model them together before you set a budget.
Monthly event volume
Event volume is the first cost driver. The PostHog README says open-source deployments should scale to approximately 100k events per month and recommends PostHog Cloud above that. Count every source, including autocaptured clicks, server events and identify calls, not only pageviews. Heap prices on sessions, so a site with many short sessions can cost very differently from one with fewer long ones. Ask Heap how it counts sessions, then compare both measures against your projected monthly events.
Years of history to keep
Retention decides how much history you carry into the new system. PostHog's Free plan includes one-year data retention, while the Pay-as-you-go plan extends retention to seven years, so paying for longer history on Cloud is a line item to compare. On self-hosting, retention becomes a storage decision, because every extra year adds disk, backup and restore time. Confirm with stakeholders how much Heap history they need for trend and cohort work, and whether older data can move to cheaper archive storage.
Heap Connect and export path
Heap Connect sync is the export path that determines what you can take out of Heap. PostHog documents a scripted migration from Heap through Heap Connect, so confirm your plan includes the sync before you renew. Ask Heap in writing whether the feed covers historical data or only new events, and how often it reaches your warehouse. Budget engineering time for the query work that converts per-event tables into PostHog events, because that labor is the same whether PostHog runs in Cloud or on your servers.
EU hosting and data residency
Residency decides where the data, and therefore part of the cost, can sit. PostHog Cloud offers EU (Frankfurt) hosting alongside US (Virginia), which may fit your requirements, but you should review the regional terms and any transfers against your own obligations. Self-hosting keeps data in a location you choose, which can matter for public sector or regulated workloads, but it moves hardware, backups and patching onto your budget. Ask Heap where your EU data is stored and whether that matches your contract terms.
Availability and support expectations
Support terms differ sharply between the two paths. PostHog states that self-hosted deployments are officially unsupported and that it does not offer customer support for product, infrastructure or other questions on them. On Cloud you buy a hosted service, while self-hosting makes your team, or a partner you contract, responsible for uptime, upgrades and incident response. Define the availability you need, who responds after hours, and whether you want a retainer for ongoing support before comparing the two bills.
In-house platform skills
Team skills set the labor cost of self-hosting. PostHog's hobby deployment runs on Docker Compose with a deploy-hobby script, which suits evaluation. The docs recommend a server equivalent to 4 vCPU, 16 GB of RAM and more than 30 GB of storage, and new Kubernetes deployments of the paid self-hosted product are no longer supported. Check whether your engineers can operate the deployment method, monitor the stack, and test backups and restores before you commit to the self-hosted path.
How to build the cost model with your own numbers
This sequence turns Heap's unpublished pricing and PostHog's published tiers into one comparable model, built from your own event counts, retention needs and migration scope. The result is a three-year cost view you can take into a Heap quote request and a PostHog Cloud or self-hosting decision.
Pull session and event counts from Heap
Ask the Heap account owner to export monthly session counts and event volumes for the last 12 months, separating autocaptured events from manually defined events. Include the number of projects and the environments that send data, since these drive both plan scope and migration effort. Done when you have one table with a monthly baseline and a peak month, and you know which projects are in scope for migration.
Map the data history you need to keep
Decide how far back analysis must reach for retention, cohorts and compliance reviews, and write that number down per dataset. Check your current Heap data history limit with Heap, then note any longer history that teams rely on today. Done when each dataset has a required retention period and a marked gap between what Heap keeps and what you need.
Price the Heap plan and Heap Connect by quote
Request a written quote from Heap or Contentsquare for your current session volume, the plan tier that includes Heap Connect, any data history extension and the export path you need. Heap's pricing is not published, so the quote is the only source for these lines. Ask whether the price is annual or multi-year, which terms change at renewal and what happens to exported data after the contract ends. Done when you hold a quote with each recurring line item labeled.
Cost PostHog Cloud against its published limits
Convert your monthly event counts into PostHog Cloud usage using the published pricing page, which states that the first 1 million analytics events each month are free. Compare your volume with the Free plan's 1 project and 1-year data retention, and the Pay-as-you-go plan's 6 projects and 7-year retention. Choose a hosting region from the two offered, US (Virginia) or EU (Frankfurt), and note that SSO, audit logs, custom roles and project permissions are sold as platform packages. Done when you have a monthly and three-year PostHog Cloud estimate with any platform package flagged as a separate quote.
Estimate self-hosted infrastructure and support
Use PostHog's self-host guidance, which recommends a server equivalent to 4 vCPU, 16 GB of RAM and more than 30 GB of storage for the free Docker Compose hobby deployment, as the starting point for a sizing request to your platform team. The PostHog README says open-source deployments should scale to about 100k events per month before moving to Cloud, so compare your volume against that figure. Count your own engineering time for upgrades, backups and monitoring, and budget for paid support from a partner, because PostHog states that self-hosted deployments are officially unsupported. Also confirm whether you need the paid ee features, which require a PostHog license. Done when you have a recurring infrastructure and operations line with its assumptions written out.
Cost the migration work
List the one-time work: export from Heap through Heap Connect or a one-time JSON export, conversion of per-event tables into PostHog events and users, identity aliasing, dashboard rebuilds and parallel running. Note that PostHog documents a scripted Heap migration, that historical imports are free of ingestion fees when sent with the historical_migration flag, but that a paid product analytics plan is required to unlock import features. Also note that there is no way to selectively delete imported event data. Price each item as internal hours or a partner quote, and state who pays for each. Done when the one-time costs are listed separately from recurring costs.
Set a three-year horizon and compare scenarios
Build three columns, Heap with Heap Connect, PostHog Cloud and self-hosted PostHog, and project each over three years using your baseline volume with a stated growth assumption. Label the growth rate as an assumption you chose, and show a second case for a volume spike. Add one-time migration costs in year one and recurring costs each year. Test the cost of extending data history in each column, since Heap history extensions and PostHog retention tiers change the totals. Done when the three columns show totals that a finance and security reviewer can trace back to the lines above. Illustrative example: a team that doubles volume over three years would see Cloud retention and platform packages move its total more than infrastructure does, so confirm each line with the vendor before deciding.
Paying to extend data history on Heap versus PostHog
Data history on Heap is a recurring commercial term, not a one-time setting, so the cost of keeping historical behavioral data is something to confirm at every renewal. Heap's pricing is session-based and unpublished, and the length of history an account keeps is tied to the plan and contract you hold. Before you compare totals, ask Heap in writing how many months or years of history your current contract includes, what it costs to extend it, and what happens to data that ages out. Those answers determine how much history you can still export, which in turn sets the size of any migration.
PostHog documents its retention by plan on its pricing page: the Free plan includes 1-year data retention, and the Pay-as-you-go plan raises it to 7-year data retention. Retention is therefore a plan decision you can review directly rather than a negotiated extension. Pricing for the paid tier is usage based, so the cost of holding history is shaped by event volume and the plan you choose. Confirm the current retention and event rates on the PostHog pricing page before you model costs, because plan terms change and this comparison depends on them.
Migration effort depends on how history gets into PostHog. PostHog's managed migrations cover at most one year of data per direct import job, so a longer Heap history means several jobs or a scripted export, and the Heap guide's path runs through Heap Connect, which is itself a plan-dependent add-on. Imported events are not deduplicated, and PostHog states there is no way to selectively delete event data once imported. Test a small import first, decide which date range you actually need, and avoid importing data you would later need to remove for privacy or retention reasons.
Questions buyers ask about Heap and PostHog costs
How much does self-hosting PostHog cost compared with Heap?
No single number answers this, because the total depends on the components you pay for and who does the work. Self-hosted PostHog has no license fee for the MIT-licensed core, but you pay for the servers or cloud accounts it runs on, storage, backups, monitoring, upgrades, and the engineering time to operate it. Heap's pricing is session-based and not published, so the honest comparison needs Heap's quote for your session volume, data history and Heap Connect add-on. PostHog's self-host documentation recommends a server equivalent to 4 vCPU, 16 GB of RAM and more than 30 GB of storage for the hobby deployment, which is a starting point for infrastructure sizing, not a production sizing. Ask your engineers to model the production footprint for your event volume.
Can our team run self-hosted PostHog without outside help?
Your team can run it alone if it has engineers who can operate containerized or Kubernetes workloads, manage databases, handle backups and apply upgrades on a schedule. PostHog states that self-hosted deployments are officially unsupported and that it does not offer customer support for product, infrastructure or other questions on self-hosted instances, so the people who answer incidents and upgrade questions are your own staff or a partner you hire. PostHog also notes that new Kubernetes deployments of its paid self-hosted product are no longer supported, which affects how you plan the platform. Confirm the on-call coverage, upgrade cadence and skills you need before you decide who runs it.
How long does a migration from Heap to PostHog take?
The duration depends on how much history you move, how many events and users you export, and how much your event definitions and identity mappings need rework. PostHog documents a scripted migration from Heap through Heap Connect, and the Heap plan you are on determines whether Heap Connect is available to you at all. Heap's data history limits also cap what is left to export, so check your retention before you plan the timeline. Ask any partner for a timeline in a written, fixed scope that lists the data sources, the event mapping, the validation steps and the cutover plan, rather than accepting an open-ended estimate.
Is PostHog Cloud cheaper than self-hosting at our volume?
It depends on your event volume, the features you need, and the internal cost of running the platform. PostHog's pricing page states that the first 1 million analytics events are free every month, that the Free plan includes 1 project and 1-year data retention, and that the Pay-as-you-go plan raises this to 6 projects and 7-year data retention. The PostHog README says open-source deployments should scale to approximately 100k events per month and recommends moving to PostHog Cloud above that. Premium features such as SSO, audit logs, custom roles and project permissions are sold as platform packages, so include them in the comparison. Model Cloud usage, self-hosted infrastructure and staff time together.
Which premium features need a paid PostHog license when self-hosted?
Premium features in the ee directory of the PostHog repository need a PostHog license on a self-hosted instance. The rest of the repository is MIT licensed, and PostHog points teams that need fully free software to the posthog-foss repository, which is purged of all proprietary code and features. Check which features your analytics, session replay, feature flags and experiments depend on, because that decides whether you need a license or can use the free code path. Ask PostHog to confirm license terms for your exact feature set in writing before you commit.
What should a quote for a Heap to PostHog project include?
A useful quote lists each cost in its own line so you can compare options fairly. Include the infrastructure you will run, the migration work for event export, transformation and identity mapping, validation and cutover, the security hardening and backup setup, and the ongoing support or retainer that covers upgrades and incidents. Also ask which items are one-time and which recur, what drives each cost up, and what changes if your event volume grows. Heap's pricing is not published, so confirm your current Heap cost, data history limits and Heap Connect terms directly with Heap or Contentsquare before you request a quote.
Where should we confirm current Heap pricing and export terms?
Confirm Heap pricing, session allowances, data history limits and Heap Connect terms directly with Heap or Contentsquare, because Heap has agreed to become part of Contentsquare and its plans are not published. Ask for the terms in writing and check them against your renewal date, since the contract, not a web page, sets what you pay and what you can export. Request the exact data history you can access and whether a one-time JSON export is available on your plan. Your own finance and procurement teams should hold these answers before the cost comparison is final.
How do data residency needs change the cost comparison?
Residency affects where you can run PostHog Cloud and what your infrastructure must cover. PostHog Cloud offers two hosting regions, US (Virginia) and EU (Frankfurt), so confirm whether those meet your requirements. Self-hosting lets you choose the location, which can add hosting cost but removes the dependence on a vendor region. Ask your legal and compliance teams which controls apply to your data, and confirm them with the vendor and your own environment rather than assuming a region satisfies them.
What the migration work adds to either path
Whichever path you choose, the data extraction step decides how much migration work follows. Heap's documented route runs through Heap Connect, the warehouse sync, or through a one-time JSON export obtained from Heap support. PostHog's Heap guide then converts that export into per-event tables, reshapes events and users into PostHog's model, and aliases identities so that a visitor seen before and after login is counted once. Confirm with Heap which export method your plan allows, because the plan you need to get data out is a cost in its own right. If your current plan does not include Heap Connect, the export may need a plan change or a support request before any engineering starts.
Effort depends less on the destination than on your event schema and history length. A product with a small, stable set of named events and a short data history is a bounded conversion job. A product with heavy autocapture, many event properties that changed over time, or several years of history needs more mapping decisions, more validation and more time to reconcile counts against Heap reports. Plan for the people involved as well. Someone on your team must know which Heap events feed which dashboards, how user identities were merged, and which properties carry business meaning. That knowledge sits in the data model, not in the tool, so an in-house data or analytics engineer who understands it is needed on either path, whether the target is PostHog Cloud or a self-hosted instance.
The same work applies to a self-hosted deployment, and it adds cost that a managed service partly absorbs. Self-hosted PostHog has no vendor support for product, infrastructure or other questions, so your team or an implementation partner owns the conversion scripts, the validation and any later fixes. Ask any implementation partner to state in the written scope which export method is assumed, how many years of history are included, which events and properties are mapped, and how reconciliation against Heap reports will be checked. Those four items drive most of the variance between quotes.
How DeployOpen scopes a fixed-price PostHog implementation
DeployOpen is a Chainscore Labs company that plans, implements, hardens, backs up and documents self-hosted open-source platforms inside the client's own infrastructure. For a Heap exit, that means turning the cost question into a written scope that covers PostHog, the data export path and the operating model you will run afterward.
How we scope
- Written scope lists the PostHog components, hosting environment and data sources to be implemented before any work starts.
- Scope records how historical Heap data will be exported, whether through Heap Connect or a one-time JSON export.
- Scope states who runs the self-hosted instance after handover and whether ongoing support is included or sold as a retainer.
How we build
- Deployment is built in your cloud account, data center or air-gapped network, sized against your expected event volume.
- Event conversion and identity aliasing are tested against a sample export before any full historical import runs.
- Infrastructure hardening, backup and upgrade procedures are configured and tested as part of the agreed deliverables.
How we hand over
- Handover documentation covers architecture, deployment steps, backup restores and the upgrade process for your team.
- Migration evidence records what was exported from Heap, what was imported into PostHog and what was left behind.
- A quote follows from the written scope, so your team can compare the one-time implementation cost with recurring hosting and staffing.
How we support
- Ongoing support, upgrades and continuous testing are available as retainers after handover.
- Retainer terms are agreed in writing, so the recurring operating cost is visible before you commit.
- Confirm with DeployOpen which PostHog license tier your features require before scoping the self-hosted deployment.

