Every company runs on numbers, and the numbers disagree.
Finance counts churn one way, Product another, and the CEO gets both in the same board meeting. The data is clean; the pipelines run fine. The problem is that nobody ever decided which number is true — and the disagreement stays invisible until the worst possible moment.
AI is making it exponentially worse. Agents now query business data directly and serve whichever definition they find first — with total confidence. Wrong answers, served fast, at scale. Glossaries and catalogs don't fix this, because documentation nobody maintains is documentation nobody trusts.
Two analysts each built a revenue dashboard. One counted gross, one netted out returns. Both named it “Revenue.” Both were sure theirs was right. The board saw both.
Finance calculates churn from cancellations. Product counts users inactive 60 days. The CEO got two different churn rates in the same meeting — and stopped trusting both.
“How many customers do we have?” sounds like the simplest question in the company. Logged in? Paid? Active subscription? The room goes quiet every time.
One report counts trial conversions from day one; another only after the trial ends. Sales and finance argue about it every quarter, and the definition lives in one person’s head.
Start with push mode or manual values — nothing leaves your infrastructure.
From signup to your first check. The demo shows a divergence instantly.
No anonymous truth. Each definition traces to a human decision, on the record.
Check → Case → Ruling.
Point Pariom at two places the same number lives — a query, a dbt job push, or a pasted value. It compares them every night, within your tolerance.
When sources disagree, a case opens with both values, the delta, and the history. Slack or email brings the right people to it — before the meeting does.
A human decides which number is true, on the record, with a rationale and their name. The decision becomes a governed definition in your ledger — automatically.
Your single source of truth, built one decision at a time — as a byproduct of work you were already doing, never as documentation homework.
Revenue nets out returns and refunds. Ops counts gross bookings and is tracked separately. Finance is the board-reported figure.
Meet your stack where it is.
Testing the idea today? Paste two numbers. Have a database? Give us read-only access and we'll check both sides ourselves. Already running dbt or Airflow? Push the value instead — no credentials change hands.
Paste two numbers and get your first case in under a minute. No integration, no credentials, nothing to set up — the move for testing this on one metric before wiring anything in.
A read-only Postgres or Snowflake role, credentials encrypted (AES-256-GCM), queries forced into read-only transactions. Pariom queries both sources itself — this is the strongest version of the check.
One line from your dbt post-hook, Airflow task, or plain cron. Nothing to hand over, nothing to security-review — the fit for teams with existing pipelines who'd rather not share database access.
curl -X POST pariom.ai/api/recon/push \
-H "X-Pariom-Key: pk_..." \
-d '{"side":"a","value":646500}'Every figure carries a receipt: where it came from, when it ran, who ruled on it, and why. Provenance isn't a feature — it's the product.
Every ruling becomes a permanent entry: what was decided, who decided it, and why — there for whoever reviews it next, a quarter or a decade on. There is no "add definition" button. The ledger only grows as the byproduct of a real ruling, which is why it's still accurate when someone finally goes looking.
Ask about a metric with no ruling and Pariom says so, plainly, and shows the path to getting one. In a world of confident slop, refusal is a feature.
A living ledger — every entry a decision someone made.
No "add definition" button. Each of these appeared because a real disagreement got a real ruling — with a name, a rationale, and a receipt. That is why the ledger stays alive when every glossary goes stale.
Revenue nets out returns and refunds. Ops gross bookings tracked separately. Finance is board-reported.
Accounts with a paid, non-cancelled subscription at month-end. Excludes trials and logged-in-only users.
Earlier definition counted gross bookings. Superseded once the board figure was ruled to net out returns.
Pricing — coming soon.
Pariom is free during the beta period — no card required, no plan to pick. If you're using it today, you'll get advance notice before any billing starts.
Read more →Only if you want Pariom to check both sides itself: a read-only Postgres or Snowflake role, stored encrypted (AES-256-GCM). If you'd rather not hand over any credentials, push mode lets your own dbt job or cron post the value instead — nothing leaves your infrastructure.
No — it's the missing half. dbt metrics and Cube store definitions; Pariom is where disagreements get detected and decided. Rulings export cleanly into whatever layer enforces them.
Different problem. Observability finds dirty data — nulls, freshness, schema drift. Pariom catches clean data that's still wrong: two correct pipelines computing two different "Revenues."
Because nobody has to maintain it. Definitions appear as the byproduct of resolving disputes people already had to resolve. Documentation-as-homework dies; receipts of real decisions don't.
Nothing. Pariom is free during the beta period — no card required. If paid plans launch, you'll get advance notice before any billing starts.