Kelly Upp← Back to the desk

Build

A scorecard that tells you what you can’t read yet

An invented first-half scorecard for a made-up product, showing which goals you can read, which are provisional, and which are blocked. Based on real work; all data invented.

Fictional company · Based on real work · All data invented

Based on real work. All data invented.

In early 2026 I almost reported a number that turned out to be one account having a good afternoon.

It sat on a scorecard where a few goals couldn’t be computed at all, and one column behind a metric had quietly stopped being recorded. Nothing looked broken. So I stopped giving one number per goal. Each goal got a status: readable, provisional, blocked, or not a number. Where a number was blocked, I wrote down what the data did show, and the one thing that would unblock it.

This page is a fictional version of that scorecard. Fernwood isn’t a real company and every figure is made up, so I can show you how it works without sharing real data.

I’m sharing it because most small teams are reporting some number they shouldn’t quote yet, and nobody has told them. If that sounds like you, the card at the bottom is for your own metrics. If you’d rather have someone go through it with you, that’s what a Product Audit is for.

Fernwood first-half scorecard

An invented quoting and scheduling app for small field-service shops. January to June. 120 paying accounts, always the denominator. Internal and test accounts excluded everywhere. The company, numbers, tables and accounts are made up. What’s real is the shape.

North star: quotes approved online

2,550 in H1, steady at about +10% from January to June.

It’s the moment a customer says yes, so it measures an outcome. It’s also the one number that came through June untouched, because nobody can inflate it by sending a pile of price-list quotes. Quotes sent is a supporting activity metric. Goals below are tagged Feeds the north star or Supporting read.

Chosen partly for how hard it is to move by accident.

Where the 7 goals stand

3Readable2Provisional1Blocked1Not a number
New shops send a quote fastReadable
Quotes get approved fasterProvisional
Fewer “resend that?” ticketsReadable
Get paid fasterBlocked
Shops add their teamProvisional
Quotes flow into accountingReadable
Bigger buyers can say yesNot a number

6 of 7 have a directional read, even where the primary metric is blocked. Only the deliverables goal has no signal, and it doesn’t need one.

Headline activity

The north star first, then the activity metric that needed correcting, then one that’s reported on its own and never added in.

All other accountsThree biggest June accounts
Quotes sent per month, January to JuneMonthly totals of 1,250, 1,310, 1,380, 1,290, 1,330 and 1,840. June rises because the three biggest June accounts sent 830 quotes, up from about 300 in May. The rest of the accounts sent about 1,010, flat on May. 1,2501,3101,3801,2901,3301,840JanFebMarAprMayJun
Quotes sent, 8,400 in H1. The +47% from January to June is withdrawn. June’s jump is the three biggest June accounts, and one of them sent a batch of price-list quotes in a single afternoon, about two-thirds of the gain over May on its own. Without those three, June is down about 2% on May. Measured, split by account and day
MetricJanFebMarAprMayJunH1Read
Quotes approved online North star4103954204304454502,550Steady, about +10% Jan to Jun.
Quotes sent1,2501,3101,3801,2901,3301,8408,400Flat. The +47% is withdrawn.
Pay-link page loadsmonthly not shown61,300Reported separately. About nine in ten come from one partner’s embed on their own site, and this figure carries no exclusions, so it isn’t comparable to the two above. Measured

The seven goals

Every goal names its primary metric and its status. Where the primary is blocked or provisional, the directional read says what the data does show, and the one action that would change the status.

New shops send a quote fastFeeds the north star

New accounts sending a first quote within 7 days
39%27 of 70Readable

Those who get there do it in a median of 2 days. Most who miss stall before adding a price list. Observed, from 12 recorded onboarding calls

Quotes get approved fasterFeeds the north star

Quote approval rate
30%2,550 of 8,400Provisional

Re-sent quotes count each time they go out, which inflates the denominator. Counting each quote once, the rate is about 34%. Measured

One action: sales and product agree which definition we report.

Fewer “can you resend that?” ticketsSupporting read

Share of support tickets about a lost or resent quote
11%27 of 246Readable

Down from 17% in Jan to Feb to 7% in May to Jun. Tags are applied by hand by one person. Observed

Get paid fasterFeeds the north star

Deposits paid online, as a share of approved quotes
No numberafter 9 AprilBlocked

The payment status column stopped being written on 9 April. The provider’s own dashboard shows 312 deposits for H1, but they aren’t joined to quotes, so it’s a count and not a rate. Observed

Shops add their teamSupporting read

Accounts with 2 or more active users in June
24%29 of 120Provisional

A floor. Mobile sessions don’t record a user id, so anyone working from a phone is invisible. Measured

One action: ship the user id on the mobile session event, then re-baseline after 14 days of clean data.

Quotes flow into the shop’s accounting toolSupporting read

Accounts with accounting sync connected
37%44 of 120Readable

Connected isn’t used: only 19 of the 44 had a successful sync in June. Measured

Bigger buyers can say yesSupporting read

Deliverables: data-handling page, security questionnaire answers, vendor form
0 of 3shippedNot a number

Not started. Reported as deliverables so nobody tries to put a rate on it.

Supporting reads that are solid
MeasureH1Note
Account denominator120Paying accounts, not cancelled, internal excluded
Accounts with any activity96 (80%)Of 120
Quotes sent per active account, median61Skewed. The top 10 accounts send about half
Accounts that sent no quote in June31 (26%)Of 120

Read this before quoting anything

The one thing to fix first: two columns changed behavior in April and nothing flagged either

  • Dead: payments.paid_at. Written on 91% of paid quotes through 8 April, then never again. Quote volume stayed normal, so nothing looked broken. A chart of deposits per week would have read as people deciding to stop paying. Observed
  • Moved, not dead: quotes.template_id. Populated on 96% of quotes in Jan to Mar. After the April editor release, 58%, because the new editor writes the template to a different field. Any metric split by template is now wrong in a way that looks like a trend. Observed

Three asks: whether the two share a root cause, whether the template move was intentional, and a populated-rate monitor on every column a goal’s metric divides by. Both changes cluster with the April releases, but that’s a question, not a conclusion. Inferred

Do not report

  • Quotes sent +47%, Jan to Jun. One batch from one account. Withdrawn.
  • Any year-on-year figure. Last year was counted under the old rules.
  • Pay-link loads beside quotes sent. Different filters, not comparable.
  • Any deposit rate after 9 April. The numerator doesn’t exist.

How to read this

Every number says its own maths. If a metric doesn’t, it isn’t quotable.

Measured means we computed it from data. Observed means someone saw it, in a call, a ticket, or a dashboard we didn’t join. Inferred means it’s a read, not a count.

A blocked primary doesn’t mean nothing is knowable. Every directional read above is sourced. None of them is the committed metric, and none gets relabeled as one.

Before you believe a movement, split it by account and by day.

Where this applies

If your team reports on goals and some of them can’t be computed yet, this is the page I’d build first. A Product Audit gets you a written diagnosis of what you can and can’t read today. If you want someone to keep the scorecard honest every month, that’s Fractional Product Leadership.

Template: the metric status card

One card per metric. If a field is empty, the metric isn’t ready to quote.

METRIC:            [name, in plain words]
GOAL IT SERVES:    [one goal]
NORTH STAR:        Is it the north star | Feeds it | Supporting read
STATUS:            Readable | Provisional | Blocked | Not a number
EVIDENCE:          Measured | Observed | Inferred

COUNTS:            [numerator in words] ÷ [denominator in words]
WINDOW:            [dates] and [why it isn't longer]
SOURCE:            [where the number came from]
EXCLUDED:          [what's filtered out, and why]

RESULT:            [number, with the raw counts]
READS AS:          [one sentence a founder could repeat]
DO NOT SAY:        [the claim this number can't support]

ONE ACTION:        [the single thing that would change the status]
OWNER / BY WHEN:   [name] / [date]
LAST CHECKED:      [date, and what was checked]

Filled in: goal 2, Quote approval rate

METRIC:            Quote approval rate
GOAL IT SERVES:    Quotes get approved faster
NORTH STAR:        Feeds it (north star: quotes approved online)
STATUS:            Provisional
EVIDENCE:          Measured

COUNTS:            Quotes approved online ÷ quotes sent, re-sends counted each time
WINDOW:            Jan to Jun. Full half, no gaps
SOURCE:            Quotes table, approval event
EXCLUDED:          Internal and test accounts

RESULT:            30% (2,550 of 8,400)
READS AS:          About three in ten quotes get approved online
DO NOT SAY:        “Approval rate is flat”, until re-sends are settled. Counting each quote once gives about 34%

ONE ACTION:        Agree which definition we report
OWNER / BY WHEN:   Product with sales / end of month
LAST CHECKED:      Re-ran by account and day after the June batch