Core metrics sheet

Five numbers a studio can read on Monday. Impressions are diagnostics. Conversations are the scoreboard.

One sheet, one tab, last 12 weeks. Update every Monday. If a number takes more than five minutes to find, the store is wrong, not the metric.

Do not add vanity columns because a tool offers them. Traffic without conversations is a hobby.

flowchart LR
    I["Inbound"] --> Q["Qualified"]
    Q --> P["Proposal"]
    P --> W["Won"]
    I --> T["Time to reply"]

Definitions (write these on the sheet header)

MetricCounts asDoes not count
Qualified conversationThey match the who-line and can buyNewsletter signups, spam, “just researching”
Proposal sentA dated PDF or scoped email they can acceptA vibe call with no artifact
Close rateWon / proposals sent, last 90 daysWon / all conversations (that hides a leaky qualify step)
Site contact completionForm row that is a real personHoneypot hits, empty tests, duplicate refreshes
Time to first replyHours from inbound timestamp to first human sendAuto-ack “we got it”
  • These five definitions pasted at the top of the sheet so next quarter’s you does not renegotiate them

Columns

Week-starting date, then the five counts, then source notes. That is enough.

Week ofQualifiedProposalsWonSite contactsMedian hours to replyNotes
YYYY-MM-DD
YYYY-MM-DD
YYYY-MM-DD
  • Source column uses search / direct / referral / outbound. If you cannot name it, write “unknown” and fix tracking that week
  • Customer acquisition cost (CAC) and lifetime value (LTV) stay off this sheet until the counts above exist for a full quarter

Monday ritual (15 minutes)

  • Fill last week’s row from the intake sheet, not from memory
  • If median reply time missed the service level agreement (SLA), name the cause in Notes
  • One fix for the worst number. Not five new channels

Related guides