Deposits, milestones and payment terms: what is normal

How payment is usually structured for web and software work, what protects each side, and the terms that should make you pause.

3 minread 663words last updated

The short answer

Payment for web and software work normally has three parts: a deposit at signing that commits both sides and covers early work, payments at milestones tied to things you can see and use, and a final payment at launch or acceptance, with a separate monthly fee for maintenance and support afterwards. Good milestones are demonstrable deliveries, an approved prototype, a working stage on a preview, a launched release, never dates or hours. The structure protects both sides: the builder is paid for work done, and you pay for results you have seen. The terms that should make you pause are full payment upfront, milestones defined by time, final payment before hand-over, and ownership that transfers only when the last invoice is settled, which turns a payment dispute into a hostage situation.

What normal looks like

ElementUsual shapePurpose
DepositA modest share at signingCommitment; covers discovery and early work
Milestone paymentsSeveral, each tied to a demonstrable deliveryYou pay for progress you can see
Final paymentAt launch or acceptance, with hand-over completeCloses the project
RetentionSometimes a small share held until a short warranty period endsCovers defects found after launch
Monthly feesMaintenance, support, hosting in your accountsOngoing work, separately
Change requestsPriced and approved individually, or drawn from a change budgetChanges visible and agreed
Payment periodA standard number of days per invoiceCash flow for both

Milestones done well

  1. Discovery accepted: scope, not-included list, risks, prototype approved by the people who will use it.
  2. Each build stage accepted: working software on a preview, tested against the stage’s acceptance criteria.
  3. Launch accepted: live, documented, accounts in your name, hand-over complete.
  4. Warranty period: defects fixed within it; any retention released at its end.
  5. Ongoing: monthly invoices for maintenance and support against the agreed scope and report.

Terms that should make you pause

Full payment upfront for anything beyond a small job. Milestones described as dates or hours rather than deliveries. Final payment due before hand-over or documentation. Ownership held until the last invoice clears. Vague acceptance with no criteria or window. Automatic renewal of maintenance with long notice. None is necessarily malicious; each moves risk to you without a corresponding protection, and each is negotiable at signing.

What this means for you

Expect a deposit, milestones tied to demonstrable deliveries with acceptance criteria, a final payment at launch with hand-over complete, and monthly fees separately. Push back on full payment upfront, time-based milestones, payment before hand-over and ownership held hostage to the last invoice. Payment terms are where a project’s fairness is decided before it starts, and they are far easier to fix at signing than at the final invoice.

Written by the CivSec S.M.A.R.T team

We build and run websites, software and AI systems for businesses. We write about what we see in that work, in plain language, and we update articles when things change.

Last checked . Spotted something outdated? Tell us.

Frequently asked questions

Is a deposit normal, and how much?

A deposit is normal: it commits both sides and covers the builder's early work. A modest share of the project value at signing, with the rest at milestones, is the usual shape. A very large deposit or full payment upfront moves all the risk to you and removes the builder's incentive to finish; it should be questioned unless the work is very small.

What makes a good milestone?

Something demonstrable that you can accept or reject: the discovery document and prototype approved, a working stage on a preview link, a release live. Milestones defined by dates or hours pay for time passing, not for progress. Tie payment to seeing the thing.

What if we are unhappy at a milestone?

The milestone is the moment to say so, specifically, against the acceptance criteria agreed for it. A good contract defines what acceptance means and gives a short window to raise issues. Paying and complaining later loses the moment; withholding without stating the issue breaks the relationship. Say what is missing, in writing, at the milestone.