Stop charging hourly. Charge per shipped app. Here's the math.
Hourly billing punishes you for being efficient. The first time I charged a fixed fee and shipped early, I made more money than three weeks at the agency. Here's how I price now.
Hourly billing is a tax on efficiency. The faster you ship, the less you make. With AI tooling, you ship 3-5x faster than you used to — which means hourly is mathematically the worst possible model for you specifically. Switch to fixed-price-per-deliverable + monthly retainer for ops. Below is the formula and a contract clause that actually holds up.
The trap, in one paragraph
Client says: "I'll pay you $80/hour." You think: "Great, fair rate." You build the MVP in 30 hours instead of the 80 hours it would have taken pre-AI. You bill $2,400 instead of $6,400. The client is delighted. You just gave yourself a 60% pay cut by being good at your job. The next project, you secretly slow down.
The fix
Stop selling hours. Sell deliverables. The deliverable is "a working app on the client's infrastructure with these features, signed off." The price is a number, fixed, and 50% paid upfront.
The formula I use
Here's how I price an MVP today:
- Estimate the realistic time — given my AI tooling, my templates, my taste. Be honest. For a small SaaS MVP that's usually 25-40 hours of focused work spread over 1-2 weeks.
- Multiply by your aspirational hourly — not what you got at the agency. What you'd charge if you were hiring you. For me, $200/hour. For most senior freelancers, $150-250.
- Add 25% for unknown unknowns — there are always 1-2 surprises.
- Round to the nearest $500 — because nobody pays $4,712.
Example: small SaaS MVP, 30 hours, $200/hr, +25%, rounded → $7,500. The same project on hourly at $80 would have netted $2,400. Same work, same client, ~3x the revenue.
The contract clause that holds
This is the language I use, paraphrased:
Scope: a working SaaS application with the following features [list]. Deployed to the client's Cloudflare account on the agreed domain. Acceptance criteria: each listed feature passes the demo checklist included as Appendix A. Out of scope: anything not in the listed features. Out-of-scope requests are quoted separately. Fee: $X. 50% on signature, 50% on acceptance. Two rounds of revisions included; subsequent rounds at $200/hr. Fee includes 30 days of post-launch bug fixes for shipped features.
Three things make this contract work:
- The deliverable is a list with a demo checklist. Vagueness is the enemy.
- "Out of scope is quoted separately." No hourly. New work = new quote.
- "30 days of bug fixes for shipped features" — bugs only, not new features.
The objections you'll hear
"What if it takes longer than you estimated?"
That's your problem. That's the deal. The 25% buffer covers most of it. The discipline of pricing this way also forces you to scope tighter — which is genuinely better for the project.
"What if I want to add a feature mid-build?"
"Happy to. That's a separate quote — usually $X-Y depending on size." Hand them the contract clause. Most clients respect this immediately because it mirrors how they'd buy from a regular software vendor.
"My client only pays hourly."
Find a different client. Truly. Hourly clients are not a fit for this model. If you can't escape hourly entirely, set a minimum block of 4 hours and a "discovery fee" non-hourly, then refuse the rest.
The retainer, separately
For ongoing work after the MVP, I charge a flat monthly retainer. Not hourly. The retainer is $1,500-3,000/month depending on the app's complexity. It includes:
- Up to 12 hours/month of small features and bug fixes (rarely used in practice)
- The morning ops report
- The 4-thing alerting setup
- Customer support escalation Mon-Fri
If they don't use the 12 hours, I don't refund. If they exceed it, we reset the conversation about scope. In 14 months across 6 retainer relationships, I've hit the cap once.
The retainer is for the ops surface area, not for the hours. Clients understand that distinction faster than you'd think.
The math, the punchline
I went from $80/hour at an agency to ~$220 effective on my own. Same skill level. Same hours per week. The change wasn't competence — it was billing structure.
| Hourly model | Fixed-price model | |
|---|---|---|
| Average hours per MVP | 30 | 30 |
| Effective rate | $80 | $220 |
| Per-MVP revenue | $2,400 | $7,500 |
| MVPs per quarter | ~3 | ~3 |
| Quarterly revenue | $7,200 | $22,500 |
Hourly billing punishes the freelancer who shipped fast. AI made you faster. Re-price accordingly.
The first fixed-price quote you send will feel high. Send it anyway. Most clients pay it without flinching. The ones who don't were going to be a hassle on hourly too.
Ship faster. Charge differently.
buildr lets you scope and ship MVPs in days instead of weeks. Same chat, same clients, very different invoice.
Build my app free