Analytics10 min readAugust 21, 2026

Analytics for your first 100 users

Percentages stop meaning anything below about 30 users, which is exactly when you most want an answer. Here is what to measure in the first month instead, and how to read it.

Eight confidence intervals in a row, the leftmost spanning almost the whole frame and each one narrower than the last

You shipped. The store listing is live, your agent wrote most of the code, and eleven people have signed up. You open the analytics dashboard and it reports a 9.1% conversion rate, a flat retention curve, and a bounce rate you have no way to judge.

None of that is information. At eleven users, one person moves every percentage by nine points. The tools were built for products with thousands of users, and below a certain size they do not degrade gracefully. They report numbers that look precise and mean nothing.

This is about the first month instead: which questions have real answers at two-digit scale, how to read them, and which habits waste the little signal you have.

±29pt

margin of error on a rate from 11 users

1

person needed to move it 9 points

30

users before rates start to settle

Why percentages break below about 30 users

Analytics tools report rates: conversion, retention, churn. A rate is a fraction, and fractions over small denominators swing hard.

You can compute how hard. The margin of error on a proportion is roughly 1.96 × √(p(1-p)/n). At 11 users and a measured rate of 27%, that is about 26 points either side: the true rate sits somewhere between roughly 1% and 53%. At 100 users it narrows to about 9 points. At 1,000 it is under 3.

Users in the cohortMeasured rateReal range it could beWorth acting on?
1127%1% to 53%No
3027%11% to 43%Barely
10027%18% to 36%Yes, directionally
1,00027%24% to 30%Yes

The table is arithmetic you can redo, not a benchmark. It is also the whole argument: at 11 users a retention number of 27% and one of 45% are the same measurement. Any decision that treats them as different is a story you told yourself, and you will remember the story long after you have forgotten the sample size.

Watch for the 30-day trap on top of the small-sample one. A weekly cohort of 11 users, split by acquisition channel, gives you buckets of three and four people. Splitting small numbers makes them smaller, and every split doubles your confidence while halving your evidence.

The fix is a change of unit. Below roughly 30 users, stop asking what percentage did X and start asking who did X, and what else you know about them. Every user is legible individually at this size. That is not a consolation prize. It is the one advantage you will never have again, and it disappears silently around the point the charts start working.

The five questions that do have answers

Five questions survive at small N, because each one is about named people rather than rates.

Six points joined by lines back to a single origin, and five more points below with no lines at all
Six of eleven traced back to one link. The other five came from somewhere you cannot name.

1. Where did each user come from?

Not which channel converts best, which you cannot rank with 15 users. The answerable version is per-person: which link, post, or conversation brought each one in. Tag every URL you share, one distinct link per place you post it. When six of eleven users trace back to a single comment you left on Reddit, you have learned where the next eleven probably are, and no percentage was required to learn it.

2. Who came back, and what did they do first?

Returning is the strongest signal a two-digit product emits. List the people who showed up on more than one day, then read their first session. What did the returners do that the one-and-done users did not? The pattern is often sharp at this size: every returner created a project, or finished setup, or reached one specific screen. That action is your activation moment, and getting people to it is the only job onboarding has.

3. Who hit an error?

At scale an error is a rate. At small N it is a person you lost. Four users hitting the same failure is not a 4% error rate, it is a third of your user base gone for a reason you could have fixed. They will not email you about it either. Capture errors automatically or you will not know: the SDKs do it without any wiring.

4. What changed after each release?

You are shipping several times a week, so the question is whether each change worked. The honest form is a comparison around the moment it went live: the same number of days on each side, the same events counted. Mark the release when you ship it. Without the marker you will be reconstructing dates from git history three weeks later, and you will get it wrong by a day in the direction that flatters the change.

5. Did anyone pay, and what did they do before paying?

One payment among twenty users is not revenue data. It is a case study, and it deserves to be read like one: what that person did in their first session, how many days passed before they paid, which screen they were on when they hit the paywall. Your second and third payments tell you whether any of it repeats.

See this on your own app

Vortex captures sessions, screens, and errors with no wiring, and reports them as people until you have enough users for rates. Free up to 1,000 monthly users, no card.

Start free

A week read as people, not rates

Here is the same week described both ways. The left column is what a conventional dashboard reports at this size. The right column is the same data with the unit changed.

QuestionRate answerPeople answer
How is acquisition?45% from social6 of 11 users came from the Reddit launch comment
How is retention?27% day-73 users returned, and all 3 created a project in session one
How is stability?3.8% error rate4 users hit paywall.load_failed, none of them returned
Did Tuesday's fix work?flat line either waystep-2 completion went from 39% to 71% on 18 users

The right column is a to-do list. Post again where the six came from. Move project creation earlier in onboarding. Fix the paywall error, then message the four people who hit it, because at this size you can. The left column supports whatever you were already inclined to do, which is what makes it dangerous rather than merely useless.

The last row is the exception worth knowing: a before-and-after comparison stays useful at small N, because you are comparing the same population against itself rather than estimating a population parameter. Mark the release, wait the window, compare like for like.

What goes wrong in the first month

Four habits waste early signal, and all four feel productive while you are doing them.

  • Ranking channels by percentage. "Reddit converts at 40%, Twitter at 12%" across twenty users is noise wearing a strategy costume. Count people. Wait until the counts are boring and repeated before you move effort.
  • Leaving instrumentation for later. The most common early failure is having no data for the month that mattered, because tracking was a to-do item. Baseline events should arrive from the first build.
  • Splitting traffic across projects. Web in one tool, the app in another, payments in a third dashboard. Now one person who found you on the web, installed the app, and paid appears as three unrelated users, and the question that matters most is the one question you cannot ask.
  • Running A/B tests. At this size a test cannot reach significance before the product changes underneath it, and stopping early when the numbers look good inflates false positives badly. Evan Miller's write-up on peeking is the clearest explanation of why. Ship the version you believe in, mark the release, compare.

There is a fifth, quieter one: checking a dashboard instead of asking a question. A dashboard shows what it was built to show. The useful early questions are specific and change weekly, and they are usually answerable in a sentence if the data is somewhere you can query it.

Instrument before you need it

Every argument above assumes the data exists. The most expensive early-analytics mistake is not misreading numbers, it is not having them, and it is only visible in hindsight: the launch week you cannot reconstruct, the twenty users who churned before anything recorded why.

The baseline should be automatic. App opened, screen viewed, session started and ended, error caught. None of that is specific to your product, none of it should require a decision, and all of it is what the five questions above are built from. What genuinely needs hand-writing is small: the signup, the activation moment, and the payment.

A sparse track with four marks above, and a dense track packed with marks below
The same three months, hand-instrumented above and autocaptured below.

Events a typical hand-instrumented app records in its first 90 days

Hand-wired only, instrumented late58
Hand-wired from day one400
Autocapture plus key events4200

The first bar is a real number from one of our own apps, and it is the reason this feature exists. Fifty-eight events in ninety days is not a quiet product, it is an uninstrumented one: every event had to be remembered, written, and shipped, so most of them never were. The third bar is the same app after the SDK captured the baseline on its own.

Set an environment property from the first day too. Development and CI traffic mixed into production numbers is a small problem at 11 users and an unfixable one at 10,000, because you cannot retroactively decide which sessions were yours.

How Vortex reports small numbers

We built this into the product rather than leaving it as a process you maintain. Below about 30 users, insights stop reporting percentages and describe the people instead: who returned, where each arrived from, what the ones who stayed did differently. Users are pseudonymised in that view. The same story arrives by email on Monday, so it reaches you whether or not you remember to open a dashboard.

Because auth, behaviour, and payments share one user record, the question about your first payer is one question rather than a join across three tools. And because there is an MCP server over the same data, you can ask it where you already are:

your coding agent

how is my app doing?

vortex · get_insights

11 users this week, up 5. 6 arrived through your "reddit-launch" link.

All 3 who returned created a project in their first session.

One error is trending: paywall.load_failed, 4 users hit it.

Release markers and before-and-after comparison work the same way, which closes the loop: the agent that shipped the fix can mark it, wait the window, and check whether the numbers moved.

Frequently asked questions

How many users do I need before analytics is useful?

Recording is useful from the first user, because you cannot analyse data you did not capture. Rate-based analysis becomes meaningful somewhere around 30 users per cohort and comfortable in the hundreds. Below that, analyse individuals.

What events should I track first?

Automate the baseline: app opened, screen viewed, session, and errors. Hand-write only your product's key actions, which usually means the signup, the activation moment, and the payment. Five deliberate events beat fifty speculative ones.

How do I know which channel my users came from?

Give every link you share its own tag before you share it. Attribution has to travel with the click. It cannot be reconstructed afterwards, and referrer headers will not do it for you once someone opens the link in an app.

Is churn worth measuring with fewer than 50 users?

As a rate, no: one cancellation swings it too far to read. As people, yes. Know exactly who lapsed and what they did last. At this size you can also just ask them, which is worth more than any number.

Should I run A/B tests on a new app?

No. You will not reach significance before the product changes underneath the test, and stopping early because the result looks good is how small tests produce confident wrong answers. Ship, mark the release, compare the window before and after.

Can my coding agent read my analytics?

If the tool exposes them. Vortex runs an MCP server, so Claude Code or any MCP client can query funnels, retention, channels, and revenue directly, and mark releases to check its own fixes.

What does analytics cost at this stage?

It should cost nothing at this size. Vortex's free tier covers one project, 1,000 monthly active users, and 100,000 events a month, with no credit card.

The bottom line

Small numbers are not bad data. They are a different kind of data, and they answer a different set of questions than the ones dashboards are built to answer. Read them as people, capture the baseline before you need it, and compare like for like around each release. The rates will start working on their own once there are enough users to support them, and by then you will know which ones to look at.

Sources

  1. How Not To Run An A/B Test Evan Miller, 2010
  2. Margin of error Wikipedia, 2026

Find out how your app is doing

Sign-in, analytics, and payments on one user record, with an MCP server your agent can query. Free up to 1,000 monthly active users.

Start free