> ## Documentation Index
> Fetch the complete documentation index at: https://docs.charle.agency/llms.txt
> Use this file to discover all available pages before exploring further.

# Billing Examples

> Worked examples showing how billing calculations work in practice

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))
```

| Scenario          | Actual vs Estimate     | Result             |
| ----------------- | ---------------------- | ------------------ |
| Fast completion   | Actual \< Average      | Bill the average   |
| Normal completion | Average ≤ Actual ≤ Max | Bill the actual    |
| Overrun           | Actual > Max           | Bill 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)

| Metric        | Value     |
| ------------- | --------- |
| Average       | 4.5 hours |
| Maximum       | 6 hours   |
| Actual logged | 3 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)

<Tip>
  Banked time rewards efficiency. The team completed quality work in less time, creating margin for the agency.
</Tip>

***

## 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)

| Metric        | Value    |
| ------------- | -------- |
| Average       | 12 hours |
| Maximum       | 16 hours |
| Actual logged | 14 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)

| Metric        | Value    |
| ------------- | -------- |
| Average       | 12 hours |
| Maximum       | 16 hours |
| Actual logged | 22 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)

<Warning>
  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?
</Warning>

***

## Example 4: Multi-Requirement Task

A task with both design and development, each calculated separately.

**Task:** Redesign account settings page

### Design Requirement (sized M)

| Metric        | Value     |
| ------------- | --------- |
| Average       | 4.5 hours |
| Maximum       | 6 hours   |
| Actual logged | 3.5 hours |

```
Billable = MIN(6, MAX(4.5, 3.5)) = 4.5 hours
Banked: 1 hour
```

### Development Requirement (sized L)

| Metric        | Value    |
| ------------- | -------- |
| Average       | 12 hours |
| Maximum       | 16 hours |
| Actual logged | 15 hours |

```
Billable = MIN(16, MAX(12, 15)) = 15 hours
Banked: 0, Overage: 0
```

### Task Totals

| Metric       | Design | Development | Total |
| ------------ | ------ | ----------- | ----- |
| Quoted (avg) | 4.5h   | 12h         | 16.5h |
| Actual       | 3.5h   | 15h         | 18.5h |
| Billable     | 4.5h   | 15h         | 19.5h |
| Banked       | 1h     | 0           | 1h    |
| Overage      | 0      | 0           | 0     |

**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)

| Metric        | Value   |
| ------------- | ------- |
| Average       | 15 mins |
| Maximum       | 30 mins |
| Actual logged | 10 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)

| Metric        | Value     |
| ------------- | --------- |
| Average       | 80 hours  |
| Maximum       | 120 hours |
| Actual logged | 95 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:

| Task      | Avg     | Actual    | Billable | Banked   |
| --------- | ------- | --------- | -------- | -------- |
| Task A    | 8h      | 7h        | 8h       | 1h       |
| Task B    | 4h      | 3.5h      | 4h       | 0.5h     |
| Task C    | 12h     | 10h       | 12h      | 2h       |
| Task D    | 6h      | 5h        | 6h       | 1h       |
| **Total** | **30h** | **25.5h** | **30h**  | **4.5h** |

**Interpretation:**

* Team is efficient
* Estimates may be slightly conservative
* Good profit margins

### Pattern: Occasional Overruns

Mixed results with some tasks going over:

| Task      | Avg     | Max     | Actual  | Billable | Result      |
| --------- | ------- | ------- | ------- | -------- | ----------- |
| Task A    | 8h      | 12h     | 6h      | 8h       | +2h banked  |
| Task B    | 4h      | 6h      | 4h      | 4h       | neutral     |
| Task C    | 12h     | 16h     | 18h     | 16h      | −2h overage |
| Task D    | 6h      | 8h      | 5h      | 6h       | +1h banked  |
| **Total** | **30h** | **42h** | **33h** | **34h**  | **+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:

| Task      | Avg     | Max     | Actual  | Billable | Overage |
| --------- | ------- | ------- | ------- | -------- | ------- |
| Task A    | 8h      | 12h     | 14h     | 12h      | 2h      |
| Task B    | 4h      | 6h      | 8h      | 6h       | 2h      |
| Task C    | 12h     | 16h     | 20h     | 16h      | 4h      |
| **Total** | **24h** | **34h** | **42h** | **34h**  | **8h**  |

**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

| Task              | Avg     | Billable |
| ----------------- | ------- | -------- |
| Homepage redesign | 16h     | 18h      |
| Blog integration  | 12h     | 14h      |
| Contact form      | 8h      | 8h       |
| Mobile fixes      | 10h     | 12h      |
| Performance audit | 8h      | 10h      |
| **Total**         | **54h** | **62h**  |

**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.

***

## Related

<CardGroup cols={2}>
  <Card title="Billing Model" icon="calculator" href="/concepts/billing/billing-model">
    The formula explained
  </Card>

  <Card title="T-Shirt Sizing" icon="ruler" href="/concepts/estimation/t-shirt-sizing">
    Size definitions and ranges
  </Card>

  <Card title="Hour Rollover" icon="rotate" href="/concepts/billing/hour-rollover">
    How hours carry between months
  </Card>

  <Card title="Efficiency" icon="bolt" href="/concepts/financial/efficiency">
    Understanding banked time and overage
  </Card>
</CardGroup>
