Product analytics cost: build, partner or SaaS

Self-hosted PostHog, OpenReplay and Umami carry no license fee on the community editions, so the real cost is infrastructure, implementation, support and staff time. This page shows how to weigh those lines against SaaS pricing.

On this page

What product analytics actually costs when you self-host

If you are comparing a SaaS subscription with running PostHog, OpenReplay or Umami in your own cloud account, the community editions carry no license fee, but the total cost depends on infrastructure, implementation, ongoing support, internal staff time and event volume. No single number applies to every organization, so the useful exercise is to price each of those lines for your own traffic and data rules. Start by confirming which edition you are actually deploying, because the free label applies to different code in each product. PostHog's repository is MIT licensed except for the ee/ directory, which carries a separate license, and its README states that premium features from that directory on a self-hosted instance require a PostHog license. OpenReplay's monorepo is mostly AGPLv3, with some MIT directories and a separate commercial license for its ee/ directory. Umami is MIT licensed throughout, which makes its license question the simplest of the three.

Treat the licence check as a procurement step, not a footnote. For each feature on your requirements list, such as SSO, SCIM provisioning, audit trail or custom roles, confirm whether it sits in community code or in a paid edition, and get the answer in writing from the vendor. Those features are often what security and identity teams need first, and they can change the cost comparison more than server pricing does. Also note the support boundary: PostHog's self-host documentation states that self-hosted deployments are officially unsupported, which means the support line in your budget has to come from you or from a partner, not the vendor.

Everything else in the total is a decision you control. Infrastructure scales with event volume and replay storage, and PostHog's guidance is that open-source deployments suit roughly 100k events per month, above which it recommends its cloud service. Internal staff time for upgrades, backups and on-call is recurring and often the largest line. A partner quote should separate one-time work (architecture, deployment, migration, masking configuration) from recurring work (upgrades, monitoring, support) so you can compare the three options on the same basis.

Cost components: in-house, partner and SaaS side by side

This table compares who pays for each cost component under an in-house build, an implementation partner, and a SaaS subscription, and whether each cost is one-time or recurring. Only the Umami Cloud tiers, the PostHog free tier and the OpenReplay Dedicated starting price are published figures, so every other cell depends on the written scope and on your own environment.

Cost componentIn-house buildImplementation partnerSaaS subscription
Software licenseUsually none for MIT or AGPL core editions, but paid enterprise or ee/ modules need their own license. Recurring if used. Confirm which edition you run.Passed through or quoted in the written scope. Confirm whether any enterprise license is included or billed separately.Recurring subscription. Umami Cloud Hobby is $0 per month for up to 100K events. PostHog's free tier covers the first 1 million analytics events per month. OpenReplay Dedicated starts at $199 per month.
InfrastructureRecurring cloud or data center spend paid by your team, sized to event volume and replay storage. Confirm hardware or VM specs against vendor minimums.Recurring, usually billed to you in your own cloud account. Confirm who holds the account and who pays the bill.Included in the subscription for managed tiers. Bring-your-own-cloud options still leave some infrastructure cost with you.
Initial implementation (instrumentation, masking configuration, SSO, backups)One-time internal effort for SDK integration, capture-time masking rules, identity setup and backup design. Duration depends on your team and scope.One-time, fixed-scope fee agreed in writing before work starts. Ask for each item to be listed separately.Usually one-time internal effort for SDK setup and masking rules. Managed vendors may charge separately for setup help. Confirm in the order form.
Ongoing operations and upgradesRecurring internal staff time for patching, version upgrades, database maintenance and monitoring. Upgrade cadence depends on each project's release schedule.Recurring only if you buy a retainer. Ask for upgrade and patch responsibilities in writing.Vendor handles hosting and upgrades. Your recurring cost is subscription plus internal admin time for configuration.
SupportInternal, paid through your staff. Community forums are the main path for open-source editions. PostHog states it does not offer customer support for self-hosted instances.Recurring retainer or one-time response terms. Confirm response times and whether they are contractual.Included in some subscription tiers. Enterprise support, SLAs and dedicated support are quoted separately. Confirm each tier's terms.
Internal staff timeLargest hidden line: engineering, security and data staff across design, build, operations and incident response. Confirm how many roles are shared.Lower internal time for the build phase, but still required for requirements, reviews and data owner decisions.Lower for hosting, but still needed for event taxonomy, dashboards, access reviews and consent logic.
Data migrationInternal scripting and validation. Historical data from another tool may need its own export and mapping work.One-time fixed scope. Ask whether historical imports are included and how deduplication is handled.Vendor tools may import history, but limits apply. PostHog's managed imports cover at most one year per direct import job, and a paid plan is required for the import features.
Compliance evidenceInternal work to document masking, retention, access and records of processing. Auditors review your evidence, which DeployOpen would help prepare but does not certify.One-time readiness work to prepare controls and evidence, plus recurring evidence refresh if agreed. Ask for the evidence list in the scope.Vendor may supply security documentation. You still own your own controls and evidence for the processing you configure. Confirm what the vendor provides.

What SaaS pricing looks like at published tiers

SaaS pricing is published per tier, and the tiers are not equivalent, so the first job is to compare like with like. Umami Cloud lists a Hobby plan at $0 per month for up to 100K events with 6 months of retention, a Pro plan at $20 per month for 1 million events with 2 years of retention, and a Business plan at $200 per month for 10 million events with 5 years of retention. Overage on Pro is $0.00003 per extra event and on Business it is $0.00002 per extra event. Umami also states that the self-hosted version is free to run, so the Cloud fee buys hosting, operation and the features Umami lists as Cloud-only, such as email reports and a streaming API. PostHog's pricing works differently. Its pricing page says the first 1 million analytics events are free every month, and the Free plan includes 1 project with 1-year data retention. The Pay-as-you-go plan raises the limit to 6 projects and 7-year retention. Retention is therefore a plan decision as well as a storage decision: if your compliance or investigation window is longer than one year, the Free plan may not meet it. Confirm the retention period you need before you compare event counts, because the two numbers move together on PostHog's plans. OpenReplay Dedicated, a fully managed instance, starts at $199 per month on AWS, GCP or Azure with a 7-day trial. The pricing page places SSO and SAML, SCIM provisioning, roles and permissions, audit trail, a custom SLA and dedicated support in its self-hosted Enterprise edition, which is quoted at custom pricing on multi-year contracts. PostHog also sells SSO, audit logs, custom roles and project permissions as platform packages. A lower entry price therefore may not include the access controls a regulated team needs, so price the tier that includes those controls and confirm in writing which features each published plan actually provides.

Which drivers move each cost line

Six inputs decide whether self-hosted product analytics stays cheap to run or grows into a large operating cost. Each card names the cost line it moves, the direction it moves it, and what to confirm before you ask for a quote.

Event volume and its growth

Event volume sets the size of the database, the ingestion capacity and the hours your team spends on tuning. PostHog's guidance is that open-source deployments suit about 100k events per month and recommends moving to PostHog Cloud above that, so a plan built on today's traffic can break after a product launch. Model volume at 12 and 24 months, per product and per platform. Ask the partner how the hosting and tuning estimate changes at each volume tier.

Session replay volume and retention

Replay storage is usually the largest and least predictable line in a self-hosted stack. Storage grows with the number of sessions recorded, the length of each session and the retention period you set. Shorter retention lowers storage and backup cost but may remove the evidence your support or product teams need. Confirm the sampling rate, the retention period per data class and whether replays are backed up. Ask the partner to price storage at your expected session count.

Hosting region and data residency

Where the platform runs changes both the infrastructure bill and the compliance work. Self-hosting in your own cloud account or data center keeps behavioral data under your control, but you pay for the compute, storage and network in that region and for any second region used for disaster recovery. A cloud region chosen for data residency may cost more than the default one. Confirm the required regions with your privacy team before the hosting design is fixed.

Identity and access controls

SSO, SAML, SCIM provisioning, role-based permissions and audit trails are often sold as paid tiers in SaaS products and as enterprise editions in open-source products. PostHog's pricing page places SSO, audit logs, custom roles and project permissions in platform packages, and OpenReplay lists SSO and SAML, SCIM, roles and audit trail in its self-hosted Enterprise edition at custom pricing. Confirm which features your chosen edition includes, and whether the rest must be built with your identity provider.

Capture-time masking across releases

Masking rules that hide inputs, card fields and personal data must be set in the tracking code and kept correct across every front-end release. Each new page, component or form adds work for the team that owns the rules, and a missed field can expose data in a replay. Effort here is recurring, not one-time. Ask the partner what regression testing of masking is included, how often it runs, and who signs off a release that changes sensitive pages.

Warehouse and mobile SDK integrations

Each data warehouse connection, pipeline job and mobile SDK adds build, test and maintenance effort, and each SDK version must be kept in step with the platform release. Mobile replay and offline event buffering add scope beyond web tracking. Connecting events to a warehouse can also add storage and compute cost in that warehouse. List every destination and SDK in the first scope, and ask for each integration to be priced separately so you can see which ones move the total.

Where self-hosted costs hide

The line items that surprise budget owners are rarely the server bill. They are support, migration and the staff hours spent keeping the stack upgraded and recoverable. 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. OpenReplay's free edition is backed by community support with self-managed retention, and its paid self-hosted Enterprise edition is quoted on custom multi-year contracts that add a custom SLA and dedicated support. Before comparing totals, ask each vendor in writing what support is included at the edition you plan to run, what a paid support tier costs, and whether it covers upgrades and incident response. If the answer is none, the support line is your team's on-call rotation, and it should be costed as staff time.

Migration limits create a second hidden cost. PostHog's managed migrations import historical events from Mixpanel or Amplitude, or from JSONL files in an S3 bucket, but each direct import job covers at most one year of data, events are not deduplicated, and there is no way to selectively delete event data once imported. Historical imports skip ingestion fees when sent with the historical_migration flag, yet a paid product analytics plan is still required to unlock the import features. Plan the migration as a project with its own owner: decide how many years of history you need, run a test import, check for duplicate counts against the old tool, and confirm the paid plan cost before any import starts. Rework after a bad import can be expensive because the data cannot be cleanly removed.

Staff time is the largest recurring line and the easiest to underestimate. Upgrades, backups, storage growth, retention jobs and incident response all land on your platform team unless a partner or retainer takes them. Note that PostHog's self-host documentation says new Kubernetes deployments of its paid self-hosted product are no longer supported, so a cluster-based design that looked reasonable at procurement may need a different target, which changes both build effort and hosting cost. Ask any implementation partner to price upgrades, restore testing and on-call coverage as separate line items in a fixed-scope quote, so you can see which hours you are buying and which you still carry internally.

How to build your own cost estimate

This sequence turns a vague sense that self-hosting is cheaper into a written comparison, built from your own event volumes, retention period and staffing, that you can set against SaaS pricing and partner quotes.

  1. Define monthly event and recording volumes

    Start by counting what you will actually collect: product events per month, session recordings per month, average recording length and the retention period you need for each data type. Product, data and engineering leads should agree the numbers together, using current web and app traffic as the baseline and a growth assumption you can defend. The step is done when you have one table with monthly events, monthly recordings and retention in months, with the source of each figure written beside it. Keep the same retention period for every option you compare later.

  2. Choose the edition and check the license

    Pick the platform and edition that fits the feature list, such as PostHog, OpenReplay or Umami. Then check whether the features you need sit in a directory under a separate license. PostHog's ee/ directory and OpenReplay's ee/ directory are both covered by separate licenses, and PostHog's README says premium features there require a PostHog license on self-hosted instances. Ask counsel to confirm what your use requires, and record the license cost, if any, as its own line. The step is done when the edition and license position are written down and signed off by your legal or procurement contact.

  3. Size the server from vendor minimums

    Use each vendor's published starting point as the floor, not the target. PostHog's self-host documentation recommends a server equivalent to 4 vCPU, 16 GB of RAM and more than 30 GB of storage for its free Docker Compose hobby deployment. OpenReplay's README says a single VM with 2 vCPUs, 8 GB of RAM and 50 GB of storage is enough to start. Your platform engineers should confirm sizing in your own environment against your event and recording volumes, because storage grows with retention. The step is done when you have a server specification per option with a note on which vendor source it came from.

  4. Price the cloud resources with your provider

    Take the server specification and the storage and backup needs and price them with your cloud provider or data center team, including reserved or committed options, outbound data transfer, managed database and object storage if you use them. Include a non-production environment if your change process requires one. The cloud bill recurs every month, so price it as an annual figure. The step is done when a provider-quoted monthly and annual line exists for each option, with the assumptions that drive it listed beside it.

  5. Add implementation and migration scope

    Estimate the one-time work: installation, hardening, tracking plan and SDK integration, consent and masking configuration, dashboards and funnels, and any migration of historical data. Migration deserves its own line because it has specific limits: PostHog's managed migrations import from Mixpanel or Amplitude in jobs covering at most one year of data, without deduplication, and its documentation says a paid product analytics plan is needed to unlock import features. Request a written, fixed-scope quote from any implementation partner, and compare it with an internal estimate built from the same task list. The step is done when each one-time task has an owner, a hours or cost estimate, and a source.

  6. Add operations, support and upgrade hours

    Estimate the recurring work of running the stack: patching, backups and restore tests, monitoring, storage growth management, version upgrades and incident response. Note that PostHog states self-hosted deployments are officially unsupported and that it does not offer customer support for infrastructure questions on self-hosted instances, so support has to come from your team or a partner retainer. OpenReplay's pricing lists community support for its open-source edition and custom SLA support on its enterprise edition. The step is done when you have monthly operations hours by role and a line showing whether support is internal, partner or vendor.

  7. Add internal staff time and opportunity cost

    Count the time your own engineers, analysts and security or privacy staff spend on the platform, including tracking plan maintenance, access reviews, masking tests after front-end releases and records of processing. Multiply hours by the loaded cost your finance team uses for internal labor. This is the line most estimates omit, and it is where a self-hosted option often diverges from a managed one. The step is done when staff hours are listed by role and a loaded rate is applied, with the source of the rate stated.

  8. Compare totals against SaaS tiers over the same retention

    Price each SaaS option at the event and recording volume from the first step, using the vendor's current pricing page and the plan that includes the retention you need. Umami Cloud's published pricing, for example, lists Pro at $20 per month for 1 million events with 2 years of retention, and Business at $200 per month for 10 million events with 5 years of retention, with overage per extra event on those tiers. OpenReplay Dedicated starts at $199 per month on AWS, GCP or Azure. Build the comparison over the same time horizon, say three years, and show one-time and recurring costs separately. Ask each SaaS vendor and each implementation partner for a written quote before you decide. The step is done when a single table shows total cost per option, with the assumptions and quote dates recorded.

When build, partner or SaaS costs least

An in-house build fits teams that already run Kubernetes, databases and observability with spare platform engineering capacity, and whose compliance overhead for analytics data is light. The software itself is free to use under its open-source license, so the spend moves into people and running infrastructure. The main cost risk is that the team takes on the work a vendor would otherwise do: upgrades, backups, capture-time masking tests and on-call support. PostHog's documentation states that self-hosted deployments are officially unsupported and that PostHog does not offer customer support for infrastructure questions, so internal engineers own every incident.

  • Licence cost: The MIT-licensed core of PostHog or Umami carries no fee, but PostHog's premium features in its ee directory need a PostHog license.
  • Infrastructure: PostHog's hobby deployment guidance recommends a server equivalent to 4 vCPU, 16 GB of RAM and more than 30 GB of storage, and that figure grows with event volume.
  • Staff time: Recurring upgrades, database maintenance and dashboard support draw on engineers who may be needed elsewhere.
  • Masking ownership: Your team must test that masking holds after each front-end release.
  • Exit cost: Build choices made early are harder to reverse once replays hold years of data.

Before choosing this path, ask who is on call for the analytics stack and what that person will cost in time each quarter.

When an implementation partner costs less than building alone

An implementation partner costs less than building alone when the in-house cost is mostly recurring and the partner cost is one-time and bounded. A fixed-scope engagement puts a price on deployment, masking and retention configuration, integration and handover, and that number stays the same whatever the work turns out to take. In-house work carries costs that do not show up on a hosting invoice: engineer hours for upgrades and patches, on-call coverage for a session replay store that cannot go down quietly, and the learning curve for capture-time masking selectors, input redaction and retention settings that a team may only touch once a year. Compare those recurring lines over the period you expect to run the platform, not against the first month of a free Docker Compose install.

DeployOpen works on fixed scope agreed in writing before work starts. It does not publish a price list, so the reader should ask for a quote built from a written scope that names the platform and edition (for example, whether the team needs the open-source build or a paid edition), the hosting target, the masking and retention rules to be configured, the integrations, the handover documentation and any post-go-live support or retainer. Ask the partner to separate one-time deployment work from recurring items so the two can be compared with your internal staff time. Confirm with the vendor which features sit in paid packages before you assume they are included in the quote. Note that PostHog's self-host documentation states that it does not offer customer support for self-hosted instances, so the support line has to come from somewhere.

DeployOpen prepares systems, controls and evidence for compliance assessments, but it does not issue audit reports, attestations or certifications. Any partner quote should therefore cover the evidence package (configuration records, masking tests, retention settings, access reviews and architecture documentation) but not promise an outcome from an auditor. The assessor who reviews your program decides what the evidence proves. Plan for that assessment as a separate cost in your budget, and ask the partner to name the artifacts it will hand over so your compliance lead can check them against the assessor's request list before the review begins.

Product analytics cost questions buyers ask

What is the licence cost of self-hosting PostHog, OpenReplay or Umami?

The open-source editions carry no licence fee to run, but each vendor draws a line between free code and paid features, so check which edition you are deploying. PostHog's MIT-licensed code sits alongside an ee/ directory that needs a PostHog license for premium features on a self-hosted instance. OpenReplay's Community edition is AGPLv3 with an ee/ directory under a separate commercial license, and its self-hosted Enterprise edition is priced on custom multi-year contracts that add SSO, SCIM and an audit trail. Umami is MIT licensed and free to self-host, though Umami Cloud adds features such as email reports that the self-hosted version lacks. Your real licence cost is whatever features you need beyond the free edition, so confirm that list with each vendor before you budget.

How long does a self-hosted product analytics implementation take?

Duration depends on scope, and it must be agreed in writing before work starts. The main variables are the number of products and environments, how many events and replays you need to capture, how much consent and masking configuration is required, whether historical data must be migrated, and how many identity and integration points connect to the stack. DeployOpen works on fixed-scope engagements, so scope, deliverables and timelines are set in a written agreement rather than estimated from general figures. Ask any partner to break the timeline into discovery, deployment, instrumentation, testing and handover, and to name the dependencies on your side.

What does an implementation need from our own team?

Your team supplies decisions and access, while the implementation partner supplies the build. Expect to name an owner for the tracking plan and the event naming rules, provide cloud accounts or a data center target, and approve what may be captured, masked or excluded. Engineers need to add or review SDK calls in your front-end and mobile code, and someone must sign off on retention periods and access roles. Teams that underestimate this input usually lose time in review cycles rather than in technical work, so agree on named reviewers and response times in the scope document.

Can our engineers deploy and run PostHog or OpenReplay without a partner?

Yes, a capable platform team can deploy the free editions, and the vendors document that path. PostHog's self-host documentation offers a Docker Compose hobby deployment under MIT with a deploy-hobby script and recommends a server equivalent to 4 vCPU, 16 GB of RAM and more than 30 GB of storage. OpenReplay lists a single VM with 2 vCPUs, 8 GB of RAM and 50 GB of storage as enough to start. The gap appears later. PostHog states that self-hosted deployments are officially unsupported and that it offers no customer support for infrastructure questions, so upgrades, backups, sizing, masking tests and incident response fall to your team. Decide who carries that work for the life of the system before choosing build over partner.

Which cost lines recur after go-live?

Infrastructure, staff time and support recur, while design and initial deployment are usually one-time. Recurring lines include compute and storage for the analytics database and replay storage, backups, monitoring, upgrades to new releases, and on-call coverage. Storage grows with event volume and replay retention, so retention settings are a direct cost lever. Support is recurring too: either internal engineers hold the knowledge, or you pay a partner through a retainer for upgrades, testing and support. For each line, ask for the one-time portion, the monthly portion and the assumptions behind them.

When is SaaS cheaper than self-hosting product analytics?

SaaS is usually cheaper at low volume with no data residency constraints, and self-hosting becomes more attractive as data control and volume requirements grow. Umami Cloud's Hobby plan is $0 per month for up to 100K events with 6 months of retention, Pro is $20 per month for 1 million events with 2 years of retention, and Business is $200 per month for 10 million events with 5 years of retention. PostHog's pricing page says the first 1 million analytics events are free each month. PostHog's README also says open-source deployments should scale to about 100k events per month before migrating to its cloud. Compare those published prices with your own staffing, hosting and support costs, and include the value of keeping data inside your infrastructure for enterprise deals or regulated data.

How DeployOpen scopes, delivers and supports the work

DeployOpen plans, implements, hardens, documents and supports self-hosted analytics inside your own cloud accounts, data centers or air-gapped networks, so the cost you model reflects your environment rather than a generic plan. Engagements are fixed-scope, with deliverables and timelines agreed in writing before work starts.

How we scope

  • Written scope that separates the platform choice, hosting build, instrumentation and migration of existing data into named deliverables.
  • Cost model covering your infrastructure, event volume assumptions, retention periods and the internal staff time your team will carry.
  • Confirmation of which features need a paid license, such as premium modules, and who owns that license decision.

How we build

  • Deployment of the chosen platform in your infrastructure, with sizing tested against the event volume you expect at launch and at growth.
  • Capture-time masking, retention settings and access controls configured and tested against the privacy requirements you set.
  • Backup, upgrade procedure and monitoring set up so running costs are visible and predictable before go-live.

How we hand over

  • Documentation of architecture, configuration, runbooks and the recurring cost lines your finance team needs to budget.
  • Knowledge transfer to your platform and analytics staff so the internal effort estimate in the model can be verified.
  • Evidence pack for your assessors covering configuration, access and retention settings, ready for independent review.

How we support

  • Ongoing support, upgrades and continuous testing are available as retainers, priced from the agreed scope rather than a list price.
  • Retainer terms cover which upgrades, patches and incident response are included, so you can compare them with SaaS subscription terms.
  • Periodic security testing of the analytics stack and its public tracking endpoints, scoped in writing with your team.

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.