Grades demand evidence honestly during a launch or sales push: separates paid orders, signed commitments, repeat use, and inbound requests with a named need from views, likes, messages sent, and team self-testing, keeps a sourced demand ledger, and reports the count a skeptic would accept. Use when counting demand, writing a launch report, preparing a team or investor update, or checking whether interest is being inflated into sales.
name: qualified_demand_evidence description: Grades demand evidence honestly during a launch or sales push: separates paid orders, signed commitments, repeat use, and inbound requests with a named need from views, likes, messages sent, and team self-testing, keeps a sourced demand ledger, and reports the count a skeptic would accept. Use when counting demand, writing a launch report, preparing a team or investor update, or checking whether interest is being inflated into sales.
Qualified Demand Evidence
Purpose
Give a team one grading system for demand so a launch does not turn attention into sales on paper. Every claimed signal gets a grade, a source a skeptic can check, and a place in a ledger. The headline number is the strict count: external buyers who paid and kept the product, counted once each. Everything weaker is reported in its own tier, with its own label, never merged into that headline.
The grading logic follows three published ideas. From Testing Business Ideas by David Bland and Alexander Osterwalder: what people do beats what people say, and evidence gets stronger as the cost to the person giving it rises. From The Mom Test by Rob Fitzpatrick: compliments, generic fluff, and promises about the future are bad data, while specific past behaviour and commitments in time, reputation, or cash are good data. From The Lean Startup by Eric Ries: totals that only go up, such as views and cumulative signups, flatter a team without showing cause and effect.
Workflow
- Freeze the definitions before counting. Write down the window, the segment, what counts as a buyer, what counts as a repeat, and who is excluded. Internal actors, refunded orders, and duplicate entries for the same actor are excluded from the headline in every run. If the definition changes mid-launch, restart the count under the new definition and say so.
- Log every candidate signal in the ledger at assets/demand-ledger.csv shape: id, date, actor, actor_type, signal_type, source_ref, amount_paid, refunded, full_price, named_need, source_independent. source_ref is required. Use a payment id, a signed document id, a message thread id, or an analytics export id. An entry with no source drops one grade in the tool, and a Grade D entry with no source drops to X.
- Grade each entry with the rubric below, then run bin/grade_demand.py on the ledger to get the machine count and the per entry reasons. Hand grade and tool grade must agree. If they differ, the entry facts are wrong or the tool rule needs a note in the ledger, and you fix that before reporting.
- Grade A, qualified: an external actor paid for an order, a repeat purchase, or a renewal, the money was not refunded by the end of the window, and the actor is counted once. This is the only grade in the headline demand count.
- Grade B, committed: a signed contract or letter of intent with amount, date, named need, and a signer who can buy, or money put down as a deposit, a paid pre-order, or a paid pilot. Report B separately. Signed is not sold.
- Grade C, costly intent: an inbound request with a named need and a specific past example, a meeting where a decision maker gave time, a free pilot with a written end date and pass bar, unsolicited referral work, or data and time shared at real cost. C is pipeline, not demand.
- Grade D, interest: a waitlist email, a survey answer saying they would pay, interview praise, a warm demo reaction, or a vague inbound note with no named need. D is background. Quote it only as interest.
- Grade X, exclude: views, likes, followers, impressions, press reach, outbound messages sent, internal use or test orders, refunded or cancelled orders, duplicate actor entries, incentivised actions, and bot or anonymous traffic. X never appears in a demand total, not even as a footnote total added to the others.
- Apply the downgrade rules before you total anything. A friend or family first purchase stays at D until a later unprompted repeat at full price, and the report flags the relationship. A steep discount repeat proves demand at that price, not at list price, so disclose the price. An anonymous actor is capped because nobody can verify or de-duplicate them. One organisation with many seats counts as one buyer unless each unit signed and paid on its own.
- Check the borderline calls against references/borderline-cases.md. Fourteen worked cases cover the calls teams argue about most: refunded orders, self purchases, letters of intent with no amount, free pilots with no end date, view spikes with two real orders, and outbound volume reported as demand.
- Report with the templates in references/reporting-templates.md. State the strict count first, then B, then C, then D as background, then how many entries were excluded and why. Attach the reconciliation: gross entries minus refunds, minus internal, minus duplicates equals the headline. A reader must be able to rebuild your headline from the ledger alone.
- Re-grade on a fixed cadence during the push, daily in launch week and weekly after. Refunds, cancellations, and pilot endings move entries down as well as up. When the headline falls, report the fall and the reason in the next update.
Output Contract
Every run ends with a Demand Evidence Report:
markdown
## Demand Evidence Report: {launch or push name}
- Window and segment: {dates, who is in, who is out}
- Definition used: {one sentence, buyer and repeat defined}
- Qualified buyers, Grade A distinct actors: {N}
- Committed, Grade B distinct actors, reported separately: {N}
- Costly intent, Grade C entries: {N}
- Interest, Grade D entries: {N}
- Excluded, Grade X entries: {N, top reason}
- Reconciliation: gross {G} minus refunds {R} minus internal {I} minus duplicates {D} = {N}
- Flags: {discounts, relationships, incentives that touch the count, or none}
- Ledger: {path or link to the graded ledger CSV}
Below the report, list any entry you graded by hand against the tool, and any entry where a fact is still missing. Missing facts stay visible. They do not get rounded up into a better grade.
Operating Rules
- Count actors, not events, in the headline. Ten orders from one buyer is one qualified buyer with strong repeat behaviour, reported as both facts, not as ten buyers.
- Money kept is the line for Grade A. Authorised, invoiced, promised, and refunded money are not kept money.
- Never report team activity as market behaviour. Messages sent, posts published, calls made, and demos given measure effort. Replies, purchases, and signed documents measure the other side.
- Never let a bigger number borrow the label of a stricter one. Reach is not interest, interest is not intent, intent is not commitment, and commitment is not a sale. Each tier keeps its own name in every slide, post, and update.
- Praise is not evidence. A compliment with no specific past behaviour, no spend, and no commitment grades D at best, no matter who said it or how senior they are.
- Keep the denominator with the rate. A conversion claim names the source pool it came from, with its count and dates. A rate with no denominator is cut from the report.
- If you cannot verify a fact from the source_ref, grade what you can verify and note the gap. Unverifiable entries do not get the benefit of the doubt.
- Do not quote outside benchmarks for conversion or retention as if they grade your launch. Category, price, and window change those numbers too much. Grade your own ledger and let readers judge it with the definitions attached.
No ratings yet — be the first to rate it.