Product1 distinct publisher3 min readUpdated
PostHog asked Claude, Cursor and its own assistant the same revenue question and got three answers. Its remedy was a governed catalog of definitions stored as ordinary SQL tables.
The Product Desk · Product desk
Compiled by The Product DeskSomething wrong?How this is made
PostHog put the same question to three AI tools, Claude, Cursor and its own PostHog AI, asking what MRR was last month, and got three different queries and three different numbers [1]. The interesting part is the diagnosis: according to the company's own account, the models were not the problem, the absence of a written definition was [4][8].
The failure modes are specific. One tool summed a Stripe table, a second found a slightly different Stripe table, and the third tried to reconstruct recurring revenue from raw events and got the proration wrong [2]. Every method and number looked plausible, and PostHog says there was no way to tell which was right [3]. Zero of the three agreed [22].
Three things at PostHog existed only as tribal memory: what a metric actually is, which tables to trust and which to avoid, and how sources join [11]. The company notes that a mature project imports dozens of sources and builds hundreds of data models, plenty of which could plausibly answer "revenue", while only one is current and blessed by finance [12]. The join logic is worse, because it is undocumented procedure: a Stripe customer ID maps to an organization property only after it is reformatted, and nothing records that except the analyst who worked it out last time [13]. Human analysts hit the same wall [6]. The difference, PostHog argues, is that agents answer confidently and fill gaps by hallucinating, and nobody thinks to check [7].
The remedy is described as a dictionary of definitions that both humans and agents read from: define a metric once, approve it once, and subsequent queries return the same number [9]. It does not copy data, replace the warehouse or move rows; it describes what is already there [10]. PostHog's own definition is a governed catalog that tells people and machines what each metric is, which tables to trust, and how sources connect [15], where "governed" means nothing becomes official until a human approves it [16].
The implementation detail worth copying is that the catalog is just SQL [17]. Definitions appear as ordinary tables, metrics are a table, and there is no bespoke catalog API for an agent to learn; anything that can execute SQL can already read the whole layer, so discovery is a query rather than an integration [17][18]. The intended behaviour change is small and mechanical: the agent's first move is to check whether an approved metric exists, and if it does, it runs the governed definition instead of writing its own [19]. In PostHog's architecture this sits inside a context warehouse that already pools product events, imported sources such as Stripe, and data models [20].
Two caveats. This is a vendor writing about the product it is building, with no published accuracy measurements, and PostHog's small-company hedge is honest: if you interact with a handful of tables you probably know where everything is [14].
Watch the approval queue. Governance means a human gates every definition [16], and PostHog also says agents will happily draft metric definitions when pointed at a schema [21], which puts drafting capacity well ahead of review capacity. Also watch whether agents check the catalog first in practice rather than reaching for their own SQL [19], and whether undocumented join logic like the reformatted Stripe key ever makes it into the catalog at all [13].
Follow any of these and your For You feed starts watching them — no settings page required.
Ranked by verification strength, evidence, and original report placement.
Asking Claude, Cursor, and PostHog AI the same question, "what was our MRR last month?", produced three different queries and three different numbers.
One tool summed a Stripe table, one found a slightly different Stripe table, and one tried to reconstruct recurring revenue from raw events and got the proration wrong.
Every method and number was plausible, but there was no way to tell which was right.
What "MRR" means at PostHog, which table holds it, and how it is calculated all lived in people's heads, so every agent session reinvented the definition from scratch, slightly differently.
Humans have the same problem: every new analyst needs to learn which revenue table is the real one and how Stripe is connected.
A semantic layer is a dictionary of definitions that both agents and humans read from: you define MRR once, approve it once, and every query from then on returns the same number.
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
Single first-party account, no artifacts
All claims rest on one vendor blog post. The core diagnostic — three tools, three numbers — is a one-off, unlogged, unrepeated experiment with no prompts, queries, or outputs published, and the corrective claim is never re-tested. Implementation details (SQL-table catalog, proposed/approved statuses, drift flag) are credible self-description of the author's own system but are unverifiable externally.
Vendor self-deployment only
The only adoption evidence is PostHog running the semantic layer inside its own context warehouse and describing the shipped governance mechanics. There are no customer deployments, usage figures, availability or pricing statements, or third-party implementations in the supplied source.
Modestly overstated
The problem framing is grounded and deliberately unglamorous, and the post is careful about what a semantic layer does not do. But three universalising claims outrun the evidence: that a smarter model cannot fix the divergence, that a catalog yields the same number every time, and that agents are good at drafting governance — none is measured, and the original three-tool test is never re-run against the shipped layer. Positive but small.
Vendor promoting own feature
The sole source is PostHog's own blog, written by the team that built the semantic layer into the product it sells. The narrative structure — a problem that only a governed catalog inside PostHog's context warehouse resolves — directly serves product positioning, and the two competing tools named as failing (Claude, Cursor) are outside the vendor's stack. No independent voice offsets this.
Moderate-low
Confidence is limited by a one-publisher cluster with clear commercial interest and no independent replication. What can be held with reasonable confidence is descriptive: PostHog built a governed, SQL-table-backed definition catalog with human approval and drift signals, and observed divergent agent answers to one revenue question. Causal and market claims remain unverified.
product
A 2x LLM bill is not a bug report: token spend is an observability problem1 distinct publisher
build
Notion's agent stack is live, not slideware, and it only changes one of your decisions1 distinct publisher
product
The criminal AI market is a reseller business, and Grok's abuse desk is the chokepoint1 distinct publisher
build
Semantic code search over a monorepo is now a plumbing job, and the plumbing is the hard part1 distinct publisher
Distinct publishers with included, body-backed reporting in this cluster.
1 article · August 18, 2026