The five numbers a seed-stage SaaS plan is usually missing
Most seed-stage SaaS teams I look at do not have an awareness problem. Signups are counted, campaigns run, dashboards exist. The problem is earlier and smaller: the loop between marketing and product was never wired, so nobody can say which channel produced an activated account, only which one produced a form fill.
Here are the five numbers that are usually absent, how each one is actually produced, and what breaks while it is missing. Nothing here is software-specific — it is the same list whether you sell a screening API or a scheduling tool.
1. Signup source, carried through the form
Produced by: campaign parameters written into a hidden field on the signup form, then passed to the analytics property as a user property or an event parameter.
Without it: you know signups went up. You cannot name the page or the channel that produced them. Every channel report becomes an attribution argument instead of a measurement.
The failure is almost always at the form, not at the analytics tool. utm_* arrives on the landing page, gets dropped when the form does a client-side redirect, and reappears as (direct) in the report. Fix it at the point where the parameter is lost, not by buying better reporting.
2. A written definition of activation
Produced by: pulling the retention curve, finding the in-product action that separates retained cohorts from churned ones, and writing that action down as an event the product team fires.
Without it: marketing is measured on signups, product on retention, and the handoff between them belongs to nobody. This is the single cheapest fix on the list and the one most often skipped, because it requires a decision rather than a tool.
A definition that arrives before the data is a guess with a slide. The process is: cohort the users, measure retention by action taken in week one, pick the action with the widest gap, name the event, ship it.
3. Activation to paid, on the same event
Produced by: watching the activation event through the upgrade path and the first invoice. Same event, longer window.
Without it: trials look healthy while the paying cohort stays flat. Trial-to-paid on signups hides the break: if activation and upgrade are measured on different events, a leak between them is invisible by construction.
4. Cost per activated account
Produced by: channel spend divided by activated accounts — not by clicks, not by leads, not by signups.
Without it: a channel that wins on cost per signup can lose on cost per activated account, and you will never see it. The two orderings are frequently opposite, and the gap is exactly the activation rate of each channel.
This is also the number that ends the argument with product. Both teams use one word for a result.
5. One exit field for churn reason
Produced by: a single required field in the cancellation flow, piped into the same property as everything above.
Without it: churn is reported as a rate with no cause attached. A rate tells you how much you lost; it never tells you which of the five things to change.
One field, one property, one report. Cancellation flows already exist — this is a 20-minute change that most teams never make.
The pattern behind all five
Every item on that list is a definition plus an event plus an owner, and every one of them can be shipped by one engineer in one sprint. None of them require a new platform. This is what separates a marketing engineer from a growth marketer with a bigger tool budget: the growth marketer optimizes inside the loop they were given; the engineer builds the loop and then decides, with the client, whether the result kills the test.
Two things decide whether a test is readable before it starts:
- The event that ends it. One event, named, with the property it lives in. If the answer is "the dashboard", there is no test, only a campaign.
- The day it is read. Agreed before the first contact goes out, not after the result arrives.
What the first engagement ships
The entry engagement (a $900 sprint) is deliberately small and checkable:
- One event that ends a test — activation wired end to end, readable on the date you agreed.
- Your own test floor, computed — contacts needed in both arms times your real cost per contact, run on your base rate instead of a benchmark from a blog post.
- A written kill rule — what result ends the test, what result doubles it, and on which day it is read.
-
A quotable page — schema.org
Service/Offermarkup, a sitemap entry,llms.txtand an IndexNow ping, so answer engines and agents can read what is being sold. - A dated artifact list — every deliverable as a URL, an event name or a date, so any claim on it can be checked by clicking rather than by trusting.
If you want the startup version of this - what the first 30 days actually produce, the routes a seed-stage team compares, and the floors each number has to clear - it is written up here: a marketing engineer for a startup. The SaaS-specific list is here: a marketing engineer for a SaaS team.
If you would rather skip the reading and wire the loop: hire a marketing engineer — published prices, three packages, first read in weeks not quarters.
Top comments (0)