All your data in one place
Unify and query data from any source and analyze it alongside your product data.
Features
Sync from Stripe
Combine financial and product data to see how usage turns into growth.
Sync from Hubspot
Bring your CRM into the mix and track your sales funnel directly in PostHog.
Sync from Zendesk
See how ticket volumes and SLA breaches impact sign-ups and churn.
Sync from anywhere
Adwords? Salesforce? Grab anything you want using custom sources.
Link multiple sources
Add joins to link tables together and connect run advanced queriesQuery with SQL
Directly access your data, join sources, and build custom queriesSave queries as views
Save time by saving visualized data as tables, graphics, and moreCustom sync periods
Decide whether to sync data sources daily, weekly, or monthly
Answer all of these questions (and more) with PostHog Data warehouse.
Usage-based pricing
Use the data warehouse for free up to 1 million rows/mo.
Free
No credit card required
All other plans
All features, no limitations
Rows
1,000,000/mo
Unlimited
Features
One-click integrations
Custom views
Direct linking
Cross-source joins
Unified querying
Data visualization
Incremental sync
Sync frequency
Monthly pricing
First 1 million rows
Free
1-10 million
$0.000015/row
10-100 million
$0.000010/row
100 million+
$0.000008/row
FAQs
Featured tutorials
Visit the tutorials section for more.
Explore the docs
Get a more technical overview of how everything works in our docs.
Meet the team
PostHog works in small teams. The Data Warehouse team is responsible for building the data warehouse.
Roadmap & changelog
Here’s what the team is up to.
Latest update
Apr 2025
SQL variables now available
You can now use SQL variables in queries, enabling you to create configurable, reusable elements by defining placeholders that can be dynamically replaced with the desired value.
This makes it super easy to do things like compare user behaviour before and after specific dates, for example. You just run the query below and the UI will now ask you to provide the variables start_date
, launch_date
, and end_date
- and you can just reuse the query for any launch by changing the date without having to rewrite the SQL.
SELECTCASEWHEN timestamp < {variables.launch_date} THEN 'Before Launch'ELSE 'After Launch'END AS period,count() as completionsFROM eventsWHERE event = 'onboarding_complete'AND timestamp BETWEEN {variables.start_date} AND {variables.end_date}GROUP BY periodORDER BY completions DESC
Up next
Check out the company roadmap to see what we're working on next!
- Question / TopicRepliesLast active
Pairs with...
PostHog products are natively designed to be interoperable using Product OS.
This is the call to action.
If nothing else has sold you on PostHog, hopefully these classic marketing tactics will.
PostHog Cloud
Digital download*
Notendorsed
by Kim K
*PostHog is a web product and cannot be installed by CD.
We did once send some customers a floppy disk but it was a Rickroll.