Budget Tracking
The One Projects tracks project budget vs. actuals in real time. As team members log billable hours, the system calculates the running cost and compares it against the project budget to show variance and profitability.
Setting a Project Budget
The budget is set at project creation or updated at any time:
- Open the project
- Go to the Overview tab
- Click Edit Project
- Enter a value in the Budget field (numeric, in your org's currency)
- Save
A project without a budget set still tracks actual cost from billable time entries, but no budget variance is shown.
How Actual Cost Is Calculated
Actual cost accumulates from every billable time entry logged against the project:
actual_cost += hours × billing_rate (per billable time entry)
Non-billable time entries do not count toward actual cost.
The Overview tab shows:
- Budget — The planned monetary ceiling
- Actual Cost — The running total of billable hours × rates
- Variance — Budget minus actual cost (positive = under budget, negative = over budget)
- % Used — Actual cost as a percentage of budget
Budget Warning Alerts
When a project's actual cost crosses a threshold percentage of the budget, the system flags it:
| Threshold | Indicator |
|---|---|
| 80% of budget consumed | Yellow warning badge on the project card |
| 100% of budget consumed | Red "Over Budget" badge |
These badges appear on the project list page so project managers can identify at-risk projects at a glance without opening each one.
Expense Tracking
In addition to time-based costs, one-time or recurring project expenses can be tracked by logging them as non-standard cost entries in the time entry system with a billing rate and 0 hours, or via the project's custom fields.
Full expense line-item tracking (receipts, expense categories, reimbursement workflows) is handled in The One Books. Projects tracks time-based costs; complex expense management should be done in Books.
Project Profitability
The project Overview tab shows a simple profitability indicator:
profitability = contract_value - actual_cost
Where contract_value is pulled from the linked PSA contract (if configured). If no PSA contract is linked, profitability is shown as budget − actual_cost.
A positive number means the project is currently profitable. A negative number means you have spent more than you are billing.
Budget by Phase (via Milestones)
Projects does not enforce per-milestone budgets directly. However, you can approximate phase-level budget tracking by filtering time entries by milestone:
- Go to the project's Time tab
- Filter entries by Milestone
- The subtotal for that filter shows the actual cost for that phase
Reporting Across Projects
The Dashboard page shows:
- Portfolio-level active project count
- Projects over budget (red badges)
- Average progress across active projects
For detailed cross-project budget reporting, export your time entries and use Books for financial analysis.
Tips
- Set a budget on every client project — Even if you're billing on a T&M basis, a budget gives you an early warning before you blow past what the client expects
- Review variance weekly — A project at 60% actual cost with 30% of tasks done is a signal to investigate scope, not something to catch at the billing review
- Keep billing rates accurate — The actual cost calculation is only as good as the rates on time entries. If a senior engineer's rate is wrong, your budget numbers will be off
- Separate internal projects — Don't set a budget on internal improvement projects unless you have a cost ceiling. Tracking actuals without a budget is fine for internal work