Compare deposit, milestone, and net-30 billing for solo developers. Learn which structure protects cash flow, reduces risk, and fits your business model.
You've just landed a new client. Six weeks of work ahead. You're excited—but also thinking about rent. The question hits you immediately: how do you structure the payments so you don't end up waiting three months to get paid while your own bills are due next week?
This is the unglamorous reality of running a dev business solo. You're not worried about scaling to a hundred engineers. You're worried about cash flow. You need to know: should you ask for half upfront and half on delivery? Break the project into three milestones? Give them net-30 terms and hope they actually pay?
Each approach has real tradeoffs. A deposit protects your time but can scare off clients. Milestones spread risk and keep cash flowing, but they add complexity. Net-30 is what "real businesses" do—except you're not a corporation with a finance team and a line of credit. You're a solo developer who needs to eat.
This article breaks down all three structures, shows you the math behind each, and helps you figure out which one—or which combination—makes sense for your business. By the end, you'll understand not just the mechanics, but the hidden costs and wins of each approach.
Before we dig into the tradeoffs, let's define what we're actually talking about. These three billing models represent fundamentally different assumptions about trust, risk, and timing.
A deposit structure means you ask the client to pay a percentage—typically 25% to 50%—before you start work. The rest is due on completion or split into stages.
Example: A $10,000 project might require $5,000 upfront, with the remaining $5,000 due when you deliver.
The deposit does two things. First, it confirms the client is serious. A looky-loo won't fork over cash. Second, it gives you runway—you can cover your own costs (hosting, tools, time) without waiting for the final payment.
The downside? Clients hate it. They see it as a risk they're taking ("What if they disappear?"), and it can kill deals before they start, especially with larger companies or risk-averse clients.
Milestone billing breaks a project into chunks, with a payment tied to each chunk's completion. Instead of one upfront deposit and one final payment, you might structure it like this:
Net-30 is standard in the business world. You deliver the work, send an invoice, and the client pays within 30 days. Net 30 payment terms are a formal agreement that payment is due 30 calendar days from the invoice date.
There are variants: net-15 (15 days), net-45 (45 days), and even net-90 (90 days). Some invoices include a discount for early payment, like "2/10 net 30," which means a 2% discount if paid within 10 days, otherwise full payment by day 30.
Net-30 is the "professional" choice. It's what agencies use. It's what corporations expect. But it requires you to have either savings or a line of credit to cover your own costs while waiting to get paid.
Let's move past definitions and talk about what actually matters: when money hits your account and how much buffer you need.
Imagine you're taking on a $12,000 project that will take you 8 weeks. You have $3,000 in savings, and your monthly expenses are $2,500.
With a 50/50 split:
With a 30/40/30 split over 8 weeks:
You deliver the entire project in week 8 and invoice the full $12,000. Client pays by week 12.
This is why net-30 kills solo developers. It's not that the terms are unfair—it's that they assume you have working capital. Corporations do. Solo devs often don't.
Cash flow is one lens. Risk is another. Each model exposes you to different dangers.
When you've taken a 50% deposit, you're committed. If the client suddenly decides the project isn't what they wanted, or they run out of money, or they ghost you—you've already spent time on planning, setup, and initial work. You're out the labor.
The deposit doesn't actually protect you from scope creep. A client can say, "I know we agreed on X, but can you also do Y?" and you're stuck deciding: absorb the extra work, renegotiate, or risk them refusing the final payment.
Deposits also don't guarantee final payment. You've gotten 50%, but the remaining 50% is still subject to the same delays and disputes as any other invoice.
Milestones require clarity. "Milestone 1 complete" means what, exactly? If you and the client have different ideas about what "the homepage is done" means, you're stuck.
Milestone billing also creates more invoices and more administrative work. Instead of one invoice at the end, you're sending three or four. Each one is a touchpoint where something can go wrong.
On the flip side, milestones force this clarity upfront. You have to define what done looks like, which actually reduces scope creep compared to a lump-sum deposit model.
Net-30 is the riskiest for a solo dev without working capital. You're extending credit to the client. If they don't pay, you have to pursue them—which costs time and money. If they pay late (net-45 or net-60 in practice), you're waiting even longer.
Large companies are notorious for this. They have procurement departments that batch payments. Your invoice might sit in a queue for weeks. Understanding net 30 terms helps, but it doesn't change the reality: you're waiting.
The other risk is that late payment compounds. If a client pays 45 days late, and your next project starts before that payment arrives, you're now juggling multiple projects' cash flows. It gets messy fast.
Your choice isn't just about what's best for you. It's also about what your clients expect and what you can actually enforce.
Startups are usually cash-constrained and move fast. They often expect net-30 or net-45 because that's what their vendors do. They're used to float.
However, startups also understand the risk of running out of money. If you explain that you need a deposit to cover your own costs, many will accept it. They might negotiate—"Can we do 30% instead of 50%?"—but they get the logic.
Milestones work well here because startups often want to iterate and see progress. Breaking the project into phases aligns with how they think.
Large companies have procurement processes. They expect net-30 or net-45, and they'll often refuse to deviate. They have the cash to wait; they're not worried about float.
Deposits can be a hard sell. They might see it as a sign you're risky or unprofessional. However, if you frame it as "advance payment for setup and planning," it becomes more palatable.
Milestones are often welcomed by larger clients because they create checkpoints and reduce the risk of paying for a failed project all at once.
If you're doing ongoing work—a retainer—net-30 is standard. You do the work each month, invoice on the last day, and they pay by the 30th. This is the expected rhythm.
Deposits don't make sense for retainers. You're not taking on a lump-sum risk; you're in an ongoing relationship.
Milestones also don't fit retainers. Instead, you might break the retainer into phases ("Month 1-3 focused on infrastructure, Month 4-6 on feature development") with reviews and adjustments, but you're still invoicing monthly.
Beyond cash flow and risk, there are operational costs to each approach.
Deposits require a contract that's clear about the refund policy. If the client cancels after you've done work, are they entitled to a refund? Partial? None? You need to spell this out.
You also need to track the deposit separately from revenue. Accounting-wise, a deposit is a liability until the work is delivered. This isn't hard, but it's an extra line item.
The biggest hidden cost is the negotiation friction. Asking for a deposit can kill deals. Some clients will just walk. You need to be comfortable with that, or you'll undermine your own terms by making exceptions.
Milestones require upfront scope definition. You need to know what Phase 1 includes, what Phase 2 includes, and what Phase 3 includes. If you're working with a client who doesn't know what they want yet, this is painful.
You also need to communicate clearly at each milestone boundary. "Here's what I've delivered. Here's what's in the next phase." If the client expected something different, you need to resolve it before moving forward.
Milestones also create more invoicing work. Three milestones = three invoices, three follow-ups if payment is late, three payment confirmations.
Net-30 sounds simple—you invoice, they pay—but the overhead is in the waiting. If they don't pay on time, you need to follow up. That's email, a phone call, maybe a late fee notice. It's not hard, but it's friction.
You also need to handle the accounting. Implementing net 30 terms requires clarity on your invoice about the due date, late fees (if any), and payment method. Some clients will ignore this and pay whenever they want.
The other overhead is psychological. You've done the work, you're waiting for payment, and you're stressed about whether it'll arrive on time. That's a real cost to your well-being.
You don't have to pick one model and stick with it forever. Many successful solo developers use hybrids.
You ask for a 25% deposit upfront, then invoice for the remaining 75% on completion with net-30 terms. The deposit covers your upfront costs and confirms the client is serious. The net-30 on the remainder is standard and acceptable to most clients.
Example: $10,000 project = $2,500 deposit, $7,500 due net-30 on delivery.
This balances cash flow and client comfort. You're not asking for half upfront, so it feels less risky to them. But you've got cash in hand to cover your own costs.
You ask for a deposit, then structure the rest as milestones. This is common for larger projects.
Example: $30,000 project over 12 weeks.
You structure as milestones, but you offer a discount if they pay early. This incentivizes them to pay faster than net-30.
Example: Milestone is $5,000, due net-30. But if they pay within 7 days, it's $4,900 (a 2% discount).
This is like 2/10 net 30 terms but applied to your milestone structure. You're giving up a small amount to get cash faster, which can be worth it if you need the float.
If you have a retainer client, they're already on net-30 for monthly work. But if they ask for a one-off project on top of the retainer, you might ask for a deposit on that project specifically.
This acknowledges that the retainer relationship is stable (no deposit needed for recurring work) while protecting yourself on new scope (deposit on the project).
So which model should you use? Here's a framework.
Do you have 3+ months of expenses in savings? If yes, net-30 is survivable. You can float the payment.
If no, you need either a deposit or milestones. You can't afford to wait.
Large company? Expect net-30, but you might negotiate a deposit for setup costs.
Startup? They'll likely accept a deposit if you explain it. Milestones often appeal to them.
Small business or individual? They might prefer net-30 to avoid paying upfront, but they'll often accept a deposit if you ask.
How much can you afford to lose if a client disappears? If it's not much, ask for a larger deposit.
How much complexity can you handle? If you hate invoicing and follow-ups, avoid multiple milestones.
Short projects (under 2 weeks)? A simple 50/50 split or full payment upfront makes sense.
Medium projects (2-8 weeks)? Milestones or deposit + net-30 works well.
Long projects (8+ weeks)? Definitely milestones. You need cash flow throughout.
Retainers (ongoing)? Net-30 monthly is standard, no deposit.
You don't have to commit to one model forever. Try different approaches with different clients. See what feels right and what clients accept.
You might find that startups are fine with deposits, but enterprises push back. Adjust accordingly.
Let's ground this in reality.
Sarah is a React developer with $2,000 in savings and monthly expenses of $2,200. She can't afford to float.
She uses a 50/50 deposit model on all projects under $15,000. For larger projects, she does 33/33/33 milestones.
She loses maybe 10% of potential clients who balk at the deposit. But the clients she does take are committed, and her cash flow is stable. She's never stressed about payment.
She explains the deposit like this: "I need to cover my own costs—hosting, tools, time for planning—before I start. The deposit covers that. It also confirms you're serious about the project."
Most clients accept this. Some negotiate down to 40% or 30%, and she's fine with that.
James is a full-stack developer with a three-month emergency fund. He's stable enough to float a bit.
He uses a 25/50/25 milestone structure on all projects. The 25% upfront covers planning and setup. The 50% is due at mid-project when he's done the bulk of the work. The final 25% is due on delivery.
Clients love this because it feels fair and they see progress. James loves it because he gets paid regularly and doesn't have to negotiate as much. The downside is more invoicing and more communication about what "done" means at each milestone.
Alex is a DevOps consultant who primarily works with mid-sized companies and startups. He has a $20,000 line of credit and $5,000 in savings.
He uses net-30 terms on all projects. Clients expect it, and it's easier to pitch. He doesn't have to negotiate.
The downside? He's constantly managing cash flow. He's learned to batch projects so that payments overlap—while he's waiting for Project A's net-30 payment, he's already invoicing Project B. He also uses his line of credit strategically when cash gets tight.
It works for him because he has the financial infrastructure and the discipline. It wouldn't work for Sarah or James.
Once you've chosen a model, you need to track it. This is where things get messy for solo developers.
You've got invoices in multiple states: sent, paid, overdue. You've got milestones that need to be tracked. You've got deposits that need to be reconciled against final revenue.
A spreadsheet works until it doesn't. You miss a due date. You forget to follow up on a payment. You lose track of which invoices have been paid.
This is where Cashierr comes in. It's built specifically for solo developers and uses AI agents to track your invoices, flag overdue payments, and show you your cash position in real time.
Instead of manually tracking deposits, milestones, and net-30 invoices, Cashierr's agents do it for you. They answer the two questions you care about most:
Before you decide, here are pitfalls to avoid.
Net-30 sounds professional. Deposits sound sketchy. But "professional" doesn't pay your bills. Cash flow does.
If net-30 means you're eating ramen for a month, it's not professional. It's reckless.
You don't have to use the same structure for every client. A large, established company might be fine with net-30. A startup might prefer milestones. Adjust based on the client and the project.
If you say net-30 but accept payment on day 45 without comment, you've just trained the client that your terms are negotiable.
Enforce your terms. If payment is late, send a friendly reminder. If it's very late, charge a late fee (if your contract allows). Consistency matters.
Ambiguity kills deals. If your deposit terms are unclear, the client might think they're entitled to a refund if they change their mind. If your milestones are vague, you'll argue about what "done" means.
Be explicit. In your contract, write out:
A 50% deposit might protect your cash flow, but it might also damage your relationship with a client who feels like you don't trust them.
Sometimes it's worth sacrificing a bit of cash flow protection for a better relationship, especially if the client is long-term or might refer others.
Find the balance. A 25% deposit + net-30 on the remainder is often a good compromise.
Your invoice structure is only part of the picture. You also need clear scope and contracts.
A deposit doesn't protect you if you haven't defined what the client is paying for. Milestones don't work if you haven't defined what "done" looks like at each stage.
Before you send an invoice, you need:
If you're nervous about legal stuff, there are templates online. Bonsai and similar platforms offer contract templates for freelancers. Or hire a lawyer for a few hours to create a template you can reuse.
The point is: don't rely on your invoice structure alone to protect you. Combine it with clear scope and a real contract.
Here's what to do now:
And remember: this is about protecting your time and your business. You're not being greedy by asking for a deposit or using milestones. You're being smart.
Master the 3-bucket system for solo developers: operating, tax, and profit accounts. Stop leaving money on the table and make tax season painless.
Master your solo dev finances in 30 minutes every Friday. Track revenue, expenses, goals, and cash flow with this step-by-step ritual.
Master revenue forecasting by tracking just 5 metrics. Learn which data points drive 80% of forecast accuracy for freelance developers.