Skip to content

fix(pricing): show AI Observability on the pricing page#17328

Open
posthog[bot] wants to merge 2 commits into
masterfrom
posthog-code/fix-ai-observability-pricing
Open

fix(pricing): show AI Observability on the pricing page#17328
posthog[bot] wants to merge 2 commits into
masterfrom
posthog-code/fix-ai-observability-pricing

Conversation

@posthog
Copy link
Copy Markdown
Contributor

@posthog posthog Bot commented Jun 5, 2026

Changes

The AI Observability product stopped appearing on /pricing after "LLM analytics" was renamed.

Root cause: the rename changed the product's handle to ai_observability, but the billing service still exposes this product under its original type llm_analytics. useProducts joins static product data to live billing data on billingProduct.type === product.handle, so the join returned undefined and the product was left with no billingData/unit. Both pricing surfaces filter those out — the calculator requires unit (Tabbed.tsx) and the rates accordion requires billingData (PricingAccordion.tsx) — so AI Observability silently disappeared.

Fix: decouple the billing-API key from the display handle with a new optional billingType field (every other product falls back to handle, so behavior is unchanged), and set billingType: 'llm_analytics' on AI Observability. Also fixed a stale llm_analytics reference in one customer's toolsUsed.

Verified locally: AI Observability now renders in the calculator tabs and the rates accordion with its billing tiers (From $0.00006/event, first 100k free).

Checklist

  • I've read the docs and/or content style guides.
  • Words are spelled using American English
  • Use relative URLs for internal links
  • I've checked the pages added or changed in the Vercel preview build
  • If I moved a page, I added a redirect in vercel.json

Created with PostHog Code

After renaming "LLM analytics" to "AI Observability", the product's `handle`
was changed to `ai_observability`, but the billing service still exposes it
under its original type `llm_analytics`.

`useProducts` joins static product data to live billing data on
`billingProduct.type === product.handle`, so the join returned `undefined`,
leaving the product with no `billingData`/`unit`. Both pricing surfaces filter
those out (calculator requires `unit`, accordion requires `billingData`), so
AI Observability silently disappeared from /pricing.

Decouple the billing-API key from the display handle via a new optional
`billingType` field (falling back to `handle` for every other product) and set
`billingType: 'llm_analytics'` on AI Observability. Also fix a stale
`llm_analytics` reference in a customer's `toolsUsed`.

Verified locally: AI Observability now renders in the calculator tabs and the
rates accordion with its billing tiers (From $0.00006/event, first 100k free).

Generated-By: PostHog Code
Task-Id: e5d5edce-1e9b-4f40-9a88-3f53b5ba945f
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 5, 2026

Deploy preview

Status Details Updated (UTC)
🟢 Ready View preview Jun 05, 2026 06:22PM

Use a precise structural assertion (`{ billingType?: string }`) instead of
`as any` when resolving the billing-data join key, and pull it into a named
`billingType` local for readability. No behavior change.

Generated-By: PostHog Code
Task-Id: e5d5edce-1e9b-4f40-9a88-3f53b5ba945f
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant