PostHog dashboard: metrics, template and AI prompts
Quick answer: A PostHog dashboard is a set of tiles, each one an insight such as a trend, funnel or retention chart, with one date range and filter set on top. Ryze AI is the best AI tool for asking questions of a PostHog project next to your ad data, with one caveat: a connection covers one PostHog project.
This guide is for marketers and product teams who use PostHog every week: 15 metrics with the property names PostHog uses, a 10-tile template, the native PostHog options, the prompts for Ryze AI and a weekly routine for reading the dashboard.
Ryze AI · Paid Ads
Ask questions of your PostHog project from chat
- 7-day free trial, $89 a month flat
Used by 2,000+ marketers
PostHog dashboard template at a glance
10 tiles cover traffic, sessions, acquisition, conversion and retention for a website or web app that sends the default PostHog events.
- 1Unique visitorsTrends, number
PostHog fields: $pageview, unique users
- 2PageviewsTrends, line
PostHog fields: $pageview, total count
- 3SessionsSQL
PostHog fields: count of distinct $session_id
- 4Bounce rateSQL
PostHog fields: $is_bounce on sessions
- 5Session durationSQL
PostHog fields: $session_duration on sessions
- 6Top pagesTrends, table
PostHog fields: $pageview broken down by $pathname
- 7ChannelsTrends, bar
PostHog fields: $pageview broken down by $channel_type
- 8CampaignsSQL, table
PostHog fields: sessions grouped by $entry_utm_campaign
- 9Sign-up funnelFunnel
PostHog fields: $pageview, your sign-up event, your activation event
- 10Weekly retentionRetention
PostHog fields: a start event and a return event
| # | Tile | Insight type | PostHog fields |
|---|---|---|---|
| 1 | Unique visitors | Trends, number | $pageview, unique users |
| 2 | Pageviews | Trends, line | $pageview, total count |
| 3 | Sessions | SQL | count of distinct $session_id |
| 4 | Bounce rate | SQL | $is_bounce on sessions |
| 5 | Session duration | SQL | $session_duration on sessions |
| 6 | Top pages | Trends, table | $pageview broken down by $pathname |
| 7 | Channels | Trends, bar | $pageview broken down by $channel_type |
| 8 | Campaigns | SQL, table | sessions grouped by $entry_utm_campaign |
| 9 | Sign-up funnel | Funnel | $pageview, your sign-up event, your activation event |
| 10 | Weekly retention | Retention | a start event and a return event |
The tile names are yours to change. Swap the sign-up and activation events for the events your own product sends, since custom events have no $ prefix.
5 ways to get a PostHog dashboard in 2026
PostHog builds dashboards itself, so the first choice is whether to build by hand, start from a template or ask an AI client.
The PostHog dashboards docs describe templates, Blank Dashboards, tiles for the core insight types, text cards, shared links and a Terraform provider. PostHog also ships a separate web analytics dashboard.
PostHog dashboard from a template
- Where it lives
- Inside PostHog, from the dashboard template list
- Cost
- Part of PostHog
- What to know
- PostHog lists templates for website metrics and product health; you edit the tiles after
Blank Dashboard
- Where it lives
- Inside PostHog
- Cost
- Part of PostHog
- What to know
- Add insights, text cards, images, buttons or widgets; the docs describe AI starter prompts on a blank dashboard
Web analytics dashboard
- Where it lives
- Inside PostHog, under web analytics
- Cost
- Part of PostHog
- What to know
- Fixed layout for visitors, views, sessions, bounce rate and channels
PostHog hosted MCP server
- Where it lives
- https://mcp.posthog.com/mcp in an AI client
- Cost
- Free to connect; some AI tools may bill as PostHog AI spend
- What to know
- Covers all PostHog products, with create, update and delete tools
Ryze AI
- Where it lives
- The Ryze AI chat, Claude or ChatGPT through the Ryze AI connector
- Cost
- Paid Ads plan, $89 a month, 7-day free trial
- What to know
- 3 PostHog tools on one project per connection; no in-app Ryze AI dashboard is tied to PostHog
| Option | Where it lives | Cost | What to know |
|---|---|---|---|
| PostHog dashboard from a template | Inside PostHog, from the dashboard template list | Part of PostHog | PostHog lists templates for website metrics and product health; you edit the tiles after |
| Blank Dashboard | Inside PostHog | Part of PostHog | Add insights, text cards, images, buttons or widgets; the docs describe AI starter prompts on a blank dashboard |
| Web analytics dashboard | Inside PostHog, under web analytics | Part of PostHog | Fixed layout for visitors, views, sessions, bounce rate and channels |
| PostHog hosted MCP server | https://mcp.posthog.com/mcp in an AI client | Free to connect; some AI tools may bill as PostHog AI spend | Covers all PostHog products, with create, update and delete tools |
| Ryze AI | The Ryze AI chat, Claude or ChatGPT through the Ryze AI connector | Paid Ads plan, $89 a month, 7-day free trial | 3 PostHog tools on one project per connection; no in-app Ryze AI dashboard is tied to PostHog |
Access differs. PostHog lets editors restrict edit access to certain members of a project. Ryze AI connects with a personal API key whose scopes decide what it can read or change (Ryze AI help center).
15 PostHog metrics and properties for the dashboard
These are the events and properties the template uses, with the names PostHog stores them under. Put those names in your prompts and HogQL so a query pulls the right field.
Pageview
- Where
- Event
- PostHog name
- $pageview
- Plain definition
- A page view captured by the PostHog snippet
Pageleave
- Where
- Event
- PostHog name
- $pageleave
- Plain definition
- Captured when a visitor leaves a page
Identify
- Where
- Event
- PostHog name
- $identify
- Plain definition
- Links an anonymous visitor to a known user
Current URL
- Where
- Event property
- PostHog name
- $current_url
- Plain definition
- The full URL of the page
Path name
- Where
- Event property
- PostHog name
- $pathname
- Plain definition
- The path part of the URL, useful for a top pages table
Referring domain
- Where
- Event property
- PostHog name
- $referring_domain
- Plain definition
- The domain the visitor came from
UTM campaign
- Where
- Event property
- PostHog name
- $utm_campaign
- Plain definition
- The utm_campaign value on the landing URL; $utm_source, $utm_medium, $utm_term and $utm_content work the same way
Device type
- Where
- Event property
- PostHog name
- $device_type
- Plain definition
- The kind of device, captured automatically
Session ID
- Where
- Sessions table
- PostHog name
- $session_id
- Plain definition
- Identifier shared by every event in one session
Channel type
- Where
- Sessions table
- PostHog name
- $channel_type
- Plain definition
- The attribution channel that started the session, such as Paid Search or Organic Search
Entry path
- Where
- Sessions table
- PostHog name
- $entry_pathname
- Plain definition
- The pathname of the page where the session started
Entry UTM campaign
- Where
- Sessions table
- PostHog name
- $entry_utm_campaign
- Plain definition
- The UTM campaign of the session start page
Pageview count
- Where
- Sessions table
- PostHog name
- $pageview_count
- Plain definition
- Pages viewed during the session
Session duration
- Where
- Sessions table
- PostHog name
- $session_duration
- Plain definition
- Total length of the session
Bounce
- Where
- Sessions table
- PostHog name
- $is_bounce
- Plain definition
- Flags a session as a bounce
| Field | Where | PostHog name | Plain definition |
|---|---|---|---|
| Pageview | Event | $pageview | A page view captured by the PostHog snippet |
| Pageleave | Event | $pageleave | Captured when a visitor leaves a page |
| Identify | Event | $identify | Links an anonymous visitor to a known user |
| Current URL | Event property | $current_url | The full URL of the page |
| Path name | Event property | $pathname | The path part of the URL, useful for a top pages table |
| Referring domain | Event property | $referring_domain | The domain the visitor came from |
| UTM campaign | Event property | $utm_campaign | The utm_campaign value on the landing URL; $utm_source, $utm_medium, $utm_term and $utm_content work the same way |
| Device type | Event property | $device_type | The kind of device, captured automatically |
| Session ID | Sessions table | $session_id | Identifier shared by every event in one session |
| Channel type | Sessions table | $channel_type | The attribution channel that started the session, such as Paid Search or Organic Search |
| Entry path | Sessions table | $entry_pathname | The pathname of the page where the session started |
| Entry UTM campaign | Sessions table | $entry_utm_campaign | The UTM campaign of the session start page |
| Pageview count | Sessions table | $pageview_count | Pages viewed during the session |
| Session duration | Sessions table | $session_duration | Total length of the session |
| Bounce | Sessions table | $is_bounce | Flags a session as a bounce |
- Bounce in the web analytics dashboard means a session with one pageview, no autocaptures and under 10 seconds on the page; the 10-second threshold is configurable (PostHog). The sessions table describes $is_bounce as a single pageview session, so compare like with like.
- Channels: PostHog classifies traffic into channel types such as Direct, Paid Search, Paid Social, Organic Search, Referral, Email and AI, and lets you add custom channel rules (PostHog).
- Unique users, total count and active users are the aggregation choices on a Trends insight, with property sum, average and percentiles also listed (PostHog).
- Custom events have no $ prefix. Built-in properties do (PostHog HogQL docs).
Event and property names come from the PostHog events docs and the sessions table docs. Check them in your own project, because a self-built tracking setup can send different names.
How to build the template in PostHog
The 10 tiles use the insight types PostHog lists for dashboards: trends, funnels, retention and SQL.
Create the dashboard
Create a new dashboard in PostHog from a template, or choose Blank Dashboard to start empty.
Add the trend tiles
Add Trends insights for tiles 1, 2, 6 and 7. Choose unique users for visitors and total count for pageviews, then break down by $pathname or $channel_type.
Add the SQL tiles
For tiles 3, 4, 5 and 8, add SQL insights over the sessions table. The dashboard date range is available in SQL as filters.dateRange.from.
Add the funnel and retention
Build a funnel from $pageview to your sign-up and activation events, and a retention insight with a start event and a return event.
Set the date range and share
Set the dashboard date range and filters, which apply to every insight unless a tile overrides them. Share by public link or embed if you need to.
Funnels count a visitor as a drop-off after the conversion window ends, and PostHog offers sequential, strict and any-order step matching (PostHog funnels docs). Retention separates first time and recurring users, and stickiness answers a different question: how often users came back (PostHog retention docs).
The prompt option in Ryze AI
Ryze AI reads the insights, dashboards and HogQL results of the connected PostHog project, and creates or edits insights and dashboards when you ask.
Create a personal API key
In PostHog, open Settings, Personal API keys, create a key with read access to the project, including the Query and Insight scopes, and copy the phx_ key. Add write scopes only if the agent should change objects.
Connect PostHog
In the Ryze AI app open Integrations, click Connect on the PostHog card, paste the key, enter the host (https://us.posthog.com, https://eu.posthog.com or a self-hosted URL), click Continue, then pick the Project and click Save.
Use the chat or a client
Ask in the Ryze AI chat, or add https://connector.get-ryze.ai/mcp in Claude or ChatGPT. If you added the connector before connecting PostHog, remove it, add it again and start a new chat.
Send the prompt
Ask for the numbers or for a new dashboard, using the PostHog names from the table above.
Creating a dashboard needs a key with write scopes. A key with read scopes only keeps the agent read-only, because PostHog rejects any change (Ryze AI help center). Setup per client is in the PostHog MCP page.
4 prompts to read a PostHog dashboard in Claude or ChatGPT
With the connector in Claude or ChatGPT, the same fields come back as tables in the chat.
The connector has 3 PostHog tools: posthog__read, posthog__write and posthog__delete. HogQL queries need a time window and a row limit of 1,000 at most, because PostHog stops unbounded queries (Ryze AI help center).
Prompt 4 needs Google Ads connected in the same workspace. More dashboard layouts for other platforms are in the Google Analytics dashboard and Google Ads dashboard guides.
A weekly review routine for the dashboard
Read the dashboard on a fixed day and compare full weeks, so each week covers the same weekdays.
Monday
- What to do
- Compare the last full week with the week before: visitors, sessions, channels and top pages
- Why
- Full weeks cover the same weekdays
Monday
- What to do
- Open the sign-up funnel and read the step with the largest drop
- Why
- Shows where visitors stop
After a release
- What to do
- Check $pageview counts for the pages you changed
- Why
- A tracking break shows as a page with no views
Monthly
- What to do
- Read the retention table for the newest cohorts
- Why
- Retention changes slowly
Monthly
- What to do
- Remove tiles nobody opened and rename unclear ones
- Why
- A short dashboard gets read
| When | What to do | Why |
|---|---|---|
| Monday | Compare the last full week with the week before: visitors, sessions, channels and top pages | Full weeks cover the same weekdays |
| Monday | Open the sign-up funnel and read the step with the largest drop | Shows where visitors stop |
| After a release | Check $pageview counts for the pages you changed | A tracking break shows as a page with no views |
| Monthly | Read the retention table for the newest cohorts | Retention changes slowly |
| Monthly | Remove tiles nobody opened and rename unclear ones | A short dashboard gets read |
Send it to the team with a PostHog subscription
PostHog subscriptions deliver a dashboard or insight by email or Slack on a daily, weekly or monthly schedule, or a custom interval such as every 2 weeks. The docs say Free and open-source plans support up to 5 subscriptions.
In Ryze AI, a scheduled task runs without an approval step, so give a scheduled task a read-only key if it should not change anything.
PostHog dashboards vs the PostHog MCP server vs Ryze AI
PostHog's own dashboards are the system of record. An AI client is a second way to read and edit the same project.
How you work
- PostHog dashboards
- Click through tiles and insight editors
- PostHog hosted MCP server
- Ask an AI client; URL https://mcp.posthog.com/mcp
- Ryze AI
- Ask in the Ryze AI chat, Claude or ChatGPT
Sign-in
- PostHog dashboards
- Your PostHog login
- PostHog hosted MCP server
- OAuth with PostHog recommended; a personal API key works for clients without OAuth
- Ryze AI
- Personal API key and host in Ryze AI, then OAuth to the Ryze AI connector
PostHog products
- PostHog dashboards
- All of PostHog
- PostHog hosted MCP server
- Analytics, flags, experiments, error tracking, surveys, SQL and more
- Ryze AI
- Insights, dashboards, flags, cohorts, persons, event definitions and HogQL
Other data
- PostHog dashboards
- PostHog data
- PostHog hosted MCP server
- PostHog only
- Ryze AI
- Ad platform data in the same workspace
Read-only
- PostHog dashboards
- Edit access can be restricted
- PostHog hosted MCP server
- Read-only header or query parameter, or read scopes
- Ryze AI
- Give the key read scopes only
Projects
- PostHog dashboards
- Cross-project dashboards exist
- PostHog hosted MCP server
- Per credential
- Ryze AI
- One project per connection
Price
- PostHog dashboards
- Part of PostHog
- PostHog hosted MCP server
- Free to connect; some AI tools may bill as PostHog AI spend
- Ryze AI
- Any Ryze AI plan or trial; Paid Ads $89 a month
Best for
- PostHog dashboards
- Building and sharing the dashboard
- PostHog hosted MCP server
- Working across all PostHog products
- Ryze AI
- PostHog questions next to ad data
| Question | PostHog dashboards | PostHog hosted MCP server | Ryze AI |
|---|---|---|---|
| How you work | Click through tiles and insight editors | Ask an AI client; URL https://mcp.posthog.com/mcp | Ask in the Ryze AI chat, Claude or ChatGPT |
| Sign-in | Your PostHog login | OAuth with PostHog recommended; a personal API key works for clients without OAuth | Personal API key and host in Ryze AI, then OAuth to the Ryze AI connector |
| PostHog products | All of PostHog | Analytics, flags, experiments, error tracking, surveys, SQL and more | Insights, dashboards, flags, cohorts, persons, event definitions and HogQL |
| Other data | PostHog data | PostHog only | Ad platform data in the same workspace |
| Read-only | Edit access can be restricted | Read-only header or query parameter, or read scopes | Give the key read scopes only |
| Projects | Cross-project dashboards exist | Per credential | One project per connection |
| Price | Part of PostHog | Free to connect; some AI tools may bill as PostHog AI spend | Any Ryze AI plan or trial; Paid Ads $89 a month |
| Best for | Building and sharing the dashboard | Working across all PostHog products | PostHog questions next to ad data |
PostHog documents API limits for personal API keys: 240 requests a minute and 1,200 an hour for analytics endpoints, 2,400 an hour for the query endpoint and 480 a minute and 4,800 an hour for create, update and delete calls, counted per key (PostHog API docs). The hosted MCP server has its own limit of 480 requests a minute and 4,800 an hour per credential (PostHog MCP docs).
Pick PostHog itself for the shared dashboard, the hosted MCP server when you want every PostHog product in one AI client, and Ryze AI when PostHog is one of several platforms in the same chat. The PostHog MCP page covers the tools and setup.
Common PostHog dashboard problems and fixes
Most wrong numbers on a dashboard come from tracking setup, a mismatched definition or a filter set at the wrong level.
A tile ignores the dashboard filter
- Likely cause
- The tile has its own filter, and tile-level filters take precedence
- Fix
- Remove the tile filter or set it on purpose
Bounce rate differs between two places
- Likely cause
- The web analytics dashboard and $is_bounce use different wording
- Fix
- Use one definition and write it in a text card
Custom event returns nothing
- Likely cause
- The event name differs from what your code sends
- Fix
- Check the exact event name in the project's event definitions
A HogQL query stops or returns nothing
- Likely cause
- PostHog stops unbounded queries
- Fix
- Ask for a date range and a row limit of 1,000 or fewer
Key rejected in Ryze AI
- Likely cause
- The host does not match the account region, or the key lacks the Query and Insight scopes
- Fix
- Use the right host and recreate the key with those scopes
PostHog tools missing in Claude or ChatGPT
- Likely cause
- PostHog was connected after the connector was added
- Fix
- Remove the Ryze AI connector, add it again and open a new chat
| Problem | Likely cause | Fix |
|---|---|---|
| A tile ignores the dashboard filter | The tile has its own filter, and tile-level filters take precedence | Remove the tile filter or set it on purpose |
| Bounce rate differs between two places | The web analytics dashboard and $is_bounce use different wording | Use one definition and write it in a text card |
| Custom event returns nothing | The event name differs from what your code sends | Check the exact event name in the project's event definitions |
| A HogQL query stops or returns nothing | PostHog stops unbounded queries | Ask for a date range and a row limit of 1,000 or fewer |
| Key rejected in Ryze AI | The host does not match the account region, or the key lacks the Query and Insight scopes | Use the right host and recreate the key with those scopes |
| PostHog tools missing in Claude or ChatGPT | PostHog was connected after the connector was added | Remove the Ryze AI connector, add it again and open a new chat |
Sources: the PostHog dashboards docs for filter precedence and the Ryze AI PostHog help page for connection errors. A dashboard can only show what PostHog recorded.
Where Ryze AI fits
Ryze AI reads one PostHog project and changes insights, dashboards, feature flags and cohorts when asked.
The tools are posthog__read, posthog__write and posthog__delete. Deleting an object is irreversible and only runs on an explicit request. The Ryze AI chat starts on Skip all approvals, so the agent runs PostHog tools on its own by default. Switch the Tool approvals picker to Approve write and delete, or in Claude set write and delete tools to Needs approval under Customize, Connectors, Ryze AI, Tool permissions.
The Paid Ads plan is $89 a month with a 7-day free trial. The PostHog tools work on any active Ryze AI plan or trial, including SEO Starter at $129 a month with a 3-day free trial and Agency at $279 a month. Annual billing is 30% off the first year. See the integrations hub for other platforms.
Sources
Checked November 10, 2026
- PostHog docs: Dashboards
- PostHog docs: Web analytics dashboard
- PostHog docs: Events and default properties
- PostHog docs: Sessions table
- PostHog docs: SQL expressions (HogQL)
- PostHog docs: Insights
- PostHog docs: Trends
- PostHog docs: Funnels
- PostHog docs: Retention
- PostHog docs: Subscriptions
- PostHog docs: API overview and rate limits
- PostHog docs: Model Context Protocol server
- Ryze AI help center: PostHog
The verdict
A useful PostHog dashboard is small: a few headline numbers, a trend, a channel breakdown, one funnel and one retention table built from the fields above. PostHog builds and shares it for you.
If you also want to ask questions of the project from a chat, next to your ad accounts, Ryze AI does that on one PostHog project per connection.





