Skip to content

Retainers

Retainers are ongoing client relationships billed at a fixed monthly fee for a set number of hours. VERA's job with retainers is to keep you honest on pace — not just over-spending, but under-delivering too.


How retainers work

A retainer project has a budget_hours value that represents the annual hours committed to the client (e.g. 480 h/yr = 40 h/month).

Unlike Fixed Price or T&M, retainer revenue is not calculated per entry. The client pays a monthly fee regardless of exact hours logged. What matters is whether the agency is delivering what was promised.

Underspend is as problematic as overspend. If the agency logs 20 of a 40-hour monthly budget, the client paid for 40 hours of value and received 20. That's a relationship problem. VERA flags both directions.


Burn rate

Burn rate is the pace at which a retainer is consuming its monthly budget.

pace_per_day = hours_logged ÷ days_elapsed
projected_eom_hours = pace_per_day × days_in_month

VERA compares the projected end-of-month total against the monthly budget and categorises it:

StatusProjected utilisationWhat it means
🚨 Critical overpace> 150%You'll burn 3× the budget at this rate
⚠️ Warning overpace110–150%Trending 20–50% over budget
✅ On track90–110%Right on target
⚠️ Warning underpace50–90%Using less than planned — may underdeliver
🚨 Critical underpace< 50%Leaving major value unused — client paid for work not delivered

Envelope-aware forecast

VERA can project retainer hours two ways:

1. Pace-based (historical only)

projected_eom_hours = pace_per_day × days_in_month

Based purely on how fast hours have been accumulating. Accurate if the rest of the month looks like the past.

2. Envelope-aware (recommended)

forecast_with_allocations = hours_logged + allocated_remaining

Where allocated_remaining is the total of active envelopes on the project.

This is more accurate when Managers actively maintain envelopes. If your team has 12 hours remaining in their envelopes and has already logged 25 of 40 hours, the envelope-aware forecast shows 37 hours — right on target.

When to prefer each:

  • Use envelope-aware when Managers consistently maintain envelopes
  • Use pace-based when envelopes are sparse or rarely updated

Retainer workflow

When asked about a retainer's status, VERA always follows this sequence:

  1. get_project_info — verify the project type is Retainer
  2. get_retainer_status — fetch current month burn rate, pace, forecast, and unused value

This is mandatory. Never use get_project_status (task budgets) for retainers — it's misleading because retainers are governed by monthly burn rate, not task-level caps.


What VERA shows in a retainer summary

When you ask "how is Nike tracking this month?":

  • Hours logged vs. monthly budget
  • Days elapsed in the current month
  • Projected end-of-month total (pace-based)
  • Forecast with allocations (if allocations exist)
  • When budget will be exceeded (if overpace)
  • Unused dollar value (if underpace): unused_hours × billing_rate
  • Status with urgency emoji

Retainer budget field

The budget_hours field on a Retainer project stores the annual total (e.g. 480 for 40/month). VERA divides by 12 internally to get the monthly cap for burn rate calculations.


Morning summary (Managers/Owners)

The morning reminder includes retainer status for all assigned retainers. Critical and warning items are surfaced automatically — you don't need to ask.


Multiple retainers

get_pm_retainer_summary gives a Manager a rolled-up view of all their retainer projects — status, pace, and utilisation for each. Use this for a quick portfolio check without drilling into each project individually.

Further reading

VERA by talktalkmake