We check the math on viral AI money claims.

Not opinions. Arithmetic — run against real tool prices, payout timelines and net margin. Every score publishes its working, so you can check ours.

Exhibit — IDX_011 · Connor Cahill Scored 2026-07-23 · engine 3.1

“Sold 87 AI receptionists for $4.97/month each in 30 days, generating $43,000 in recurring revenue.”

0/100
Debunked

The arithmetic

87 × $4.97/mo$432.39/mo
Claimed$43,000/mo
Off by99×
Setup time, 87 units @ 2h174 h
That time at $30/h$5,220

The stated price and the stated revenue cannot both be true. At $4.97 a month, 87 customers is four hundred dollars — and the build costs twelve times what it earns.

Full teardown

What the arithmetic keeps finding

Most claims don’t survive their own numbers.

Not because people are lying — usually because the claim never states enough to be checked. The most-omitted number is the one that decides everything: how long it took.

Read the findings
99× CLAIMED ACTUAL

THE INDEX

This Week's Audits

We pull public claims, run the feasibility math, and rank them.

75+ FEASIBLE 45-74 STRAINED <45 IMPLAUSIBLE / DEBUNKED
ScoreVerdictSourceClaim

Scored on deterministic feasibility math.

View the full leaderboard →

THE SCORING ENGINE

Six axes. The math decides.

An LLM only extracts what the claim actually says. The scoring is pure arithmetic.

01

A model reads. It never scores.

An LLM extracts only what the claim states. Anything it leaves out stays empty rather than being guessed.

02

Arithmetic decides the score.

Fixed formulas run over dated price tables and payout timelines across six axes. Same inputs, same score, every time.

03

The working is published.

Every teardown shows the arithmetic that produced it, so you can recompute the score — or challenge it.

View the full methodology →

PRICING

Reading is free. Acting on it isn’t.

Every score, every teardown and all of the arithmetic stays free — permanently, no account needed. Pro is for the two things reading can’t do: score the claim nobody’s checked yet (yours), and get the execution Playbook for the ones that pass.

FREE

$0

No card. No account to read.

  • Every scored claim, with the arithmetic that produced it
  • The Index, Insights, and the full methodology
  • 3 checks of a claim of your own
  • The weekly email — that week’s audits
Start free →

PROthe instrument

$15/mo

or $120 a year — four months free.

Founding rate through September 30 — $19/mo after. Lock $15 now and it stays $15 while you’re subscribed.

  • 50 claim checks a month. Paste any claim; get the six-axis math on it. Re-score as often as you like, free — that’s usually where a claim falls over.
  • The Playbooks. When a claim survives the math, we hand you the execution blueprint: priced bill of materials, unit economics, break-even, go/no-go gates. The proven way to run a vetted claim — new ones as they publish.
  • Export any audit as Markdown or JSON — the score, every axis, and its working.
  • The full Friday Audit Brief and the in-depth insights

Card only — no account needed first. 14-day money-back guarantee, cancel anytime. Secure checkout by Paddle.

WHAT THE ENGINE REFUSES TO DO

  • It won’t score a claim that doesn’t state enough to check. No timeframe, no score — it returns incomplete rather than guessing.
  • It won’t let a model pick the number. An LLM only reads the claim; fixed arithmetic decides the verdict.
  • It won’t hide the working. Every verdict ships the math that produced it, against price tables dated on the page.

No testimonials on this page, because we don’t have any yet. Everything above is checkable instead: open any teardown and recompute it. If our math is wrong, challenge the score — we publish corrections.

The Friday brief — free

Each week’s claims, scored, with the math.

Friday signal only. No guru fluff. — next drop Friday 8am PT

/* Homepage checkout — buy without an account. The webhook (pipeline/api/app.py) provisions from Paddle's own collected email: INSERT ... ON CONFLICT DO NOTHING, then UPDATE plan='pro'. So we deliberately omit `customer`/`customData` here — Paddle collects the email and the account appears on the other side. No backend change was needed. */ (function () { var mBtn = document.getElementById("buy-m"), yBtn = document.getElementById("buy-y"); if (!mBtn && !yBtn) return; fetch("/data/pricing.json", { cache: "no-store" }) .then(function (r) { return r.json(); }) .then(function (p) { /* Self-correcting deadline: if the founders date has passed, drop the "$19 after September 30" line rather than show a stale past deadline. This keeps the claim honest even if the site wasn't rebuilt in time — a real deadline that quietly expires, not an evergreen fake one. */ var note = document.getElementById("founders-note"); var until = p.tiers && p.tiers.paid && p.tiers.paid.founders_until; if (note && until && new Date() > new Date(until + "T23:59:59")) { note.remove(); } var ok = p.checkout_enabled && p.paddle_client_token && p.paddle_price_id && window.Paddle; if (!ok) { /* Never show a buy button that can't charge: fall back to the account page rather than opening a checkout that will fail. */ [mBtn, yBtn].forEach(function (b) { if (b) { b.replaceWith(Object.assign(document.createElement("a"), { className: b.className, href: "/account/", innerHTML: b.innerHTML })); } }); return; } Paddle.Environment.set(p.paddle_client_token.indexOf("test_") === 0 ? "sandbox" : "production"); Paddle.Initialize({ token: p.paddle_client_token }); var open = function (priceId) { if (!priceId) return; Paddle.Checkout.open({ items: [{ priceId: priceId, quantity: 1 }], settings: { displayMode: "overlay", theme: document.documentElement.getAttribute("data-theme") === "dark" ? "dark" : "light", successUrl: location.origin + "/account/?upgraded=1" } }); }; if (mBtn) mBtn.addEventListener("click", function () { open(p.paddle_price_id); }); if (yBtn) yBtn.addEventListener("click", function () { open(p.paddle_annual_price_id); }); }) .catch(function () { /* pricing.json unreachable — leave the buttons inert rather than lying */ }); })();