Skip to content
Developer Business Lab
Menu
Developer Business Lab guides and implementation workbooks arranged on a developer workspace

Price

How to Structure a Payment Schedule for a Freelance Web Development Project

Learn how to structure deposits, milestone payments, and final payment so a freelance web project does not leave most of your fee at risk until the end.

Developer Business Lab·September 23, 2026

A freelance developer can price a project well and still create a bad deal by structuring the payments badly.

The familiar version is a large project with a small deposit and almost everything else due at launch. It feels simple. The client pays enough to reserve the project, you build the site, and you collect the balance when the work is finished.

The problem is that the payment schedule has quietly made you the project’s lender.

As weeks of work accumulate, so does the amount of your fee that remains exposed to client delays, approval problems, shifting priorities, internal politics, cancellation, and simple reluctance to make a large final payment. A project that is 80 percent complete may still have only 20 or 30 percent of its fee collected.

A better payment schedule does more than divide a price into installments. It keeps cash collection reasonably aligned with the amount of commercial commitment and work already invested in the project.

That principle matters whether you call the first payment a deposit, an initial payment, or the first project installment. The terminology and legal treatment can vary by contract and jurisdiction. The commercial problem is more durable: you do not want the unpaid balance to grow faster than your exposure.

Payment terms are part of the price

Developers often separate pricing from payment terms in their heads. First they decide that a project costs $12,000. Then, almost as an administrative afterthought, they decide whether to invoice 50 percent upfront and 50 percent at the end.

But those are not independent decisions.

A $12,000 project paid entirely before work begins is commercially different from the same $12,000 project paid 30 days after launch. The nominal price is identical, but the developer is carrying very different amounts of financing risk, collection risk, and working-capital pressure.

That does not mean every client must prepay every project. It means the payment structure belongs in the commercial design of the engagement rather than in the invoice settings you configure after the proposal is accepted.

This is especially important for solo developers. Payroll may not be your problem, but your own bills continue while a project is underway. If several clients owe large balances at the same time, profitable work on paper can still produce a cash-flow problem.

The first payment should create real commitment

An initial payment serves several purposes at once. It confirms that the client is willing to make a financial commitment, gives the project a defined commercial start, and reduces the amount of unpaid exposure you accumulate during the earliest work.

The mistake is treating the first payment as merely a token reservation fee.

Suppose a project will occupy a meaningful part of your capacity for six weeks. You turn down or delay other work because that capacity has been sold. A very small initial payment may not reflect the economic commitment you have made by reserving that time.

The appropriate amount depends on the project, but the principle is useful: the client should have meaningful financial commitment in the project before you make meaningful delivery commitment to it.

That is also why “signed contract” and “project start” do not always need to mean the same thing. Your commercial process can require both agreement and the specified initial payment before capacity is reserved or production begins. If your proposal process is still inventing those conditions at the last minute, the Developer Proposal & Closing Kit addresses the larger path from qualified opportunity through agreement, payment, and a responsible project start.

Milestones should represent commercial progress, not arbitrary dates

For a short, tightly bounded project, two payments may be enough. Longer or higher-value engagements often benefit from additional installments because more work and more calendar time pass before completion.

The weak way to add installments is to choose dates that have no relationship to the engagement: 25 percent on the first of the month, another 25 percent two weeks later, and so on. That can work, but it does not explain what the payments represent.

A stronger schedule connects payment points to meaningful progress in the engagement.

For example, a project might use an initial payment to start, another payment after an agreed design or planning stage, another when the principal implementation reaches its defined review state, and a remaining balance before final launch or handoff. The exact stages depend on what you sell.

The useful property is not the number of milestones. It is that both parties can tell when a payment becomes due without renegotiating the meaning of “almost done.”

That requires milestones to be observable. “When development is 50 percent complete” is usually weak because 50 percent is difficult to prove. “When the approved page set is implemented in the staging environment and ready for the defined client review” is much easier to recognize.

If you cannot describe what has to be true at a milestone, you probably do not have a milestone yet.

Do not make every payment depend on client approval

This is one of the most consequential design choices in a payment schedule.

A milestone can be based on your completion of a defined obligation, or it can be based on the client’s approval of that work. Those sound similar until the client stops responding.

Imagine that you finish a defined stage on Tuesday and submit it for review. The client is busy. The person responsible for approval goes on vacation. A second stakeholder appears. Feedback arrives three weeks later.

If the next payment becomes due only when the client chooses to approve, the client’s internal delay also becomes a delay in your cash collection—even though you performed the work required to reach the review point.

That does not mean client acceptance is irrelevant. It means you should distinguish your delivery milestone from the client’s review obligation.

Your agreement might define what you must deliver to trigger the invoice, how long the client has to review it, what constitutes a defect or required correction, and what happens to the schedule if feedback is late. The exact contract language should be appropriate to your jurisdiction and reviewed professionally when needed, but the commercial architecture should be deliberate.

This distinction is closely related to acceptance criteria. If “done” has no observable meaning, payment disputes can easily become disguised scope disputes.

Avoid leaving a disproportionate balance until launch

The most dangerous payment schedule is often the one that makes the final invoice carry too much of the project economics.

Suppose you take 25 percent to start and make the remaining 75 percent due at launch. By the time the site is ready, you may have completed nearly all the work while most of the fee is still outstanding. You now have the greatest financial exposure at exactly the point where the client has the most opportunities to delay the project.

Launch can be held up by content, DNS access, legal review, a stakeholder who was absent from discovery, an unrelated marketing campaign, or the client’s simple inability to choose a date. None of those necessarily means your work is incomplete.

A healthier schedule generally reduces the amount riding on that final event. By the time you reach launch or handoff, you want most of the project economics already settled.

There may still be a final balance. The point is that it should not represent months of uncompensated work waiting behind one client-controlled event.

This becomes even more important when client delays interrupt a freelance project. A good delay policy protects your calendar. A good payment schedule keeps the same delay from becoming a financing problem too.

It is tempting to attach an invoice to every delivery event. That can create needless administrative friction.

A project might have ten internal milestones but only three payment points. Conversely, a long-running engagement may need a time-based payment even though a large technical phase has not yet reached completion.

Think of project milestones as tools for managing delivery and payment milestones as tools for managing commercial exposure. They can align where useful, but they serve different purposes.

For a relatively predictable website build, stage-based payments may align naturally with planning, implementation, and final handoff. For an uncertain integration or iterative software engagement, billing for actual time on a regular cadence may fit the risk better than pretending the work can be divided into clean fixed-price milestones.

That is why the payment schedule follows the pricing model. If you have not yet decided how the project should carry uncertainty, start with fixed price versus hourly pricing before designing installments.

A simple exposure test can reveal a weak schedule

You do not need an elaborate financial model to pressure-test a proposed schedule.

At each major point in the project, ask two questions:

  1. How much of the agreed fee have I earned through work performed or capacity committed?
  2. How much cash have I actually collected?

The gap between those numbers is your rough commercial exposure.

Consider a fictional $15,000 fixed-price project. This is an illustration, not a recommended universal schedule.

With a 20/80 structure, you collect $3,000 before starting. If you perform roughly $10,000 worth of the project’s obligation before the final invoice becomes due, your exposure has grown dramatically.

Now imagine the same project uses several meaningful payment points, and $12,000 has been collected by the time the work reaches final review. The project can still encounter a collection problem, but the amount at risk is much smaller.

This test is intentionally rough. You are not trying to assign an accounting value to every hour. You are looking for a structural mismatch where your unpaid exposure becomes large as the project advances.

If the graph in your head says “work performed rises steadily while cash collected stays almost flat until the end,” the schedule deserves another look.

Payment schedules should account for client-caused pauses

A payment plan that works only when the project proceeds perfectly is not much of a plan.

Clients miss feedback dates. Content arrives late. Internal priorities change. Projects pause.

Your agreement should establish what those events mean for the delivery schedule and for amounts already due. A client pause should not retroactively erase work you completed or invoices that were properly triggered before the pause.

For longer pauses, you may also need a restart process because your original capacity reservation no longer exists. That is a separate commercial issue from collecting for work already performed.

The same distinction matters if the client terminates the project altogether. The operational questions around completed work, reserved capacity, assets, outstanding payment, and restart conditions are covered in how to handle a client cancellation.

Do not use payment terms to trap the client

Risk control can become unreasonable if taken too far.

A payment schedule should protect the economics of legitimate work, not manufacture leverage by keeping the client’s business hostage. Demanding nearly all payment before providing any meaningful evidence of progress may create the opposite imbalance. Refusing to correct genuine defects until an unrelated disputed invoice is paid can turn a commercial disagreement into a larger trust problem.

The goal is reciprocal commitment.

The client should not receive months of financed development while carrying little financial commitment. The developer should not use technical control to make legitimate review or dispute impossible. Strong terms make the state of the engagement clearer for both sides.

That clarity also makes sales easier. A buyer can see what they are committing to now, what causes the next payment, what they receive at each stage, and what remains outstanding at the end.

Choose the schedule before the proposal is assembled

Payment terms become awkward when they first appear in the final proposal.

By that point, the client may already have formed assumptions about how much is due upfront, whether invoices are monthly, or whether the entire balance waits until launch. If your payment structure materially affects the buying decision, discovering disagreement at the document stage creates unnecessary friction.

The better sequence is to decide the commercial architecture before the proposal records it. That includes the pricing model, total price or rate, initial commitment, payment events, client responsibilities, treatment of material changes, and start conditions.

Then the proposal can document a coherent deal rather than becoming the place where the deal is invented.

For the broader proposal structure, see what a freelance web development proposal should include.

The best schedule keeps financial exposure from outrunning project progress

There is no universal percentage split that is correct for every freelance web project.

A one-week landing page, a twelve-week custom website, an uncertain legacy integration, and an ongoing development engagement should not automatically share the same payment structure. The size of the project, duration, pricing model, uncertainty, client dependencies, and degree of capacity you reserve all matter.

The durable principle is simpler than a formula:

As your commitment and completed work increase, the amount of the fee already collected should increase with them.

You are not trying to eliminate every possibility of nonpayment. You are preventing the commercial arrangement from concentrating most of your risk at the end of the project.

That is what a payment schedule is really for.

Take the next step

Build a pricing system you can use on the next project.

The Web Developer Pricing System goes beyond one pricing question and gives you a repeatable way to work out what a project must cover, what the uncertainty changes, and what price and terms make sense.