Answer
v3 measures what went out: every shipped pick gets a How it went result with its source, method and grade, and those results shape next week's picks and the Plays.
Today
Cut from v1
Measurement is cut: no measuring engine, launch records, report back, A to D grades, results or result columns SCOPE.md:39 DUMMY.md:37.
What already exists on origin/main
| Piece | What it does today | Source |
|---|---|---|
| How we measure it, in the brief | Each brief writes a small measure plan from blocks: scope, track, compare, funnel, formula, guard, watch, north, attribution, open | measure-spec.js:7 |
| Brief is the truth | Every number in the measure plan must appear in the brief, or it is dropped | measure-spec.js:5 measure-spec.js:51-74 |
| Card page | Shows How we measure it with metric and goal, "Set with you" when the brief sets none | public/app.js:2378 |
| Watch block | Says the team runs the checks; Brew does not watch or stop anything | measure-spec.js:23 |
| Methods and grades | A holdout, B launched vs untouched, C tagged sales only, D before vs after, with a bootstrap range | measure-stats.js:5-20 |
| Families | 13 families, each with the closest metric: paid ads to cost per first order, site to visits that become an order, messages to revenue per person messaged, and so on | data/measure-families.json |
| Timings | Per family: check days, a decide day, minimum sample and early stop rules, such as paid ads checked on days 1, 3, 7 and decided on day 14 | measure-families.js:16-30 |
| Plays cite their family | Each Play's measure section names its family, metric and check timings | moves-engine.js:384 |
Built before and not carried over
The archived feed repo had a full engine: launch records, report back by voice, graded attribution, live for one test brand on 14 Oct. Its engine, deployment and metric source files are not on brew origin/main memory feed-measurement-engine.
Data v3 can read once connected
Shopify orders, checkouts and COD state; Meta spend, ROAS and campaign frequency; GA4 visits and purchases; Google Ads spend and conversions; Klaviyo flows; Judge.me reviews brand-directions/docs2/content/inventory.mjs memory brew-shopify-connector-qa memory brew-meta-connector-qa.
Tomorrow
| Item | Version | Tag | What it is |
|---|---|---|---|
| Measuring words in v1 cards | v1 | Goes | Removed in a Restyle, back only in v3 brand-directions/_shared/product-model.md:18 |
| Launch record | v3 | New | When a pick ships, the version, channel, time and fingerprint are locked |
| Fingerprint | v3 | New | A link tag, a code or a campaign so results can be traced to the pick |
| How it went | v3 | New | One line per shipped pick: effect, range, method, grade, source |
| Work column How it went | v3 | New | After Live |
| Results feed the picks | v3 | New | A/B/C graded results raise or lower kinds of Plays; D results inform only |
| Results you share | v3 | Changes | Today a learning; tomorrow weighted by how it was measured brand-directions/docs2/content/inventory.mjs LEARN |
| Measured trust | v3 | New | Wins and undos move each kind of work up a trust ladder that never touches money brand-directions/docs2/content/inventory.mjs LEARN |
| Holdouts | v3 | New | Grade A needs a declared holdout; a comparison alone is B memory feed-measurement-engine |
Requirements with acceptance
| Requirement | Acceptance |
|---|---|
| Source on every result | A result without a connected account or a shared number never shows |
| Never early | Before the family's decide day the line says Too early, never a grade |
| Method named | Every result names its method in plain words, from GRADE_WORDS |
| One check per card | A result never mixes two reads |
| Game layer stays clean | Progress shown to founders never counts sales |
How we do it
- Port the archived engine piece by piece into brew, starting with the launch record, never wholesale.
- Use the 13 families as they stand; add a family as data, never engine code data/measure-families.json.
- Start with one family on one partner with a connected store, such as customer messages on Shopify.
- Show results to the brand's team only; numbers from accounts stay members only.
Numbers
| Metric | Definition | Where measured | Status |
|---|---|---|---|
| Measured share | Share of shipped picks with a How it went result | Launch records | Proposed |
| Grade mix | Share of results at A, B, C and D | Launch records | Proposed |
| Time to result | Days from going live to the decide day result | Launch records | Proposed |
Open
- How is a play graded fairly? Proposal: only A and B results move ranking; C and D show to the team but never teach the feed.
- When is a result ready to read? Proposal: the family's decide day from measure-families.js, with early reads shown as notes only.
- Holdouts need sending. Brew sending is cut SCOPE.md:38. Proposal: run holdouts through the brand's own Klaviyo or WhatsApp tool, never Brew's own sending.
- Keep How we measure it in v1 briefs? Proposal: keep it as the team's plan, renamed How your team measures it.
- v3 price. Proposal: the $149 or ₹9,999 working number in the pricing proposal brew working tree docs/pricing.md:20.