How risk is distributed in web contracts
Every software and web design contract is fundamentally an agreement on how risk is shared between the client and the service provider:
- Fixed-Price Model: The agency agrees to deliver a specified set of deliverables for an exact dollar amount. If the work takes 40 extra hours due to internal agency misestimation, the agency absorbs the cost. The client has 100% budget predictability.
- Time-and-Materials (T&M): The client pays for actual hours worked at an agreed hourly rate ($75–$200/hr) or weekly sprint fee. If unexpected technical edge cases arise, the client pays for every additional hour required to resolve them.
Side-by-side comparison of billing models
| Factor | Fixed-price contract | Time-and-materials (Hourly) |
|---|---|---|
| Budget certainty | Guaranteed upfront total | Open-ended; requires budget caps |
| Scope flexibility | Strict; changes require formal change orders | High; modify requirements any sprint |
| Planning required | Detailed upfront wireframes and sitemap | Can start with high-level concept |
| Incentive alignment | Agency incentivized to ship efficiently | Agency earns more when project takes longer |
| Best fit | Marketing sites, redesigns, Shopify stores | R&D prototypes, complex internal apps |
The hidden risk of fixed-price: Scope friction
While fixed-price contracts protect your bank account, they can introduce interpersonal friction if the statement of work is ambiguous.
When a client asks for "a few small tweaks" that weren't in the original specification, an agency working on a fixed budget must either push back with a paid change order or absorb the extra labor.
The best of both worlds: Phased fixed pricing
For larger web projects, seasoned buyers use a phased fixed-price structure:
- Phase 1 (Fixed Price Discovery & Wireframes): Pay a modest fee to produce the exact sitemap, Figma wireframes, and technical specifications.
- Phase 2 (Fixed Price Build): With wireframes fully locked in, both parties sign a firm fixed-price build agreement with zero ambiguity.
- Phase 3 (Hourly / Retainer Support): Post-launch enhancements and ongoing conversion tweaks run on a flexible monthly maintenance plan.
