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"]
| Metric | Counts as | Does not count |
|---|---|---|
| Qualified conversation | They match the who-line and can buy | Newsletter signups, spam, “just researching” |
| Proposal sent | A dated PDF or scoped email they can accept | A vibe call with no artifact |
| Close rate | Won / proposals sent, last 90 days | Won / all conversations (that hides a leaky qualify step) |
| Site contact completion | Form row that is a real person | Honeypot hits, empty tests, duplicate refreshes |
| Time to first reply | Hours from inbound timestamp to first human send | Auto-ack “we got it” |
Week-starting date, then the five counts, then source notes. That is enough.
| Week of | Qualified | Proposals | Won | Site contacts | Median hours to reply | Notes |
|---|---|---|---|---|---|---|
| YYYY-MM-DD | ||||||
| YYYY-MM-DD | ||||||
| YYYY-MM-DD |