Skip to main content
These examples show how the billing formula applies in real scenarios. Each example walks through the calculation step by step.

Quick Reference

The billing formula for each requirement:
Billable = MIN(maximum, MAX(average, actual))
ScenarioActual vs EstimateResult
Fast completionActual < AverageBill the average
Normal completionAverage ≤ Actual ≤ MaxBill the actual
OverrunActual > MaxBill the max (cap)

Example 1: Fast Completion (Banked Time)

A developer finishes efficiently, beating the quoted average. Task: Update checkout flow Requirement: Development, sized M (3-6 hours)
MetricValue
Average4.5 hours
Maximum6 hours
Actual logged3 hours
Calculation:
Billable = MIN(6, MAX(4.5, 3))
         = MIN(6, 4.5)
         = 4.5 hours
Result:
  • Client pays: 4.5 hours (the quoted average)
  • Team worked: 3 hours
  • Banked time: 1.5 hours (profit margin)
Banked time rewards efficiency. The team completed quality work in less time, creating margin for the agency.

Example 2: Normal Completion

Work takes longer than average but stays within the quoted range. Task: Build product filters Requirement: Development, sized L (8-16 hours)
MetricValue
Average12 hours
Maximum16 hours
Actual logged14 hours
Calculation:
Billable = MIN(16, MAX(12, 14))
         = MIN(16, 14)
         = 14 hours
Result:
  • Client pays: 14 hours (actual time)
  • Team worked: 14 hours
  • No banked time or overage
This is the expected outcome when estimates are accurate but the work is on the complex side of the range.

Example 3: Overrun (Capped)

Work exceeds the maximum, but the client is protected by the cap. Task: Integrate payment gateway Requirement: Development, sized L (8-16 hours)
MetricValue
Average12 hours
Maximum16 hours
Actual logged22 hours
Calculation:
Billable = MIN(16, MAX(12, 22))
         = MIN(16, 22)
         = 16 hours
Result:
  • Client pays: 16 hours (the maximum cap)
  • Team worked: 22 hours
  • Overage: 6 hours (absorbed by agency, non-billable)
Overage is a red flag. Review why this happened—was the scope larger than expected? Was there technical debt? Should the estimate have been XL?

Example 4: Multi-Requirement Task

A task with both design and development, each calculated separately. Task: Redesign account settings page

Design Requirement (sized M)

MetricValue
Average4.5 hours
Maximum6 hours
Actual logged3.5 hours
Billable = MIN(6, MAX(4.5, 3.5)) = 4.5 hours
Banked: 1 hour

Development Requirement (sized L)

MetricValue
Average12 hours
Maximum16 hours
Actual logged15 hours
Billable = MIN(16, MAX(12, 15)) = 15 hours
Banked: 0, Overage: 0

Task Totals

MetricDesignDevelopmentTotal
Quoted (avg)4.5h12h16.5h
Actual3.5h15h18.5h
Billable4.5h15h19.5h
Banked1h01h
Overage000
Result: Despite development taking longer, the design efficiency created 1 hour of banked time overall.

Example 5: Tiny Task (XS)

Small tasks use the same formula, just with smaller numbers. Task: Fix typo on contact page Requirement: Development, sized XS (0-30 mins)
MetricValue
Average15 mins
Maximum30 mins
Actual logged10 mins
Calculation:
Billable = MIN(30, MAX(15, 10))
         = MIN(30, 15)
         = 15 mins
Result:
  • Client pays: 15 mins
  • Team worked: 10 mins
  • Banked: 5 mins
Even tiny efficiency gains add up across many small tasks.

Example 6: Large Task (XXL)

Large tasks follow the same rules but with bigger stakes. Task: Build customer portal MVP Requirement: Development, sized XXL (40-120 hours)
MetricValue
Average80 hours
Maximum120 hours
Actual logged95 hours
Calculation:
Billable = MIN(120, MAX(80, 95))
         = MIN(120, 95)
         = 95 hours
Result:
  • Client pays: 95 hours (actual)
  • Within the quoted range
  • No banked time or overage

Common Patterns

Pattern: Consistent Small Gains

When the team regularly finishes 10-20% under average:
TaskAvgActualBillableBanked
Task A8h7h8h1h
Task B4h3.5h4h0.5h
Task C12h10h12h2h
Task D6h5h6h1h
Total30h25.5h30h4.5h
Interpretation:
  • Team is efficient
  • Estimates may be slightly conservative
  • Good profit margins

Pattern: Occasional Overruns

Mixed results with some tasks going over:
TaskAvgMaxActualBillableResult
Task A8h12h6h8h+2h banked
Task B4h6h4h4hneutral
Task C12h16h18h16h−2h overage
Task D6h8h5h6h+1h banked
Total30h42h33h34h+1h net
Interpretation:
  • Mostly healthy
  • Task C needs investigation—why the overrun?
  • Net positive despite one problem task

Pattern: Systemic Underestimation

When overruns are frequent:
TaskAvgMaxActualBillableOverage
Task A8h12h14h12h2h
Task B4h6h8h6h2h
Task C12h16h20h16h4h
Total24h34h42h34h8h
Interpretation:
  • Serious estimation problem
  • 8 hours of non-billable work
  • Need to review estimation process
  • Consider bumping future tasks up a size

Month-End Rollover Example

Showing how billable hours affect next month’s allocation. Client: TechStart Inc Monthly allocation: 60 hours

Month 1 Tasks

TaskAvgBillable
Homepage redesign16h18h
Blog integration12h14h
Contact form8h8h
Mobile fixes10h12h
Performance audit8h10h
Total54h62h
Rollover calculation:
  • Allocated: 60 hours
  • Billable: 62 hours
  • Rollover: 2 hours

Month 2

  • Base allocation: 60 hours
  • Minus rollover: 2 hours
  • Available: 58 hours
PM plans Month 2 work to fit within 58 hours.

Billing Model

The formula explained

T-Shirt Sizing

Size definitions and ranges

Hour Rollover

How hours carry between months

Efficiency

Understanding banked time and overage