Skip to main content
Profitability is the gap between what you charge and what the work costs you. TimeTracker shows it on each project’s Overview tab.

The two numbers behind everything

Gross profit = billable value − actual cost. Both are computed from the rate captured on each time entry when it was recorded, not from today’s rates. See /rates/rate-snapshots.

What Overview shows

Open a project and stay on the Overview tab. The Financials panel shows:

Health

The project list uses the same idea in its Budget column: under 90% is muted, 90% and above is a warning tint, and 100% or more turns red and changes the wording to 118% over budget rather than 118% of budget.
The true percentage always prints. A project at 210% says 210% – nothing is capped or rounded away.

Approved time only

Spend and margin count approved time. Time that has been submitted but not yet approved is shown separately, as a caption:
12.5h awaiting approval · 4 entries
Hovering it explains: “Submitted time not yet approved – excluded from spent and margin until a manager approves it.” This is what stops a project looking healthy right up to the moment a week of approvals lands.

The cost firewall

Cost, forecast cost, forecast margin and gross profit are only shown to someone who may see cost – time.viewCost or rate.viewCost.
These figures are removed before they leave the server. Without the capability the tiles are not there at all. Nothing is sent to your browser and then hidden.
Revenue-side figures – billable value, forecast revenue – are not cost, so everyone with project access can read them.

Example

Website Redesign for Bluebird Coffee, a $40,000 fixed fee. Spend is at 62% while the work is only 48% done. If that pace holds, the forecast at completion exceeds the budget, so the chip warns before the money runs out. Zooming in on one entry: Sarah tracks 3 hours on “Homepage wireframes”. Her billing rate is $100/hour, so the entry is worth **300.Hercostrateis300**. Her cost rate is `45/hour`, so it costs Northwind 135.Themarginonthose3hoursis135**. The margin on those 3 hours is **165 – a 55% margin.

Improving margin

Margin-floor alerts

The budget card has Alert if margin falls below, a percentage from 0 to 100. When the forecast margin drops under it, an alert appears on the project’s Alerts list and, if configured, by email. Leave it blank to skip margin alerts entirely.

Permissions

Cost visibility is a capability question, never a plan question.

App and plan gating

There is one honest half-gate: on Free you cannot set a cost rate. Cost, revenue and margin already recorded stay readable, and billing rates stay free to set. See /concepts/plans-and-features.

Common questions

You can see billing but not cost. Margin needs cost. Ask an admin for rate.viewCost or time.viewCost.
No tracked hours have rolled up yet. It fills in once approved time exists.
Only approved time counts. Check the “awaiting approval” caption, then look at /approvals/overview.
It has cost but effectively no billable value, so the margin is negative by definition. That is correct – internal work costs money and earns none.
Yes, with a report on the Projects source. See /projects/project-reporting.
Expenses have their own workflow and their own reporting source. See /expenses/overview.

Troubleshooting

Profitability and margin

The canonical explanation.

Calculate project profitability

A worked, step-by-step example.

Cost rates

Where cost comes from.

Project overview page

Every element on the dashboard.

Budget alerts

Margin floors and thresholds.

Project reporting

Profitability across every project.