Every agency owner has three lies they tell themselves. **"Our utilization is around 80%."** **"Retainers are basically breaking even."** **"The invoice cycle is under a week."** Three years of watching agencies migrate to Klientele has taught us that all three are usually off by 20-30% in the wrong direction. Not because owners lie — because the tools they use to answer these questions were never designed to give an honest answer. Klientele's Agencies template is the answer we built after being that agency ourselves.
Where do creative agencies leak money in their post-sales operations?
Direct answer: Creative agencies leak money at four operational surfaces running in parallel on every client: time tracking (billable hours dropping between tools), retainer reconciliation (spreadsheets updated Thursday night), invoicing (retainer + overage retyped in QuickBooks), and collection (aging tracked nowhere) — averaging 18% of retainer capacity gone unbilled every month, which on a $150,000 retainer book is $27,000 leaking that Codefree measured before building Klientele.
An agency's operational surface has four distinct financial workflows running in parallel, on every client, every month:
- Time tracking — every billable hour, tagged to a client, a project, and (hopefully) a ticket
- Retainer reconciliation — matching those hours against monthly capacity, handling rollover, flagging overage
- Invoicing — generating an invoice that reflects the retainer + any overage + any project-based line items
- Collection — chasing invoices from sent to paid to bank-reconciled
In most agencies, these live in four different tools operated by different people. The seams are where money escapes.
“The largest hidden cost in an agency isn't underpricing. It's the retainer hours that never made it from Toggl to QuickBooks.”
Codefree measured this in our own operation before we built Klientele: 18% of retainer capacity was going unbilled every month. Not because clients weren't consuming the work — they were. Because tracking, reconciliation, and invoicing were fragmented enough that hours dropped between the tools. On a $150k/month retainer book, that was $27k per month leaking. That's the number that made us build Klientele.
What does Klientele configure for a creative agency on day one?
Direct answer: Klientele's Agencies template reshapes the workspace in under a minute: task/sprint/change-request terminology, an agency delivery status ladder (intake → scoped → in progress → client review → revision → delivered → closed), custom fields for deliverable type and round number and brand asset link, an SLA matrix calibrated to creative production, and dashboards tuned to retainer utilization + aging WIP + capacity across the team.
Pick the "Agencies" template during onboarding and the workspace reshapes itself in under a minute. Terminology, workflows, custom fields, dashboards, notification templates, and default SLAs all align to how a modern creative agency operates.
Terminology
| Klientele's default | What an agency sees |
|---|---|
| Ticket | Task |
| Sprint | Weekly capacity |
| Feature request | Change request |
| Project | Engagement |
| Assignee | Lead |
| Retainer | Monthly retainer (unchanged, but tagged with utilization + rollover status) |
Workflow statuses
The Agencies template ships with a status ladder that matches agency delivery:
- Intake — new task received, not yet triaged
- Scoped — hours estimated, priority assigned, awaiting scheduling
- In progress — actively being worked
- Client review — delivered to client, awaiting feedback
- Revision — client feedback received, revisions in flight
- Delivered — accepted by client, ready to close
- Closed — invoiced or included in retainer, complete
Custom statuses like "Awaiting brand asset" or "Copy pending sign-off" can be added from the settings screen.
Custom fields
Pre-configured per task on the Agencies template:
- Deliverable type — dropdown: Design, Copy, Development, Strategy, QA, Other
- Round number — integer, defaults to 1, tracks revision cycles
- Brand asset link — URL field for the Figma / Notion / Dropbox link
- Reference material — free text or attachment
- Client review URL — populated when delivered, sent in review notifications
SLA matrix — calibrated to agency reality
Every task carries a severity. The Agencies template sets response windows that fit creative production:
| Severity | Response SLA | What it fits |
|---|---|---|
| Critical | 4h | Live campaign fire — landing page broke during a launch |
| High | 24h | Client waiting on a delivery to unblock their next action |
| Medium | 72h | Standard task in the sprint queue |
| Low | 7 days | Nice-to-have, opportunistic |
How does retainer accounting work in Klientele?
Direct answer: Every hour logged in Klientele tags to a client and, if that client has an active retainer, decrements retainer hours in real time — no separate reconciliation step, no CSV export. Rollover policy (on/off, max cap, expiration) sits on the retainer form. A monthly cron on the 1st reconciles usage, credits unused hours up to the cap, writes an audit row visible to the client, and generates overage line items on the next invoice automatically.
This is where agencies get the fastest ROI from Klientele. Retainer accounting is where agencies leak the most money, and Klientele makes it structurally hard to leak.
Every hour is tagged to a retainer at logging time
When a developer or designer logs time in Klientele, they pick a client. If the client has an active retainer covering that project, Klientele automatically decrements the retainer's remaining hours. There is no separate reconciliation step. There is no export-to-CSV. The retainer utilization is live at the moment the timer stops.
Rollover is a first-class model, not a spreadsheet convention
When you set up a retainer in Klientele, you configure the rollover policy in the retainer form:
- Rollover: on or off
- Max rollover cap — e.g., "up to 10 hours banked, no more"
- Rollover expires — end of quarter, or never
Klientele's monthly rollover cron runs on the 1st of each month. It computes each client's actual usage against monthly allocation, credits unused hours (up to the cap), and writes an audit row that the client can see in their portal. No spreadsheet. No end-of-month reconciliation meeting. No "wait, how many hours did we bank last quarter?" conversations.
Overage is priced and billed automatically
If a client uses more than their monthly allocation, the extra hours automatically appear as a line item on the next invoice at the agreed overage rate. Klientele calculates this on the fly. The invoice generates from live retainer data, not from a spreadsheet the ops lead maintains.
The Codefree effect, measured over 6 months post-migration: retainer leak went from 18% to under 7%. That's a ~$16k/month recovery on a $150k/month retainer book, purely from closing the reconciliation gap.
“On a $50k/month retainer book, closing the tracking-to-billing gap is worth $5-10k of recovered revenue every month. It pays for the platform at the Agency tier fifteen times over.”
How does Klientele calculate honest team utilization?
Direct answer: Klientele calculates utilization against 22 productive hours per week per team member (not the 40-hour fiction) — the honest baseline that subtracts 8 hours for meetings and admin, 3 hours for context switching, 3 hours for deployment and monitoring, and 4 hours for urgent buffer, leaving 22 hours you can realistically bill for. A 12-person agency has 264 productive hours/week, not 480.
Every agency owner reports utilization to their board or to themselves. Almost every reported utilization number is optimistic by 15-25%. The gap comes from the same source: nobody has a rigorous model for what "productive capacity" actually is.
Klientele's Agencies template ships with the 40-to-22 model:
| Bucket | Hours per week | What it represents |
|---|---|---|
| Total available | 40 | Standard week |
| Meetings + admin | 8 | Standups, 1:1s, client calls, internal ops |
| Context switching | 3 | Deep-work tax on switching between clients or tickets |
| Deployment + monitoring | 3 | Ops work, on-call, incident response |
| Urgent buffer | 4 | The "something will come up" reserve |
| Productive dev hours | 22 | What you can realistically bill for |
If you're a 12-person agency and everyone's on 40-hour weeks, your honest capacity is 264 productive hours per week (12 × 22), not 480. The gap between 264 and 480 is what most agencies mistake for utilization slack. It isn't slack — it's structural overhead the industry pretends doesn't exist.
Klientele's Team Capacity Overview shows utilization against the 22-hour honest baseline, not the 40-hour fantasy. Red band above 90%, amber 60-90%, green under 60%. Sprint planning uses the same math — you can't commit a developer to more work than their honest capacity allows.
What did Codefree measure before and after switching to Klientele?
Direct answer: Codefree measured retainer hours unbilled dropping from 18% to under 7% (recovering ~$16,000/month on a $150k retainer book), invoice cycle time compressing from 11 days to 4 days, average invoice DSO from 47 days to 22 days, the Monday reconciliation meeting retired entirely (6 person-hours/week reclaimed), and utilization reporting stopping being fiction — Codefree's dashboard went from 82% (reported) to 71% (honest) without getting less productive.
Codefree ran on the four-tool stack (Jira + Toggl + QuickBooks + Google Sheets) for 18 months before we built Klientele. Here's what the numbers looked like on either side of the switch:
| Metric | Before Klientele | After Klientele | Delta |
|---|---|---|---|
| Retainer hours unbilled | 18% of capacity | ~7% | +11% recovered revenue |
| Days from work-done to invoice-paid | 11 | 4 | −64% |
| Average invoice DSO | 47 days | 22 days | −53% |
| Monday reconciliation meeting | 90 min × 4 people | 0 min | 6 person-hours/week reclaimed |
| Reported utilization vs actual utilization | ~30% overstated | Match | Board reports honest |
| Tools stitched together | 4 | 1 | −75% |
The utilization change is the one that catches new customers by surprise. Not because it *improved* — because it stopped being fiction. When Codefree's utilization dashboard started showing 71% instead of 82%, we didn't get less productive. We got honest. That honesty changed the hiring plan for the next quarter.
What does Klientele not do for agencies (and what to pair it with)?
Direct answer: Klientele is not a design tool (Figma, Adobe CC stay in place — Klientele holds the task record that references the Figma file), not a CRM (integrate with HubSpot, Pipedrive, or Attio for sales pipeline — Klientele is post-sales), and not a fully white-labelled client-portal engine on lower tiers (fully custom-domain white-labelling ships on the Agency plan) — the stack Klientele replaces is Jira/Asana + Toggl + QuickBooks + retainer spreadsheet.
Full honesty:
- Klientele is not a design tool. Figma, Framer, Photoshop, Adobe CC — none of those get replaced. Klientele holds the task record that references the Figma file. The Figma file stays in Figma.
- Klientele is not a CRM. For sales pipeline management (leads, deals, forecasts), we integrate with HubSpot / Pipedrive / Attio via API. Klientele is for post-sales; CRM is for pre-sales.
- Klientele is not a client-portal white-labeling engine. The client portal is Klientele-branded (subtly) and shows your agency's branding on the primary surfaces. Fully custom-domain white-labelling ships on the Agency plan.
The stack Klientele replaces: Jira/Asana + Toggl + QuickBooks + retainer spreadsheet. That's the swap.
If you're an agency running on the default four-tool stack, the retainer math alone will pay for Klientele fifteen times over on the Agency tier. The utilization honesty and the invoice cycle compression are on top. Start a 14-day trial, pick the Agencies template, import your current client list via CSV, and load one active retainer to see the math run live. Two weeks is enough to see where the leaks were.
Last updated July 30, 2026