Free 5-day trial — no credit card, no commitment. Get started →
mataee
Toggle sidebar
Milestone Billing for Web Agencies: Mockups, Development, Testing, Delivery

Photo de Mitchell Luo sur Unsplash

Methods & Productivity

Milestone Billing for Web Agencies: Mockups, Development, Testing, Delivery

30 March 2026 · 13 min read · Mataee

Your agency just finished a EUR 40,000 project. The site is live, the client is happy, your team is moving on to the next project. There's just one detail: you still haven't been paid. The final invoice went out three weeks ago, the client's accounting department processes payments at 45 days, and in the meantime your cash flow has been funding your team's salaries for four months.

This scenario isn't unusual. It's the default mode for the majority of web agencies that invoice at the end of a project or in two installments (deposit + balance). Milestone billing solves this problem by aligning collections with actual project progress. Here's how to implement it in practice.

Why Invoicing in One Lump Sum Is Risky

The most common billing model in web agencies remains the "30% at signing, 70% at delivery" -- or worse, "100% at delivery." This model creates three structural problems.

The Cash Flow Risk

A 4-month project with final billing means your agency finances the entire production cost for 4 months. Salaries, payroll taxes, tools, hosting -- everything leaves your cash reserves before a single euro comes in. If your client pays at 30 days end of month after delivery, the actual time between project start and collection is 5 to 6 months. For a 10-person agency with monthly payroll costs of EUR 35,000, financing a single 4-month project represents EUR 140,000 in tied-up cash.

Key figure: A 10-person web agency running 3 simultaneous projects with final billing ties up an average of EUR 300,000 to 400,000 in working capital. This is a major risk that a single late payment or cancelled project can turn into a crisis.

The Delivery Dispute Risk

When 70% or 100% of the amount is billed at delivery, the client holds considerable leverage: they can delay payment by citing reservations, corrections needed, or "missing" features they "definitely asked for." You end up in a weak negotiating position, with all your work already done and no collections to cover it.

Milestone billing reverses this dynamic. At each stage, the client validates a specific deliverable and pays the corresponding portion. If they have reservations, those apply to a fraction of the project, not the whole thing. And you don't move to the next milestone until the current one is validated and invoiced.

The Unfunded Scope Creep Risk

On a project billed at the end, scope additions along the way are rarely rebilled. The client asks for "just a small addition," the project manager agrees to maintain the relationship, and the hours pile up. At delivery, the original quote no longer covers the actual work delivered, but it's too late to renegotiate.

With structured milestones, each stage has a defined hours budget. When a milestone overruns, it's visible immediately, and the discussion about a potential change order happens before moving to the next milestone -- not after final delivery.

Key takeaway: Billing at project end means taking all the risks (cash flow, disputes, scope creep) and giving all the negotiating power to the client. Milestone billing rebalances the relationship by tying each payment to a validated deliverable.

The Natural Milestones of a Web Project

A web project, regardless of its size, follows a natural progression through distinct phases. Each produces an identifiable deliverable that the client can validate. These deliverables are the basis for your billing milestones.

Milestone 1: Design and Validated Mockups

This is the first production phase after the brief. It includes UX strategy, wireframes, graphic mockups of key pages, and potentially an interactive prototype. The deliverable is tangible: the client sees what their site will look like.

This milestone is strategic for two reasons. First, it materializes the first value created by your agency -- the client goes from "I have a brief" to "I can see my future site." Second, validating the mockups locks in the visual and functional scope: any subsequent change constitutes a deviation from what was approved and can justify a change order.

Deliverable: desktop and mobile mockups of main pages, validated in writing. Billing trigger: formal client validation (email, signed validation report). Typical budget: 25-30% of total project.

Milestone 2: Development and Integration

This is the project's core: integrating mockups into code, back-end development, CMS setup, and specific features. This phase consumes the most time and resources.

The deliverable for this phase is a functional site deployed on a staging environment, accessible to the client. All features specified in the requirements are implemented and navigable. Final content may not be in place yet, but the structure, templates, and mechanics are operational.

Deliverable: functional site on staging environment, features implemented. Billing trigger: staging access delivered, feature demonstration to the client. Typical budget: 35-40% of total project.

Milestone 3: Testing and Corrections

The testing phase is when the client tests the site, identifies issues, and your team fixes bugs. It's also when final content is integrated and last design adjustments are applied.

For this milestone to work, the rules of engagement must be defined upfront: how many testing cycles are included (typically 2 to 3), what the acceptance criteria are, and the distinction between a bug (included) and an enhancement (out of scope, requiring an additional quote).

Deliverable: tested site, testing acceptance report signed by the client, issue list resolved. Billing trigger: signed testing acceptance report (potentially with minor reservations). Typical budget: 20-25% of total project.

Milestone 4: Go-Live and Delivery

The final phase: production deployment, DNS configuration, SSL activation, performance testing, client training on administration, and technical documentation handover. The site is live and operational.

Deliverable: site in production, admin access provided, technical documentation delivered. Billing trigger: actual go-live and access handover. Typical budget: 10-15% of total project.

Key takeaway: Four milestones are enough to cover nearly all web projects. The key is that each milestone has an objectively verifiable deliverable and an unambiguous billing trigger.

Assigning an Hours Budget to Each Milestone

Milestone billing isn't just about splitting a total amount into four parts. To be effective, each milestone must be backed by a precise hours budget, by role, that enables real-time monitoring of consumption.

Let's take the example of a EUR 40,000 (excl. tax) site redesign project, with an average loaded hourly rate of EUR 65/h, giving a total budget of approximately 615 hours.

Milestone % budget Amount Hours budget Breakdown by role
1. Mockups 30% EUR 12,000 185 h Art Director 80h, UX 50h, PM 35h, Content 20h
2. Development 40% EUR 16,000 245 h Front-end dev 90h, Back-end dev 100h, PM 35h, Integration 20h
3. Testing 20% EUR 8,000 123 h QA 50h, Front-end dev 25h, Back-end dev 25h, PM 15h, Content 8h
4. Delivery 10% EUR 4,000 62 h DevOps 20h, PM 20h, Training 12h, Documentation 10h
Total 100% EUR 40,000 615 h

This allocation isn't set in stone. It varies depending on the project's nature, technical complexity, and content volume. What matters is that each milestone has an explicit hours budget that serves as a reference for project management.

When a milestone approaches 80% of its hours budget, it's a warning signal. At 100%, a decision is needed: either the milestone is nearly complete and the variance is marginal, or there's a structural overrun requiring a discussion with the client about scope or budget adjustment.

Concrete example: On a EUR 40,000 project, the "Development" milestone consumes 280 hours instead of 245. The 35-hour variance represents EUR 2,275. Detected during the milestone, this overrun can be offset by adjusting the "Testing" milestone or addressed through a change order. Detected after delivery, it's lost margin.

Ready to track your time differently?

Free 5-day trial — no commitment, no credit card.

Get started

The Workflow: Milestone Validation, Billing, Moving to the Next Milestone

The mechanism is simple in theory, but demands rigor in execution. Here's the standard workflow for each milestone transition.

Step 1: The Deliverable Is Produced

The team has completed the current milestone's work. The project manager verifies that the deliverable meets specifications and presents the result to the client.

Step 2: The Client Validates the Deliverable

The client reviews the deliverable and provides feedback. Two possible scenarios:

  • Validation without reservations: the client signs the validation report. The milestone is closed.
  • Validation with minor reservations: the client identifies minor corrections. The team incorporates them (within the milestone's hours budget), and the report is signed.

If the client requests major changes outside the original scope, that's a change order, not a correction. The discussion about additional cost happens before the work is done, not after.

Step 3: The Invoice Is Issued

As soon as the validation report is signed, the milestone invoice is issued. Not "sometime this week," not "when the accountant has time" -- immediately. Every day of delay in issuing the invoice is a day of delay in collection.

Step 4: The Next Milestone Begins

The team moves to the next milestone. Ideally, starting the next milestone isn't conditional on actual payment (that would be too penalizing for the timeline), but on invoice issuance and validation of the previous deliverable. However, if a client accumulates unpaid invoices, the project manager has every right to suspend production.

Key takeaway: The workflow is linear and non-negotiable: deliverable produced, client validates, invoice issued, next milestone. Each step triggers the next. If a step stalls, everything stops until resolved. This mechanism is what protects your cash flow.

When the Client Stalls

The most common scenario is a client who's slow to validate a milestone. The mockups are presented, the client says "I'll get back to you next week," and three weeks pass with no response. Meanwhile, your team is allocated to the project but can't move forward.

Include a validation deadline per milestone in your terms and conditions (for example, 10 business days). Beyond this deadline, the milestone is considered validated by default, and the invoice is issued. This clause is almost never invoked, but its existence is enough to motivate clients to validate on time.

Cash Flow Comparison: With and Without Milestones

To illustrate the concrete impact on cash flow, let's take the same EUR 40,000 project over 4 months and compare two scenarios.

Scenario A: Traditional Billing (30% / 70%)

  • Month 0: Deposit of EUR 12,000 invoiced at signing. Collection: month 1 (30-day terms).
  • Months 1 to 4: Average monthly production cost: EUR 10,000. No billing.
  • Month 4: Balance of EUR 28,000 invoiced at delivery.
  • Month 5: Balance collected (30-day terms).
Month Cumulative expenses Cumulative collections Cash position
Month 0 EUR 0 EUR 0 EUR 0
Month 1 -EUR 10,000 +EUR 12,000 +EUR 2,000
Month 2 -EUR 20,000 +EUR 12,000 -EUR 8,000
Month 3 -EUR 30,000 +EUR 12,000 -EUR 18,000
Month 4 -EUR 40,000 +EUR 12,000 -EUR 28,000
Month 5 -EUR 40,000 +EUR 40,000 EUR 0

The maximum cash flow trough is -EUR 28,000 at month 4. For two full months, your agency finances the project at EUR 18,000 to 28,000 out of its own funds.

Scenario B: Milestone Billing

  • Month 0: Milestone 0 (startup deposit): EUR 4,000 invoiced. Collection: month 1.
  • Month 1: Milestone 1 (mockups validated): EUR 12,000 invoiced. Collection: month 2.
  • Months 2-3: Milestone 2 (development complete): EUR 16,000 invoiced at month 3. Collection: month 4.
  • Month 3: Milestone 3 (testing validated): EUR 8,000 invoiced. Collection: month 4.
  • Month 4: Milestone 4 (delivery): EUR 0 (already covered). Final collections.
Month Cumulative expenses Cumulative collections Cash position
Month 0 EUR 0 EUR 0 EUR 0
Month 1 -EUR 10,000 +EUR 4,000 -EUR 6,000
Month 2 -EUR 20,000 +EUR 16,000 -EUR 4,000
Month 3 -EUR 30,000 +EUR 16,000 -EUR 14,000
Month 4 -EUR 40,000 +EUR 40,000 EUR 0

The maximum cash flow trough drops to -EUR 14,000 at month 3 -- half of Scenario A. And this trough is short-lived, since the milestone 2 collection follows quickly.

Key figure: Milestone billing reduces working capital requirements by 40 to 50% compared to traditional 30/70 billing. Across 3 simultaneous projects, that represents EUR 40,000 to 60,000 in freed cash.

Adapting Milestones to Different Project Types

The 30/40/20/10 split is a starting point, not an absolute rule. Here's how to adapt it based on project type.

Project type Milestone 1 (Design) Milestone 2 (Dev) Milestone 3 (Testing) Milestone 4 (Delivery)
Simple brochure site 35% 35% 20% 10%
Corporate site redesign 30% 40% 20% 10%
Web application 25% 45% 20% 10%
Complex e-commerce 20% 45% 25% 10%
Maintenance project 10% 50% 30% 10%

For longer projects (over 6 months), add intermediate milestones. A 9-month web application project could have 6 to 8 milestones: functional scoping, UX/wireframes, UI mockups, dev sprint 1, dev sprint 2, testing, staging deployment, production go-live. The longer the project, the more frequent the milestones need to be to protect your cash flow.

The Terms and Conditions That Secure the System

Milestone billing only works if it's contractualized. Your general terms and conditions must include the following clauses:

Validation deadline. The client has X business days to validate each milestone. After this period, the milestone is deemed validated and the invoice is issued. A 10 business day deadline is a reasonable standard.

Payment terms per milestone. Each milestone invoice is payable within 30 days of invoice date (or less if you can negotiate it). Late payment penalties apply per invoice, not globally.

Suspension for non-payment. If a milestone invoice remains unpaid beyond the contractual deadline, the agency reserves the right to suspend production until regularization. This clause is rarely invoked, but it's essential for edge cases.

Testing acceptance definition. The number of included testing cycles, acceptance criteria, and the distinction between a bug and an enhancement must be explicitly defined. Without this definition, the testing phase can stretch indefinitely.

Key takeaway: A milestone without contractual backing is an intention. A milestone backed by a validation deadline, payment terms, and a suspension clause is a mechanism that protects your cash flow.

Implementing Milestone Billing at Your Agency

Transitioning to milestone billing isn't a complex technical undertaking. It's a process change that can be implemented in a few weeks.

Week 1: Define your standard milestones. For each project type you regularly sell (brochure site, redesign, application, e-commerce), define the 4 to 6 standard milestones with their budget allocation. Document the deliverables and billing triggers for each milestone.

Week 2: Update your quote templates and terms and conditions. Integrate the milestone structure into your proposal templates. Add the validation, deadline, and suspension clauses to your general terms and conditions.

Week 3: Train your project managers. The project manager is the guardian of the milestone workflow. They need to know how to present the mechanism to the client, manage validations, and trigger invoices at the right time. A 2-hour workshop is enough.

Week 4: Apply to a pilot project. Choose a project that's just starting and apply milestone billing. Adjust the process based on feedback, then generalize.

Time tracking by milestone is the natural complement to this approach. Without reliable time data by phase, you can't know if a milestone is within its hours budget -- and therefore whether your margin is preserved.


Milestone billing isn't an innovation. It's standard practice in construction, engineering, and the software industry. But in web agencies, it remains a minority practice -- often out of habit, sometimes out of fear of complicating the client relationship.

The opposite is exactly what happens. By structuring your billing around validated deliverables, you simplify the business relationship, secure your cash flow, and create natural checkpoints that protect your margin. The client benefits too: they pay for tangible results, not a promise. And in case of disagreement, the discussion focuses on a specific milestone, not the entire project.

The only prerequisite is knowing the actual time consumed per milestone. If your billing model relies on milestones but you don't track hours by phase, you're flying blind. Aligning milestone billing with phase-based time tracking is the combination that turns a best practice into a lasting competitive advantage.

Ready to track your time differently?

Free 5-day trial — no commitment, no credit card.

Related articles