Subscription or one-time pricing
“Everything should be a subscription” is advice written for companies with a support team. For a product one person maintains, the answer depends on a question about your costs, not your ambitions.
The short version
- Ask one question first: does each customer cost you money every month they use it? If yes, subscription. If no, the answer is open.
- A subscription is a promise to keep showing up. Servers, support and shipping, indefinitely, or people cancel and say so publicly.
- One-time pricing is a marketing problem, not a revenue problem: you have to find new buyers forever, because the old ones are done paying.
- The hybrid beats both for most small tools: a perpetual licence with a year of updates, renewable at a discount.
- Never change the model on existing customers. Grandfather them permanently; the goodwill is worth more than the revenue.
The question that decides it
Does one customer cost you money every month they keep using the product? If they do (servers, storage, an API you pay per call, anything metered), you need recurring revenue, because your costs recur. If they genuinely do not, one-time pricing is a real option rather than a mistake.
This is unglamorous and it is the whole decision. Everything else (valuation multiples, MRR charts, what the advice on X says) is downstream of whether the arithmetic works. A product whose costs recur and whose revenue does not is a business that gets worse the more it succeeds, which is a genuinely awful position to be in alone.
| Product | Ongoing cost per customer | Model that fits |
|---|---|---|
| Hosted web app with a database | Real and growing | Subscription |
| Anything calling a paid AI API | Real, and usage-shaped | Subscription, or credits |
| Desktop app, entirely local | Effectively zero | One-time, or licence + updates |
| Mobile app, no backend | Effectively zero | One-time, or one-time + optional sync |
| Template pack, plugin, theme | Zero | One-time |
| Anything storing customer files | Real, and it never goes down | Subscription |
The trap in the second row. A one-time-purchase app wired to a paid AI API is a promise to pay for a stranger's usage forever, out of a payment you already spent. Either meter it, subscribe it, or make the user bring their own key.
What a subscription actually asks of you
Recurring revenue is not passive income with extra steps. It is a standing obligation, and for one person it is a specific set of jobs that never end:
- Uptime, forever. A subscription that is down is a refund request and a public complaint. You are now on call, in some form, permanently.
- Visible progress. People renew because the product is alive. Six quiet months reads as abandonment and churn follows it.
- Support as a permanent job. Every customer is a customer again next month, and they behave accordingly.
- Churn maths you cannot ignore. At 5% monthly churn you replace your entire customer base every twenty months just to stand still.
- Billing infrastructure. Failed cards, dunning, proration, tax. This is a weekend of work you will do once and maintain forever.
The reward is that it compounds. A hundred customers at $12 a month is $1,200 in month one and, with modest growth and survivable churn, considerably more in month twelve without finding a hundred new people. That is the single most valuable property a small software business can have, and it is why the advice defaults here.
What one-time pricing actually asks of you
- A permanent marketing job. Revenue is exactly this month's sales. Stop marketing and it goes to zero, on a delay.
- Discipline about scope. Every feature you add is unpaid work for everyone who already bought.
- An honest updates policy, written down before launch, so “lifetime” does not quietly mean “until I lose interest”.
- A higher price than feels comfortable, because you get one payment per customer and you are not getting another.
What you get back is real: no churn, no dunning, no cancellations page, and a customer relationship that ends cleanly rather than being renegotiated monthly. For a desktop tool or a mobile app with no backend, that is a genuinely lighter business to run alone, and lighter is the constraint that actually binds when there is one of you.
It also sells more easily. A $49 one-time purchase is a decision; $8 a month is a subscription to evaluate against the eleven others the buyer is already regretting. Subscription fatigue is not a myth and it is worst in exactly the consumer-tool category small founders build in.
The arithmetic, side by side
A hundred customers, two models, three years, assuming a $49 one-time price, a $9 monthly subscription, and 5% monthly churn:
| One-time $49 | Subscription $9/mo | |
|---|---|---|
| Year 1 revenue from 100 buyers | $4,900 | ~$7,000 after churn |
| Year 2, no new customers | $0 | ~$3,400 |
| Year 3, no new customers | $0 | ~$1,600 |
| Three-year total | $4,900 | ~$12,000 |
| What it costs you | Marketing, forever | Uptime and support, forever |
The subscription wins on the spreadsheet and it always will, which is why the advice exists. What the spreadsheet does not price is the third row of the last line: two more years of being responsible for a service, at a scale where you are the entire company. Some products earn that; a lot of small tools do not.
The other number worth having in front of you is the one-time equivalent of a subscription. At 5% monthly churn, the average customer stays twenty months, so $9 a month is about $180 a customer, roughly three and a half times a $49 one-time price. If your one-time price is not at least double what feels comfortable, you are choosing the weaker model badly rather than choosing it deliberately.
The hybrid most small software should use
A perpetual licence with a bounded updates window: buy once, use that version forever, receive updates for twelve months, renew at a discount if you want the next twelve. It is how most independent desktop software has been sold for years, and it fits a one-person product better than either pure model.
- The buyer is never held hostage. What they paid for keeps working, which removes the objection subscriptions actually run into.
- You get renewals from the people who value continued development, without owing service to the ones who do not.
- Support scope is defined. Inside the window, it is your job. Outside it, it is a renewal conversation.
- Churn stops being existential. A non-renewal is a customer who is still using your product happily, not a cancellation.
Two variants worth knowing. One-time plus optional sync: the app is bought once and works locally; the cloud features that cost you money are a small subscription. Credits: for anything metered, sell usage rather than time, so your costs and your revenue move together by construction.
Whatever you pick, price it against what the product replaces rather than against the cheapest thing in the category: that is the same argument as pricing a SaaS as a solo founder, and it is where most first prices go wrong.
Changing the model later
- Grandfather existing customers permanently. Not for a year. Permanently. The revenue you would gain is smaller than the reputation you would spend.
- Change the price for new customers first, and watch conversion for a month before touching the model itself.
- Announce it before it happens, in your own words, with the reason. People forgive a price change they saw coming.
- Never retroactively remove what someone bought. An app that stops working because the model changed is the story that follows a small product forever.
- Move one direction only if you can. One-time to subscription is the hard direction; adding an optional subscription alongside a one-time purchase is the easy one.
The failure mode is not choosing wrong. It is choosing by default, because everything you read assumed a company with a support rota. Answer the cost question first, then pick the model that leaves one person able to keep the promise.
The system behind this, written down
Everything above is the map. The Income Loop is the work inside it: modules 0–6 from the problem you solve to the offer that pays for it, plus ten traffic paths: the deeper post banks, the content sales systems and the full software build sequence, in one place.
Get The Income LoopNot ready to pay for anything? The Basic Income Loop is free and includes a complete seven-day starter for Threads, Instagram or software, enough to find out which one suits you before spending anything.