Skip to content

Modeling retainers

Most agency work is some kind of retainer: a client relationship that repeats month after month. ZenPilot Reports doesn’t have a separate “retainer” type — instead, you model a retainer as a repeating project, and the only real decision is which project type it uses. This article is the decision guide.

Is the invoice amount fixed per billing period, or is it computed from the work?

That’s it. Not how the contract is worded, not whether it’s scoped in hours — how the money actually flows.

The customer pays… Model it as Revenue comes from
A fixed amount per period ($X/month, $Y/quarter), regardless of exact hours Fixed fee, repeating The amount you enter as revenue per period
Whatever the work adds up to — hours × billable rates, plus billable expenses Time & materials, repeating Calculated from tracked time and expenses

If the client pays the same amount every period, revenue is known in advance — the project’s job is to tell you whether you’re delivering the retainer within the hours it’s worth.

Set it up as:

  • Type: Fixed fee, Repeats: monthly (or the billing cadence), with the per-period amount as revenue.
  • Each period gets its own budget bar, so a heavy month shows as that month running hot instead of blurring into the year.

Scoped in hours but billed fixed? Still fixed fee. “40 hours per month for $6,000/month” bills the same $6,000 whether you work 32 hours or 47 — so the 40 hours is your delivery target, not your revenue. Enter the revenue, and use the hours to sanity-check delivery: if you consistently deliver far more hours than the retainer is worth, your margin quietly erodes, and that’s exactly what the project view will show.

Dynamic-billing retainers → Time & materials

Section titled “Dynamic-billing retainers → Time & materials”

If the invoice is computed from the work — you bill the hours actually spent at your rates, plus any billable expenses passed through — then revenue isn’t known until the work happens. That’s time & materials.

Set it up as:

  • Type: Time & materials, Repeats: monthly (or the billing cadence).
  • Set the target to what you’re expected to deliver per period — a billable-dollar target, or target hours if you think in hours. The target is your pacing line: the project compares what you’ve billed so far against it.
  • Billable expenses you log on the project count toward the billed amount automatically.

A common shape here: the contract promises a pool of hours (say 140 hours over two years) and you invoice for hours as they’re consumed. The hours dictate the revenue, so it’s T&M — divide the pool into what should be delivered per period and use that as the target.

Hour-scoped retainers appear on both sides of the line, which is why scoping can’t be the deciding factor:

  • “40 hours/month, billed $6,000/month flat”Fixed fee. Fixed invoice; hours are the delivery yardstick.
  • “140 hours over the contract, invoiced as consumed”Time & materials. The invoice follows the hours.

Same wording in the contract (“N hours”), opposite models — because the payment mechanics differ.

Enter only what remains from the point your tracking starts. If the client bought 140 hours and 50 were delivered before your data begins, the project should carry ~90 — hours worked before your ClickUp history can’t be pulled in, and entering the original total would make the project look permanently under-delivered.

  • Projects — project types, tracking methods, and periods
  • Rates: billable & cost — how hours become dollars in T&M calculations
  • Expenses — billable expenses and how they count toward billed amounts