The unit economics of a one-person AI product
About 40% of what it costs me to run hey anna is the Claude API bill. Most SaaS advice assumes serving one more customer is free, and it stops working once that isn't true. Free trials get expensive and going viral can hurt.
hey anna’s variable cost is about 40% Claude API. For every dollar of revenue, roughly forty cents leaves to pay for the model inference doing the actual work. That one number rewrites the pricing, the acquisition maths, and the question of whether growth has to be viral, because the standard SaaS reasoning gives you the wrong answer at every step.
The classic playbook assumes cost of goods sold is a rounding error and gross margin sits near 90%. Servers are cheap, one more user costs about nothing, so the strategy writes itself: acquire aggressively, land cheap, expand later, never think about cost. That was true for software whose marginal unit was a database row. It’s false for software whose marginal unit is a model call you rent by the token.
The margin sets the ceiling on everything else
Start with gross margin, because every other number depends on it. At 40% variable cost, contribution margin is 60 cents on the dollar before you’ve paid for anything fixed. That’s a constraint rather than a catastrophe, and the constraint is the useful part. It means “how much can I spend to acquire a customer” has a hard answer, where a normal SaaS founder gets to wave their hands.
Customer acquisition cost is bounded by lifetime contribution margin, not lifetime revenue. Those two are the same thing when COGS is zero, which is why nobody used to draw the distinction. Here they’re 40% apart. If a customer pays under a dollar a day and stays for a year, that’s roughly $300 of revenue and about $180 of contribution. The CAC the business can carry is set against the $180. Spend against the revenue line and you’re buying customers at a loss the spreadsheet hides until the cohort matures and the cash doesn’t turn up.
The same arithmetic kills the casual free tier. In old SaaS a free user is a marketing cost that rounds to zero, so you carry them indefinitely, because storage is free and one of them might convert. Here a free user who actually uses the product is a real cash outflow every day, priced in tokens, with no revenue against it. A free tier is a budget line rather than a tier, and it has to be sized like one: capped, time-boxed or deliberately thin. An unbounded free tier on a usage-priced product burns runway on non-customers.
What 60 cents has to cover
That 60 cents of contribution is the only money there is to cover everything fixed, and on a one-person product the biggest fixed cost is also the most invisible one, which is my time. There’s no team to amortise across thousands of accounts. The model is the variable cost and I’m the fixed cost. That framing decides what I build and, more often, what I refuse to build.
It changes how the price gets set too. hey anna is positioned at under a dollar a day against analyst alternatives running $400+ a month. The headline gap looks like a generous discount. The economics read differently: the price has to clear the floor that 40% sets, every day, on every account, or volume makes the loss bigger rather than smaller. A pricing mistake on a 90%-margin product trims your margin once. A pricing mistake here leaks on every transaction and scales with success. Growth doesn’t fix a negative contribution margin, it just makes the hole bigger.
Whether viral growth is load-bearing
This is where the 40% changes strategy rather than just the spreadsheet. When acquisition has to be paid for and CAC is bounded by a 60-cent contribution, every dollar of paid acquisition is a dollar the margin has to earn back before the customer churns. That’s survivable and it’s a grind, and on a solo product there’s no sales team to speed the grind up.
Referral and word of mouth are the one acquisition channel whose marginal cost is near zero. On a 90%-margin product that’s a nice-to-have, because the margin absorbs the CAC and paid acquisition works fine. On a 40%-cost product it’s closer to load-bearing, because it’s the only channel that doesn’t have to come out of the same thin contribution margin already paying for the inference and for me. The question shifts from “can I buy growth” to “does the product produce growth as a by-product of being used”. If it doesn’t, the maths says go slower rather than louder.
That’s the divergence from land-and-expand orthodoxy. Land-and-expand assumes you can absorb cheap, badly-fitting customers now and sort the economics out at scale, because scale is free. Here scale is rented. So the discipline runs the other way: the product has to be good enough to spread on its own, the free tier has to be sized like the cash line it is, and the price has to clear the inference floor on day one.
A 60% contribution margin is still a real business. It just has to respect its own arithmetic from the first dollar rather than the hundredth. The founders who get hurt are the ones who imported the COGS-is-zero assumption from the last decade of SaaS and only find out it was load-bearing when a good month produces a bigger bill instead of a bigger bank balance.
The model is a variable cost you pay per use, forever, and it’s 40% of the revenue. Price like it, acquire like it, and size the free tier like it.