SaaS Billing & Recurring Revenue Management3 min readUpdated September 2026

Three Revenue Shapes, One Staffing Client: A Decision Guide

Contract placements invoice weekly off approved timesheets, direct-hire placements invoice once with a guarantee period attached, and an RPO client might pay a flat monthly fee for the same recruiters working all three motions. Three revenue shapes on one client account is a genuinely harder billing problem than most subscription platforms are built to solve out of the box.

Use the criteria below to work out which platform, and which setup within it, actually fits your agency's mix.

Vendors Covered in this Article

Disclosure: We may earn a commission if you buy through some links on this page. It doesn't change what we recommend.

Criterion One: How Timesheet-Driven Is Your Contract Book

Weekly contract placements bill against approved hours, which means the invoice amount changes every cycle based on a timesheet, not a fixed subscription price. Stripe Billing's metered usage can pull approved hours from a timesheet system if you build that integration, generating a variable invoice each week. Chargebee handles the same pattern through usage-based pricing tied to a subscription, with similar setup requirements. Neither platform reads a timesheet directly; both need a feed from wherever your timesheets actually live, so the real question is how reliable that feed is, not which platform's usage model is more flexible.

Criterion Two: How Much of Your Revenue Is One-Time Placement Fees

A direct-hire placement is a one-time fee, typically a percentage of the candidate's first-year salary, with a guarantee period during which a portion refunds if the placement doesn't work out. Bill this as a standalone one-time invoice tied to that specific hire, never as part of a recurring subscription, even on a client account that also has contract workers billing weekly. Mixing the two makes it much harder to apply a guarantee-period refund cleanly against the right charge, and it muddies your own reporting on how much revenue is genuinely recurring versus a one-time placement win.

Criterion Three: Whether RPO Clients Get One Flat Fee or a Blended Rate

A recruitment process outsourcing client paying a flat monthly fee for dedicated recruiter time is close to a true subscription, and both platforms handle it well as a standard recurring plan. The complication shows up when an RPO client's flat fee is meant to cover a blend of contract sourcing and direct-hire work that would otherwise bill separately; decide upfront whether the RPO fee fully replaces those other billing events for that client or sits alongside them, and configure the account accordingly rather than letting the two overlap and double-bill a client for the same recruiter's time.

Criterion Four: How Many Distinct Billing Objects One Client Account Can Hold

A client running contract placements, an occasional direct-hire search, and a flat RPO retainer needs all three represented as separate billing objects on one account, not blended into a single number. Chargebee's ability to hold multiple subscription and one-time items under one customer record without custom development is a real advantage here, particularly for an agency without in-house engineers to build that structure in Stripe Billing. Stripe Billing can represent the same three-way split, but expect it to take more setup work, especially if timesheet-driven contract billing is also in the mix.

How Should a Staffing Agency Choose Between Stripe Billing and Chargebee?

If your agency runs mostly direct-hire placements with a handful of RPO accounts and little timesheet-driven contract work, Stripe Billing's lower cost and simpler setup usually covers your needs. If contract staffing billed weekly off timesheets is a meaningful share of your revenue, and you're running that alongside direct-hire and RPO on the same client accounts, Chargebee's ability to hold multiple billing shapes per customer without custom engineering tends to justify its cost sooner. Neither platform reads a timesheet or tracks a guarantee period on its own; that discipline still has to live in your own systems and processes regardless of which one you pick.

Match your platform choice to your revenue mix using these checks:

  • Confirm how reliable your timesheet feed is, since neither platform reads timesheets directly and both need an integration from wherever hours are approved.
  • Bill each direct-hire placement as a standalone one-time invoice with its guarantee period noted, never as part of a recurring subscription.
  • Decide upfront whether an RPO flat fee covers blended contract sourcing and direct-hire work, or whether those items bill separately.
  • Represent contract, direct-hire, and RPO charges as separate billing objects on one client account instead of a single blended number.
  • Lean toward the lower-cost Stripe Billing setup for mostly direct-hire agencies, and weigh Chargebee when weekly contract billing is a meaningful share of revenue.

What Does One Client Look Like With Three Invoices in One Month?

Say a client has two contract workers on weekly timesheets, just accepted a direct-hire candidate the agency placed, and pays a flat monthly RPO fee for a dedicated recruiter sourcing other roles. In one month, that client could see a weekly contract invoice based on approved hours, a one-time placement invoice for the direct hire with its guarantee period noted, and the standard RPO subscription invoice, three separate charges with three separate explanations. Combining all three into one monthly summary invoice for the client's convenience is fine at the presentation layer, but keep them as distinct billing objects underneath so a dispute or a guarantee-period refund on one never touches the other two. A client who later asks why one charge looked different from another should be able to get a clear answer tied to a specific invoice, not a shrug about a combined monthly total.

Executive Capability Standard

What Good Looks Like

A well-run staffing agency can show, for any client account, exactly how much revenue came from timesheet-driven contract work, one-time placement fees, and any flat RPO retainer, without those three shapes bleeding into one blended number.

Building The Capability (5-Stage Skill Ladder)

1. Learn:Map every active client account to its actual mix of contract, direct-hire, and RPO revenue, and flag any account where those are currently billed through one blended invoice.
2. Do Manually:Reconcile approved timesheets against contract invoices by hand each cycle until you understand exactly how much drift exists between hours worked and hours billed.
3. Delegate:Give a billing coordinator ownership of applying guarantee-period refunds and checking RPO scope before a separate contract invoice generates.
4. Automate:Connect your timesheet system to Stripe Billing or Chargebee so approved hours generate weekly contract invoices without a manual export each cycle.
5. Buy:Run one connected system where timesheets, placement tracking, and billing share a client record, so all three revenue shapes update automatically without manual reconciliation.

How to Get Started

Disclosure: We may earn a commission if you buy through some links on this page. It doesn't change what we recommend.

Frequently Asked Questions

Should a direct-hire guarantee-period refund come off the invoice or as a separate credit?

Issue it as a credit note or refund against the original one-time placement invoice, rather than netting it against a future contract or RPO invoice on the same account. Keeping it tied to the original charge makes the refund traceable and keeps your other revenue lines on that client untouched.

Can one client account really hold weekly contract billing and a monthly RPO fee at the same time?

Yes, both platforms support multiple subscription and one-time billing objects under a single customer record. The setup work is in defining each one clearly and making sure timesheet-driven charges only apply to contract placements the RPO fee doesn't already cover, not in any technical limit on how many billing objects one account can hold.

How do we avoid double-billing an RPO client for contract work their flat fee should cover?

Write the RPO scope into the contract so your billing team can check what the flat fee covers before generating any separate contract invoice. Then flag RPO client accounts so timesheet billing doesn't fire automatically without that manual check. That keeps flat-fee work and hourly contract work from being charged twice on one client account.

About the numbers

This guide doesn't quote a sourced benchmark. Figures in it are estimates or general guidance, so check them against your own numbers.

Related Guides