<!--
ROBOTS ON PAYROLL / THE VAULT
What this is: how to measure which channel is bringing users, with no analytics dashboard and no code skills.
How to use it: download this file and give it to your AI (Claude, ChatGPT,
Cursor, Lovable chat) as a reference. Say: "Use this as my playbook for [task]."
Latest version + full guide: https://robotsonpayroll.com/resources/first-100-users
-->

# Did It Work? Measuring Without Dashboards

You don't need analytics software, SQL, or a data person. You need to answer exactly one question per channel: **did anyone who saw my post actually sign up?** Here are the three tools for that, plus the rule for what to do with the answer.

---

## Tool 1: a different link per channel

The trick: you can add a tag to the end of any web address and the page still works exactly the same. The tag just travels along, so you can see where a visitor came from.

Take your normal link:

> `https://yourapp.com`

Add `?from=` and a channel name:

> `https://yourapp.com?from=reddit`
> `https://yourapp.com?from=whatsapp`
> `https://yourapp.com?from=tiktok`
> `https://yourapp.com?from=friends`

That's it. Nothing to install. Anyone clicking the Reddit link lands on your normal page, but the address they arrived on says `from=reddit`. Rules:

- **One tag per channel, decided upfront.** Keep a list so you don't use `reddit` one week and `Reddit` the next (tags are case-sensitive, meaning capital letters count as different).
- **Every link you post anywhere gets a tag.** An untagged link is a visitor you can never attribute.
- **If your link already contains a `?`** (some app builders generate links like `yourapp.com/page?id=7`), use `&from=reddit` instead of `?from=reddit`. The `?` starts the tag section; `&` adds to it.

**Alternative: a free link shortener.** Bitly's free plan gives you short links and counts clicks on each. Make one short link per channel. Caveat: shorteners count clicks, not signups, and some communities distrust shortened links (Reddit especially). Prefer the `?from=` method where you can.

**Where do the tags show up?** Two options. If your app builder has a visitor or analytics tab (Lovable, Replit, and most site builders show basic traffic), the landing address appears there. If not, the prompt in Tool 4 below makes your app record it for you, which is better anyway: it ties the tag to the signup, not just the visit.

## Tool 2: just ask, "how did you find this?"

The zero-tech version, and more accurate than any link tag: put the question in front of every new user.

- **On the signup form:** a dropdown, "How did you hear about us?" with your channels as options plus "Other". The prompt in Tool 4 adds this for you.
- **No form?** Ask in your welcome message, or reply personally to each signup (at under 100 users you can, and the replies start conversations worth more than the data).

Expect roughly half of people to answer. That's fine. You're not doing science, you're deciding which of two channels deserves your next two weeks.

Link tags and the question will disagree sometimes (someone sees your TikTok, googles the name later, answers "TikTok" but arrives untagged). When they disagree, trust the human answer. This is also why video views turn into "untagged" signups: people search instead of clicking.

## Tool 3: the weekly scorecard

Every Friday, 10 minutes, fill one row per channel. A notes app or paper is fine; the act of writing it weekly is the entire system.

| Week | Channel | What I did (posts/messages) | Clicks (if known) | Signups | Replies/comments | Keep going? |
| --- | --- | --- | --- | --- | --- | --- |
| 1 | reddit | 2 posts, 14 comments | 61 | 9 | 23 | yes |
| 1 | friends | 18 individual texts | n/a | 7 | 12 | yes |
| 2 | reddit | 1 post, 10 comments | 30 | 4 | 8 | watch |

(The numbers above are illustrative, not results we're claiming.)

Reading it:

- **Signups is the score.** Clicks and views are encouragement, not results. 900 TikTok views and 0 signups is a "no signal" week no matter how good it felt.
- **Replies/comments is the early signal.** Signups lag. If real conversations are happening in week 1, the channel usually converts by week 2 or 3.
- **"What I did" keeps you honest.** A channel can't fail if you gave it 1 post. The kill rule below only applies to channels you actually worked.

## The kill / double-down rule

Decide in advance so you don't negotiate with yourself later:

**2 weeks of proper effort, no signal: move on.** Proper effort means you actually ran the playbook (posts, comments, follow-ups per `channel-playbook.md`), not that you posted once and waited. Signal means signups, or at minimum real conversations with your target users. Zero of both after two honest weeks: kill the channel, pick the next one, no mourning.

**Any signal at all: double down before adding anything.** 5 signups from one subreddit beats starting a TikTok. Post more there, answer more questions there, go deeper in that room. Beginners kill working channels out of boredom far more often than they kill dead ones too late.

The failure mode this rule prevents: six channels each given three half-hearted days, zero users, and the conclusion "marketing doesn't work." It does; it's just slower and narrower than it looks from outside.

## Tool 4: the paste-in prompt (your app tracks itself)

Paste this into the AI tool that built your app (Lovable, Bolt, Replit, Cursor, Claude). It adds the dropdown, captures the link tags, and gives you a simple place to see the answers.

> I want to know where my users come from. Make these changes to my app:
>
> 1. Add a required dropdown to the signup form labeled "How did you hear about us?" with these options: Reddit, a friend or contact, a group I'm in (WhatsApp/Facebook/Slack/Discord), TikTok/Instagram/YouTube, an online community or forum, an answer to my question online, Other. Store the choice with the user's record.
>
> 2. When someone lands on the site with a "from" tag in the address (for example ?from=reddit), remember that value for the visit and save it with the user's record if they sign up. Store it even if they also answer the dropdown; keep both in separate fields (call them "heard_from" and "arrived_from").
>
> 3. Create a simple private page at /sources that only I can access, showing: total signups, then a small table of signups per "heard_from" answer and per "arrived_from" tag, with counts for the last 7 days and all time. Plain table, no charts needed.
>
> 4. Do not add any external analytics service, cookie banner requirement, or tracking beyond this. Keep it to my own database.
>
> Then tell me: how do I open the /sources page, and how can I test that the ?from= tag is being captured (walk me through a test signup).

Run the test it gives you: open your site with `?from=test`, sign up with a spare email, and check that `test` shows up on the /sources page. If it doesn't, paste the failure back to the AI: "I signed up via ?from=test but the /sources page shows nothing for it. Find and fix the problem, then give me the test steps again."

---

## The whole system in one paragraph

Tag every link with `?from=channel`. Ask every signup how they found you. Fill one scorecard row per channel every Friday. Two weeks of real effort with no signups and no conversations: kill it and move to the next channel. Any signal: double down and don't add a channel. That's measurement. Dashboards can wait until user 1,000.
