The unit economics of a one-person AI product
hey anna's variable cost is about 40% Claude API. That single fact rewrites the pricing, the acquisition maths, and whether viral growth is load-bearing. The SaaS playbook assumed COGS was a rounding error; it isn't anymore.
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 that does the actual work. That single number rewrites the pricing, the acquisition maths, and the question of whether growth needs to be viral. I want to be precise about why, because the standard SaaS reasoning gives 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, the marginal cost of one more user rounds to zero, so the strategy writes itself: acquire aggressively, land cheap, expand later, worry about cost never. That assumption was true for software whose marginal unit was a database row. It is 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 the gross margin, because every other number depends on it. At 40% variable cost, the contribution margin is 60 cents on the dollar before you have paid for anything fixed. That is not a catastrophe; it is a constraint, and constraints are the useful part. It means the question “how much can I spend to acquire a customer” has a hard answer, where the SaaS founder gets to wave their hands.
Customer acquisition cost is bounded by lifetime contribution margin, not lifetime revenue. The two are the same thing when COGS is zero, which is why nobody used to draw the distinction. Here they diverge by 40%. If a customer pays sub-$1/day and stays for a year, that is roughly $300 of revenue but only about $180 of contribution. The CAC the business can sustain is set against the $180, not the $300. Spend against the revenue line and you are buying customers at a loss the spreadsheet hides until the cohort matures and the cash does not arrive.
The same arithmetic kills the casual free tier. In old SaaS a free user is a marketing cost that rounds to zero; you carry them indefinitely because the 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 not a tier; it is a budget line. It has to be sized like one - capped, time-boxed, or deliberately thin - because an unbounded free tier on a usage-priced product burns runway on non-customers.
What 60 cents actually has to cover
The 60 cents of contribution is not profit. It is the only money there is to cover everything fixed, and on a one-person product the largest fixed cost is the most invisible one: my time. There is no team to amortise across thousands of accounts. The model is a variable cost; I am the fixed cost. That framing decides what I build and, more often, what I refuse to.
It changes how the price gets set, too. hey anna is positioned at sub-$1/day against analyst alternatives that run $400+/month. The headline gap looks like a generous discount. The economist’s read is different: 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 is a per-transaction leak that scales with success. You cannot grow your way out of a negative contribution margin; you can only grow the hole.
Whether viral growth is load-bearing
This is where the 40% changes the strategy rather than just the spreadsheet. When acquisition has to be paid 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 is survivable, but it is a grind, and on a solo product there is no sales team to make the grind go faster.
Referral and word-of-mouth are the one acquisition channel whose marginal cost is genuinely near zero. On a 90%-margin product that is a nice-to-have; paid acquisition works fine because the margin absorbs the CAC. On a 40%-cost product it is closer to load-bearing, because it is the only channel that does not have to be funded out of the same thin contribution margin that is also 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 does not, the maths says go slower, not louder.
That is the real divergence from the 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 rather than someday.
None of this is a counsel of despair. A 60% contribution margin is a real business; it is just a business that has to respect its own arithmetic from the first dollar instead of 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 discover it was load-bearing when a successful month produces a bigger bill instead of a bigger bank balance.
The model is not a fixed cost you provision once. It is a variable cost you pay per use, forever, and it is 40% of the revenue. Price like it, acquire like it, and size the free tier like it. The maths is not hard. It is just different from the maths everyone learned, and the difference is the whole business.