Everything you need to know about setting up Wellrun, understanding your metrics, and managing your agency's profitability.
This tool helps agencies and independent operators understand how profitable their retainer clients actually are.
It's not a time tracker or billing tool. Instead, you enter your time and costs as inputs, and the tool gives you clarity on profit margins, effective hourly rates, and utilization so you can make better business decisions.
You need four things set up to see meaningful data:
Once those are in place, the Dashboard will start showing you profit, margins, and utilization data.
Employees are the people on your team who do the work. You set their hourly cost rate so the system can calculate your labor costs.
Clients are the people or companies paying you. You set up retainer agreements for them, and log time against their retainers.
Yes. Both employees and clients have an active/inactive toggle. Deactivating them keeps all their historical data intact — they just won't appear in dropdowns for new time entries or retainers.
A retainer component is the specific agreement you have with a client. Each client can have multiple retainer components. For example, a client might have one retainer for "SEO Services" and another for "Content Writing."
Each component defines: - A monthly fee (what you charge) - The type: "Time-based" (includes a set number of hours) or "Value-based" (flat fee, no hour tracking) - Contract dates, renewal terms, and other settings
Time-based retainers include a set number of hours per month. For example, "$5,000/month for up to 40 hours of SEO work." The system tracks how many of those hours you use and calculates your effective rate and utilization.
Value-based retainers are a flat monthly fee with no hour quota. For example, "$2,000/month for social media management." Profit is simply revenue minus the labor cost of any time logged against it.
Start Month: The month this retainer becomes active. The system won't count revenue or hours for months before this.
End Month: The last month the agreement is active. What happens after this depends on the Auto-Renew setting.
Auto-Renew: If turned on, the retainer keeps going even after the end month (like a month-to-month continuation). If off, the retainer effectively stops contributing revenue after the end month.
All retainers in Wellrun operate on full-month billing cycles. When you set a start or end date, you're choosing a month, not a specific day.
This is by design. Allowing mid-month starts would require prorating revenue, costs, hours, and utilization for partial months — which cascades into every calculation: margins, effective rates, rollover/borrowing, ad spend markup, and trend reporting. The complexity would make the numbers harder to trust and harder to act on.
In practice, most agencies bill by the full month anyway. If a contract is signed on the 15th, you either bill the full first month or start billing the following month — either way, you just pick the month that matches your arrangement.
This is how many days' notice the client must give before they can cancel. It's used by the risk analysis feature on the Dashboard.
For example, if a retainer ends in 25 days and requires 30 days' notice, the system flags it as "high risk" because you're already past the notice window.
Yes. A client can have as many retainer components as you need. They'll all be tracked separately — each with their own hours, fees, and utilization metrics.
When a client's retainer rate changes (new fee, different hours, updated terms), the best approach is:
This ensures there's no overlap between the old and new retainers. The system will count revenue from the old retainer up to its end month, and from the new retainer starting on its start month — giving you clean, accurate profit tracking across the rate change.
The two retainers are automatically linked in a renewal chain so you can see the full history of how terms evolved over time.
If you use the Harvest integration, remember to update your project mapping after renewing. A Harvest project can only be mapped to one retainer at a time, so you'll need to remove the mapping from the old retainer and add it to the new one. This ensures synced hours flow into the correct retainer going forward.
When you click "Renew" on an active retainer, the system creates a brand new retainer component with updated terms (you can change the fee, hours, dates, etc.). The old retainer is automatically deactivated.
The new retainer is linked to the old one as its "successor," so you have a clear history of how terms changed over time.
"Renewed" (on an older retainer): This retainer has been replaced by a newer one. It's no longer active but its data is preserved.
"Renewal" (on a newer retainer): This retainer was created as a renewal of an older one. It's linked back to its predecessor.
Yes. If you created a new retainer manually (without using the Renew button), you can still link it to an older retainer using the "Renewed From (Predecessor)" dropdown in the Edit dialog.
This is called retroactive linking. The system validates that both retainers belong to the same client.
Renewal links serve two important purposes beyond tracking history:
If a retainer has been renewed (it has a successor), that means it wasn't cancelled — it was replaced with new terms. So the Dashboard's risk analysis doesn't flag it as "at risk" since the client relationship is continuing.
No. All historical time entries, revenue, and metrics tied to the old retainer are preserved. The old retainer is simply marked as inactive, and a "Renewed" badge appears on it. You can still view all its data.
Rollover means that if your team doesn't use all the included hours in a month, the unused hours can carry over to the next month — but only for one month.
For example, if a retainer includes 40 hours/month and you only use 30 in January, then 10 hours roll over to February — giving you 50 available hours in February.
Rolled-over hours are strictly use-it-or-lose-it: they only last one month. If those 10 rollover hours aren't used in February, they expire. They do not cascade into March or any future month. Only unused base hours from a given month can roll forward, and only into the immediately following month.
You can cap how much can roll over using the "Rollover Cap %" setting. A 50% cap on a 40-hour retainer means at most 20 hours can roll over.
Borrowing is the opposite of rollover. If you exceed the available hours in a month (including any rollover), the overage is deducted from the immediately following month's available hours — but only that one month.
For example, if you use 45 hours on a 40-hour retainer in January (with no rollover hours), that's 5 hours over. With borrowing enabled, February's available hours drop to 35 (40 minus 5). However, if January had rollover hours that brought the budget to 48, using 45 would not trigger borrowing — you'd still be within budget.
Borrowed hours only affect the next month. They do not cascade further — if February also goes over, that creates a separate borrowing event into March, but January's overage won't compound beyond February.
Like rollover, you can cap borrowing with a percentage to limit the impact.
Yes. They work together month to month, but each adjustment only affects one month forward. If you under-use hours one month, the unused base hours roll over to the next month only. If you over-use the next month beyond even the rollover budget, the overage is borrowed from the following month only.
Rolled-over hours expire if not used in the month they roll into — they never cascade further. Borrowing only kicks in when usage exceeds the full adjusted budget (base plus any rollover), and the deduction applies to one month ahead. The system processes months in order automatically.
No. Rollover and Borrowing only apply to Time-based retainers that have included hours. Value-based retainers don't have an hour quota, so there's nothing to roll over.
On the Client Detail page, you'll see the adjusted included hours for each month. If rollover added hours, you'll see the original base hours plus the rollover amount. The same applies for borrowing deductions.
In the utilization section of the Dashboard, the "Available" hours already reflect these adjustments.
Go to the Time Entry page. You'll see a grid where you can select a month, then enter hours for each employee against each client's retainer components.
The grid shows all active employees as rows and all active retainer components as columns. Just type the hours into the cells.
You select one month at a time on the Time Entry page. To enter time for a different month, change the month selector at the top. Each month is saved independently.
The system will track it and show you that you've exceeded the included hours. Your utilization percentage will go above 100%, which shows as a red indicator on the Dashboard.
If Borrowing is enabled on that retainer, the overage will be deducted from next month's available hours.
Yes, as long as the month isn't locked. You can go back to any month and change the hours in the grid. If a month has been locked (see Time Locking), you won't be able to make changes.
Yes! We currently have an integration with Harvest, available on the Team plan. Once connected, you can sync your Harvest time entries directly into Wellrun — no manual re-entry needed. Scroll down to the Harvest Integration section below for full details on how to set it up.
If you use a different time tracking tool and would like us to support it, we'd love to hear from you. Reach out and let us know which integrations would be most useful — we're always looking to expand our supported tools.
Locking a month for a specific retainer component means no one can add, edit, or delete time entries for that component in that month. It's like "closing the books" — once you're confident the numbers are final, you lock it to prevent accidental changes.
Locks are granular — you can lock a specific month for a specific retainer component. So January might be locked for one retainer but still open for another.
Yes. Locking is a toggle. If you locked a month by mistake, you can unlock it from the Client Detail page to make edits again.
Time locks are managed on each client's detail page. You'll see lock/unlock controls next to each month's time data for each retainer component.
A revenue adjustment lets you add or subtract a one-time amount from a client's revenue for a specific month. This is useful for things like:
The adjustment amount is added to (or subtracted from, if negative) the retainer revenue for that month.
Yes. Adjustments directly change the revenue figure for that client in that month. Since profit = revenue minus labor cost, any adjustment flows through to profit, margin, and effective hourly rate calculations on the Dashboard.
Yes. You can delete any adjustment from the Adjustments page. Deleting it will reverse its effect on all calculations.
Pausing a retainer component for a specific month tells the system to skip that component entirely for that month's calculations. No revenue is counted, no utilization is tracked, and no hours are expected.
This is useful when a client takes a break (like a holiday month) but the retainer isn't cancelled — they'll resume the following month.
A paused month is excluded from calculations entirely. Hours don't roll over from a paused month because no hours were expected or tracked.
You can pause a retainer from the Adjustments page. Select the client and retainer component, choose "Pause this month," and pick the month. The pause will appear as an adjustment entry that you can remove later if needed.
The Dashboard is made up of several sections, each showing a different angle on your business:
Stat Cards (at the top): Utilization, Revenue, Total Profit, and Effective Rate — these give you a quick snapshot of your key numbers for the selected period.
Client Utilization: A bar chart showing how much of each client's retainer hours are being used, color-coded by health.
Top Underutilized Clients: A list of clients using the least of their included hours — helpful for spotting where you have capacity.
Most Utilized Clients: A list of clients using the most hours — useful for identifying overworked accounts.
Performance Overview: A trend chart showing revenue and profit over time. You can switch between bar and line chart views.
Client Profitability: A horizontal bar chart ranking your clients by total profit, with detailed metrics on hover.
Projected Revenue: A forecast showing estimated revenue for 3, 6, and 12 months, based on your active retainers.
Risk Assessment: Flags retainers that are nearing expiry, so you can plan ahead for renewals or conversations with clients. Available on the Team plan.
Yes! Click the gear icon in the top-right corner of the Dashboard. This opens a panel where you can toggle each section on or off using switches. Your preferences are saved, so the Dashboard will look the same way next time you visit.
This is useful if certain sections aren't relevant to your workflow — for example, if you don't need to see projected revenue or the underutilized clients list, just turn them off for a cleaner view.
Total Profit = Total Revenue - Total Labor Cost
This is the simplest way to understand it. Revenue is what clients pay you, and labor cost is what you pay your team (hours worked x their hourly cost rate). The difference is your profit.
These break down your total profit into two parts:
Labor Profit: The profit from hours your team actually worked. It's calculated as: Hours Used x Retainer Hourly Rate minus the actual labor cost.
Utilization Profit: The profit from hours the client paid for but your team didn't use. Since no labor cost was incurred, these hours are 100% margin.
Together, Labor Profit + Utilization Profit always equals Total Profit.
Effective Hourly Rate = Total Revenue / Hours Actually Worked
This tells you what you're actually earning per hour of work. It's often higher than the retainer rate because clients don't always use all their included hours.
For example, if a client pays $5,000/month for 40 hours but only uses 25, your effective rate is $200/hour instead of the $125/hour retainer rate.
Utilization shows how much of the included retainer hours each client is actually using:
The Dashboard shows projected revenue for 3, 6, and 12 months. These are estimates based on your currently active retainers and their monthly fees.
If a retainer has an end date and auto-renew is off, the projection only counts months where the retainer is still active.
This section flags retainers that might end soon. Risk levels are:
High Risk: The retainer's end date is within the cancellation notice window. For example, if 30 days notice is required but the retainer ends in 20 days — that's high risk because you can't cancel in time even if you wanted to renegotiate.
Medium Risk: The retainer ends within a broader risk window (whichever is larger: the notice period or 90 days).
Retainers that have been renewed (have a successor) are automatically excluded since the client relationship is continuing.
Margin = Total Profit / Total Revenue (shown as a percentage)
A 60% margin means you keep 60 cents of every dollar the client pays after covering labor costs. Higher is better. Most healthy agencies target 40-60% margins on retainers.
Privacy Mode obscures sensitive financial information on your screen. When enabled:
This is perfect for screen sharing, demos, or when someone is looking over your shoulder. You can toggle it on and off from the Settings page.
No. Privacy Mode is purely visual. Your actual data is untouched — it just can't be read on screen while privacy is enabled. Turn it off and everything is back to normal instantly.
This is what each team member costs you per hour. It should include their salary broken down to an hourly rate, plus any overhead (benefits, taxes, etc.) you want to factor in.
The system uses this rate to calculate your labor cost when that employee logs hours against a client.
Yes. You can add multiple cost rates with different effective dates. The system uses the rate that was in effect during each month to calculate costs accurately.
For example, if an employee's rate was $50/hour until March and then increased to $60/hour, January and February will use $50 and April onwards will use $60.
The system will fall back to your organization's Default Hourly Cost (set during onboarding or in Settings). If that's not set either, the cost is treated as $0 — which will make your margins look artificially high.
This is an optional reference field that records the hourly rate you charge a specific client. You can have different rates at different dates to track rate changes over time.
Note: The profit calculations primarily use the retainer's monthly fee and included hours to determine the "retainer hourly rate" — the client hourly rate is more of a reference for your records.
Go to the Adjustments page, select the client and retainer component, and choose "Pause this month" for the specific month. The system will exclude that retainer component from all calculations for that month — no revenue, no expected hours, no utilization tracking.
Keep the existing retainer active until you've agreed on new terms. Once finalized, use the "Renew" button on the existing retainer to create a new one with updated terms. The old retainer will automatically be deactivated and linked to the new one.
Go to the Time Entry page, select the month where the mistake happened (make sure it's not locked), and change the hours. You can zero out the wrong entry and add the correct hours to the right client.
From a profit perspective, unused hours are great — they represent 100% margin revenue. But from a client relationship perspective, consistently low utilization might mean:
Use the utilization data to have informed conversations with clients about scope and expectations.
Use the Adjustments page to add a positive revenue adjustment for that client in the appropriate month. This adds the extra payment to their revenue without changing their retainer terms.
On the Dashboard, use the date range filters to select the first period, note the key metrics, then change to the second period. The monthly trend chart also shows how profit, revenue, and costs change over time.
Yes. Edit the new retainer and use the "Renewed From (Predecessor)" dropdown to select the old retainer. This creates the same link as if you had used the Renew button — the system will treat it as a renewal chain.
To connect Harvest, you need a Personal Access Token (PAT) and your Account ID:
Then go to Settings in this app, find the Harvest Integration card, and enter both values.
Project mapping links a Harvest project to one of your clients in this tool. Once mapped, you can sync time entries from that Harvest project directly into your retainer tracking.
You set up mappings on each client's detail page. You can optionally map to a specific retainer component — if you don't, synced hours will go to the client's default component.
Employee mappings link your Harvest team members to the employees you've set up in this tool. This ensures that when time is synced from Harvest, the hours are attributed to the correct employee with their cost rate.
If a Harvest user isn't mapped to an employee, their hours will still sync but won't have employee cost attribution.
The Harvest sync uses an accept-before-use workflow to keep you in control:
If Harvest data changes after you've accepted (e.g. someone logs more time), syncing again creates a new pending batch that supersedes the old one. You can review and accept the updated data.
No — time entries that come from Harvest are read-only and shown with a sync icon. This prevents your data from getting out of sync with Harvest.
If you need to adjust hours, either update them in Harvest and re-sync, or use Revenue Adjustments to account for the difference.
Harvest integration is available on the Team plan only. Starter and Pro plans will see a teaser in Settings showing what's available when they upgrade.
Disconnecting removes your stored credentials and stops all syncing. However, any time entries that were already accepted remain in your data — they won't be deleted.
If you reconnect later, you'll need to set up your project and employee mappings again.
Harvest allows you to archive projects that are no longer active. Here's how archived projects interact with this tool:
In practice, this means you can safely archive old Harvest projects without worrying about losing your historical data or breaking existing connections. The typical workflow is: when a retainer ends or renews with a new Harvest project, archive the old project in Harvest and map the new one to your new retainer.
A Harvest project can only be mapped to one retainer at a time. When you renew a retainer (creating a new one with updated terms), you need to update your Harvest mapping:
This ensures that when you sync time from Harvest, the hours flow into the correct active retainer with the right fee and hour terms. If you forget this step, synced hours may still be attributed to the old retainer.
This is the same principle as the general best practice for rate changes — always point your Harvest mapping at whatever retainer is currently active.
There are three tiers — all include a 7-day free trial:
The Starter plan gives you the core profitability tracking: create clients, set up retainers, log time, and see revenue/profit metrics on the dashboard.
Features available on Pro and above: - Employee Tracking & Labor Costs: Add employees with hourly cost rates to calculate true labor-based profit. - Revenue Adjustments: Log one-time charges, credits, or overages against a client's month. - Advanced Reports: Detailed reporting and analytics.
Team-only features: - Harvest Integration: Sync time entries directly from Harvest. - Rollover & Borrowing: Track how unused hours carry forward between months. - Privacy Mode: Mask client names for screensharing or shared spaces. - Risk Analysis & Projections: Identify retainers nearing expiry and at-risk revenue.
The Starter plan allows up to 8 clients. Once you've reached that limit, the "Add Client" button will be disabled and you'll need to upgrade to Pro or Team to add more. Your existing clients and data remain fully accessible.
All plans include a 7-day free trial. During the trial, you have full access to all plan features. Payment integration is coming soon — for now, all plan features are available for demonstration purposes.
Absolutely. Upgrading unlocks new features but never changes or deletes your existing data. All your clients, retainers, time entries, and metrics stay exactly as they are.