2,238 Installs, One Paying User
Nine months of Call Copilot in one breakdown: the full funnel from install to payment, €517 of ads that brought zero sales, and why the most active customer loses me money.

By Georg Malahov
On December 10 last year my extension went live in the public Chrome Store. Now it's the end of August, and for the first time I sat down and pulled the whole story together in numbers — not from gut feeling or memory, but from data: Stripe, the store's statistics, my own analytics in the database. What came out is a nine-month funnel, and I want to show it in full. It's also a convenient point to look back at everything I've managed to write over this time.
A year of installs per Chrome Web Store data: December launch, January ad peak, a long plateau, and the August dip.
The whole funnel
Since I put analytics in place, 2,238 installs have gone through the product. The store counted around 2,500 over the same year — but into my own stats I only take installs where at least one user action happened after installing: that filters out the automatic sync of extensions across devices, and the people who uninstalled without ever opening it. From there the numbers stack into a funnel where every step cuts the audience roughly in half or worse:
- 2,238 people installed the extension;
- 609 watched the demo;
- 553 recorded at least one call;
- 430 hit the paywall;
- 275 registered;
- paid — a handful.
The last step deserves a closer look. Over nine months about a dozen people paid: one-off purchases from €1.99 to €24 and a few subscriptions. So it's not "one paying user in the entire history" — people did pay, in different months, from different countries. But by the end of August all of it boils down to one live subscription at €12.99 — a consultant who renewed it for a second month in early August. My own test subscription and a friend's subscription I throw out of every calculation: purchases from your own circle aren't a market test — they say nothing about whether strangers need the product.
Every successful payment in the project's history — 31 transactions from €1.99 to €12.99.
Ads: €517 and zero sales
The most expensive line in this breakdown. In total, ads ate €517 — not the €170 I wrote about in January: from late December through March I switched campaigns back on a few more times — targeting India, Europe, individual keywords. The mechanical part of the job the ads did do: the first four hundred users came exactly from them, there were over a thousand clicks, and the average click cost less than forty cents.
And now the part all this counting was for. Proper attribution — where each installer came from — I only wired up in February; before that, sources can only be reconstructed indirectly. But among all the installs where the source is known for certain, the picture is this: zero payments from ads. Every payment with a known source came from free search organics. People who googled the extension themselves registered twice as willingly as the ad crowd and were — alone — the ones who pulled out a card.
The Google Ads dashboard for the entire run: 1.3k clicks, €517 spent, attributed sales — zero.
The takeaway from those €517: cheap installs don't convert. The campaigns with the cheapest clicks brought people who don't pay; the only ones who paid found the extension on their own. Its real job the early advertising did fulfill: I switched it on at zero users — so there'd be life in the product and someone to test it on — and even then, while the campaigns were running, I could see the store's free organics picking up alongside the paid traffic. But it never started paying for itself — I wrote about the numbers not adding up back in February.
The registration I was afraid of
A separate story is the fear of tightening the screws. For most of the year the extension handed out free tokens to anonymous users, and people took advantage of that: by June, 75% of my transcription costs were being burned by people I didn't even know. In July I made registration mandatory — and was afraid the funnel would die right there.
It didn't. Install-to-registration conversion hovered around 8–10% before the change, jumped to 34% in the week after, then settled at 20–30%. When in August I made the demo the first onboarding step again — so that a person sees the product first and the form only after — registration stayed at around twenty percent, and uninstalls went down. The fear that had kept me subsidizing anonymous users for months turned out to be empty.
And if you overlay demo views, registrations, and uninstalls, you can see what the July experiment actually cost. Registration stood as the first screen, and people registered twice as often — they finally wanted to see what was inside. But extra steps had crept in between registration and the demo, and only a handful were making it to the demo itself: views dropped almost to zero, and in the worst week uninstalls reached seven out of ten installs. People were passing their verdict on the product without ever having seen it.
When the demo became the first step again, registrations got fewer — but now the person registering is one who has already watched the demo and seen something in it, and uninstalls slid down to a third of installs. The difference is fundamental: before, registration was mandatory — until you got through it, you couldn't do anything in the extension at all; now it's voluntary, and the demo itself filters out the people who don't need the product. Fewer registrations, but each one now means something.
The same weeks in absolute numbers, together with the installs themselves — to show the scale of what's happening:
The economics: minus four thousand and near-zero running costs
By August the costs add up to about four thousand euros. The largest item is fifteen hundred for the marketing course I launched this project within. Another thousand or so is tool subscriptions: AI agents like Claude and Cursor, plus assorted smaller services. Then €517 of ads; the rest is infrastructure and transcription tokens. Without the course the launch would have cost about two and a half thousand — but without the course there most likely wouldn't have been a launch at all. Total revenue: €184 — for every euro earned, I spent more than twenty.
Stripe MRR over the whole history: the December bump from my own circle, the spring dip, and the recovery by August.
Running costs, on the other hand, I cut almost to zero in August — went through every subscription and stripped out the excess: Supabase's free tier instead of the paid one, a smaller Miro plan, a cheaper server — close to €700 a year saved. Right now the project just keeps running and costs almost nothing: what's left is transcription tokens, and I have a stock of those.
And here comes the most instructive character in the whole story — the client from Brazil. He paid, hit my bug in the crediting of credits, and opened a dispute through his bank over the payment. On the substance of his claim he was right: he had paid and gotten no credits. He canceled the subscription, I refunded the money, fixed the bug, and gifted him credits as an apology. And here's the thing: today he is the product's most active user — he's in it practically every day. From the angle of "a person came back after a bad experience," it's the best thing that has happened to the product. From the angle of the economics, he runs at a loss for me: uses it daily and burns the gifted tokens. Both are true at the same time.
What I understood
As a list, with links to the places where it happened:
- The product was ready long before I was ready to sell it. The first and biggest kick — "Stop thinking like a developer" — I got back in October, and I'm still working on that skill.
- Cheap traffic doesn't convert. €517 of ads bought installs and not a single payment — it already wasn't paying for itself in February. Every paying user came from free organics, which that same advertising had kick-started early on.
- The fear of tightening the screws cost more than the screws themselves. Mandatory registration doubled conversion instead of killing it.
- Telemetry pays off in decisions, not charts. Half of this year's moves — from "stop touching the product" to the breakdown of one specific user leaving — were made on data I was at first too lazy to collect.
- One active paying user is not zero. It's a full working loop: a stranger found it, installed it, paid, and renewed. The question now isn't "does it work" but "how do I repeat this systematically."
What's next
The bet for the fall is spelled out in the solo-consultant post: a narrow audience of people who talk to clients themselves and pay themselves. Costs are cut, the product keeps running at no cost, the emails and the stats are working — I can afford to look for this audience slowly and without an ad budget. The product itself, by the way, is here: copilot.gm-labs.de — the landing page hasn't changed since launch, so it's both a storefront and a historical document at once.
By the end of the year, Stripe should show subscriptions I can explain — who came, from where, and why they paid. Not "a payment happened," but a reproducible chain. As soon as it works, the unit economics at today's near-zero costs come out positive — and the product moves to the next stage of its lifecycle: from an experiment to something that pays for itself. If the chain doesn't materialize, I'll be left with the most thoroughly documented failure I know of.
The data is at hand now.