Track Revenue for a Contract Job
Contract jobs calculate revenue based on time — pay rate, bill rate, and contract duration. Configure billing details on the job once, and Recruiterflow auto-fills placement records each time you hire a contractor.
Set Up Contract Billing Details
Step 1: Open the Billing Tab and Select Contract
Go to the job, click the Billing tab, and select Contract from the Engagement Type dropdown. Click +ADD DETAILS.
Step 2: Set Contract Dates and Payroll Unit
Enter the Expected Contract Start Date and Expected Contract End Date — the end date must be after the start date. Then set your payroll currency and time unit.
Currency defaults to whatever is set in your Workspace Settings. The time unit defaults to hour, but you can switch to day, week, or month depending on how the contract is structured.
Step 3: Enter Pay Rate and Bill Rate
Add both rates per time unit:
Pay Rate — what you pay the contractor
Bill Rate — what the client pays you (contractor pay + agency fee). Always higher than the pay rate.
Default values for hours per day, days per week, and days per month are pre-filled — update them to match your contract. If you choose a weekly payroll unit, a Weeks per month field also appears. Add working days and any holidays before moving on.
Step 4: Set Revenue Attribution
Contract jobs default to 100% attribution to the Job Recruiter. Change the role or split across multiple users by clicking the attribution dropdown. Supported roles:
Job Recruiter
Job Account Manager
Lead Owner
User Moving the Stage to Hired
Custom User
Click Save in the top-right corner when done.
Placing Candidates
When a candidate moves to the Hired stage, a placement record opens with billing details auto-filled from the job setup. Each hired contractor gets their own record — useful when contractors have different rates or contract lengths on the same job.
From each placement record, you can:
Adjust contract dates, rates, and units for that specific candidate
Add a bonus (defaults to the placement date)
Turn off the Track Revenue toggle to exclude this placement from revenue totals
Update working days and holidays per contractor
Adjust attribution percentages for this individual placement
Add billing contacts from the associated company
Close the job once all roles are filled
Viewing Revenue
Head to the job's Billing tab to see all placed candidates, revenue to date, attribution breakdown, and placement details. Two figures matter:
Total Revenue — revenue realized so far from this contract
Total Forecasted Revenue — expected total over the full contract duration
Practical Example
You're staffing a 3-month data engineering contract at a $120/hr bill rate and $90/hr pay rate. You set up the billing tab with those rates, an hourly time unit, and 8 hours/day defaults. When you place two contractors, each gets a pre-filled placement record. One contractor negotiates different hours — you update only their record without touching the other's. Both placements feed into the job's Total Revenue automatically.
Things to Know
Each placed candidate has a separate placement record; rates and hours can differ between contractors on the same job.
Turning off Track Revenue on a placement excludes that contractor from all revenue totals — useful for internal or non-billable hires.
Bill Rate must exceed Pay Rate; the difference is your agency margin.
Workspace default currency applies automatically but can be changed per contract in the billing setup.
Changes to the job's billing setup don't retroactively update existing placement records.
Related Articles
How to Set Up Revenue Tracking for a Contingent Job
How to Set Up Revenue Tracking for a Retained Job
How to Analyze Revenue by Job Type and View Future Revenue







