A recruiter places a VP of Engineering on March 1st. The client pays a $45,000 placement fee on March 15th. Everyone celebrates, the fee hits the bank account, and the books show it as revenue for the month. Then, on day 82 of a 90-day guarantee, the new hire resigns. The recruiting firm now owes a free replacement search — weeks of sourcing, screening, and interviewing, done for $0 in additional revenue. If the firm can't find anyone in time, or the client just wants their money back, a refund check goes out the door.
If the full $45,000 was already recognized as revenue in March, and already spent on payroll, rent, and a recruiter's commission, that refund comes out of cash the firm doesn't have anymore. This is one of the most common ways a profitable-looking recruiting agency runs into a cash crisis: the guarantee period is a real, quantifiable liability sitting on the books, and most small search firms don't book it as one.
This guide walks through how contingency and retained search fees actually work, why the guarantee period changes how — and when — you should recognize that revenue, and how to build a chart of accounts and a placement-fee process that keeps a recruiting business solvent instead of just busy.
Contingency vs. Retained Search: Two Very Different Cash Flow Profiles
Both models sell the same underlying service — finding and placing a candidate — but they collect money on opposite schedules, which is why they need different bookkeeping treatment.
Contingency search is pay-on-placement. Multiple firms (or an internal recruiting team) may work the same requisition simultaneously, and only the firm that gets a candidate hired gets paid. Fees typically run 15–25% of the placed candidate's first-year base salary, invoiced as a single lump sum after the candidate starts. Nothing is collected until there's a hire — which is exactly why contingency guarantee periods run shorter, usually 30–90 days, and why replacement (not refund) is the default remedy.
Retained search is an exclusive, upfront-funded engagement, usually reserved for executive or hard-to-fill roles above roughly $150,000–$200,000 in total comp. Fees run higher — 25–33% of first-year compensation — and are typically billed in three installments: one-third at signing, one-third at candidate slate presentation (usually 30–45 days in), and the final third at placement or start date. Because the client is paying regardless of outcome, and the firm has done more upfront diligence, retained guarantees tend to run longer — six to twelve months is common — with a "free restart" option if the search stalls entirely.
The bookkeeping consequence: a contingency fee is a single, all-at-once cash event tied to one uncertain, downstream outcome (does the hire survive 90 days?). A retained fee is three separate cash events, two of which are owed regardless of whether anyone gets placed, with the guarantee obligation only attaching to the final installment. Lumping both fee types into one "Placement Revenue" account, which is exactly what most QuickBooks setups do by default, makes it impossible to see which piece of revenue is actually earned and which piece is still contingent on a guarantee clock.
The Guarantee Period Is a Refund Liability, Not a Rounding Error
Here is the accounting principle that most small search firms get wrong: a placement fee subject to a replacement-or-refund guarantee is variable consideration. Under the revenue recognition framework used across U.S. GAAP (ASC 606), when part of a fee is genuinely at risk of being refunded or clawed back, you don't recognize 100% of it as revenue on day one. You estimate — based on your own historical data — what portion you expect to actually keep, recognize that portion as revenue, and book the rest as a refund liability, not as income.
In practice, for a small recruiting firm, this looks like:
- Track your own fall-off rate. Pull the last 12–24 months of placements and calculate what percentage triggered a replacement or refund inside the guarantee window. If 8% of placements fall through in year one, that's your baseline — not a guess, an actual number from your own placement history.
- Split the fee at invoicing. On a $45,000 fee with an 8% historical fall-off rate, recognize $41,400 as revenue and hold $3,600 in a refund liability account (a balance sheet liability, not a revenue contra-account) until the guarantee period lapses.
- Release the liability at the end of the guarantee window. If the placement survives the full 90 days, move the $3,600 from the liability account into revenue. If the hire falls through and you issue a refund, the cash goes out against the liability you already set aside — not against current-month cash flow.
- True up quarterly. Fall-off rates drift — a slow hiring market, a bad sourcing quarter, a client with unusually high turnover. Revisit the percentage every quarter and adjust the liability estimate rather than locking it in once and forgetting about it.
For a firm doing a handful of placements a year, some accountants use a simpler shortcut: recognize the full fee at invoicing but hold a fixed percentage of that month's placement revenue (say, 5–10%) in a separate "guarantee reserve" cash account that isn't touched for operating expenses. It's less precise than a formal refund liability, but it solves the actual problem — a refund or free replacement never colliding with payroll.
What you should never do is treat the guarantee period as a footnote. If a $45,000 fee is booked as $45,000 of immediately spendable revenue, and 10% of your placements fall through, you are structurally guaranteed to eventually owe money you've already spent.
A Chart of Accounts That Actually Separates the Risk
Most off-the-shelf bookkeeping templates give a recruiting firm one revenue line: "Placement Fees." That single line hides three fundamentally different risk profiles. A cleaner structure separates them:
- 4000 – Retainer Revenue (Retained Search) — the first two installments of a retained engagement, owed regardless of placement outcome. Low risk, recognize on billing.
- 4010 – Placement Revenue, Contingency — the lump-sum contingency fee, net of the estimated refund-liability portion.
- 4020 – Placement Revenue, Retained (Final Installment) — the placement-triggered third of a retained fee, same treatment as contingency.
- 2400 – Refund Liability, Guarantee Reserve — a balance-sheet liability account holding the at-risk portion of fees until each guarantee window closes.
- 5100 – Replacement Search Costs — direct sourcing/screening labor spent re-running a search inside the guarantee window. Tracking this separately tells you which clients or job categories are quietly costing you the most in unpaid rework.
- 5200 – Recruiter Commission / Split Payable — commission owed to the originating recruiter, which itself should often be held back proportionally until the guarantee clears, so a recruiter isn't paid in full on a placement that later refunds.
That last point matters more than it looks. If a recruiter is paid their full commission the day a fee is invoiced, and the placement later falls through, the firm has now paid out commission on revenue it never actually kept — a double hit. Many firms hold back 20–30% of commission until the guarantee period lapses, mirroring the refund-liability treatment on the revenue side.
Reading Your P&L Correctly During a Slow Quarter
Because contingency revenue is genuinely lumpy — a great month can be immediately followed by a dry spell while your pipeline refills — a single month's P&L is a poor way to judge a search firm's health. Two numbers matter more than monthly revenue:
- Trailing 12-month gross placement fees, net of actual refunds/replacements issued. This smooths the lump-sum timing problem and shows the real fall-off rate you're actually running, not the one you assumed.
- Backlog value: retainer installments already billed but not yet earned through placement, compared against the sourcing labor still owed to earn them. A firm with $200,000 in signed retainers and understaffed sourcing capacity has a delivery problem, not a sales problem — and the books should make that visible before it becomes a client-relationship problem.
Five Mistakes That Show Up Almost Every Time
1. Booking the full fee as revenue the day it's invoiced. This is the single most common error, and it's usually not a mistake so much as a default — most bookkeeping software doesn't prompt you to think about a refund liability, so it never gets set up. The fix is the split-recognition process above, done consistently, not just when someone remembers.
2. Paying full recruiter commission before the guarantee clears. A recruiter who churns candidates and moves on to the next search has no financial stake in whether a placement survives 90 days. Holding back a portion of commission until the guarantee lapses aligns incentives and protects the firm from paying out on revenue it never keeps.
3. Treating a "free replacement" as a zero-cost event. It isn't. A replacement search consumes real sourcing hours, job board fees, and often assessment or background-check costs — all with zero incremental revenue. If that labor isn't tracked in a dedicated account (5100 above), it silently erodes margin on your best-performing recruiters, because the busiest desks are also the ones running the most replacements.
4. Using one fall-off rate for every job category. A 90-day guarantee on a $60,000 administrative role and a 12-month guarantee on a $300,000 VP role do not carry the same risk. Executive placements tend to have lower absolute fall-off rates but far higher dollar exposure per incident; high-volume, lower-salary contingency placements often have the opposite profile. Blending them into a single reserve percentage either overreserves the easy category or underreserves the risky one.
5. Not reconciling the guarantee calendar against the liability account. The refund liability account should be able to answer, at any moment, "which specific placements is this money set aside for, and when does each one clear?" A liability balance with no supporting schedule is just a number — it can't tell you when to release revenue or how much exposure is still open. A simple spreadsheet tying each open guarantee to its invoice date, dollar amount, and expiration date closes that gap in an afternoon.
A Worked Example
Say a boutique retained-search firm closes a $36,000 fee for a Director of Finance role: $12,000 at signing, $12,000 at slate presentation, and $12,000 at placement, with a 6-month replacement guarantee attached to the final installment. Based on the firm's own placement history, roughly 12% of executive-level placements require a replacement search within six months.
The first two installments post straight to revenue — they're owed regardless of outcome. On the final $12,000, the firm recognizes $10,560 (88%) as revenue and books $1,440 into the guarantee reserve liability. Six months later, if the hire is still in the role, that $1,440 rolls into revenue. If not, the firm has $1,440 already set aside — plus, ideally, a recruiter commission holdback — to fund a replacement search without touching this month's operating cash. Multiply that across a dozen placements a year, and the difference between doing this and not doing this is the difference between a guarantee period being an annoyance and it being a solvency event.
Simplify Your Financial Management
Recruiting revenue is inherently conditional — a fee isn't fully "yours" until a guarantee period lapses, and that condition deserves its own line on the books, not a mental footnote. Beancount.io gives small search and staffing firms plain-text accounting that makes it straightforward to track refund liabilities, commission holdbacks, and placement revenue by search type in one auditable, version-controlled ledger — no black-box templates, no vendor lock-in. Get started for free and see why finance-savvy founders are switching to plain-text accounting.