Client profitability in monday.com: how to calculate true margin per client
monday tracks hours and budgets. It does not tell you whether Client X actually made money. Here is the math that closes the gap — and how to run it without maintaining a spreadsheet.
Most service teams can answer “how many hours did we spend?” They struggle with “did we make money on this client?” The gap is not effort. It is the missing link between hours, rates, costs, and revenue.
Why hours alone don’t tell you profit
An hour is not a unit of money. Two people can log the same hour at different cost rates. A senior consultant at a $95 cost rate costs nearly three times a junior at $35. If you only look at total hours, a “busy” project can look healthy while its margin is already negative.
Profit also depends on what the client actually pays. A fixed-fee project with 20% overrun and no change order is a different business than a retainer with hours left. You need both sides: cost to deliver and revenue recognized.
The four numbers you need
- Tracked hours — per person, per project, including subitems.
- Cost rate — what an hour of that person/role costs you (salary, contractor, overhead).
- Billable rate — what you charge for that hour, or the fee it is meant to cover.
- Revenue — contract value, retainer, or invoice amounts, per project and per client.
Then: project margin = revenue − (hours × cost rate) − external costs. Client margin is the roll-up of every project for that client. Margin % is margin ÷ revenue. If revenue is zero or unknown, show “no revenue”, not 0%.
Three ways to do this in monday
1. Spreadsheet export
Export time tracking, match rates in Excel, add revenue, pivot by client. It works for a monthly review, but it is stale by the time it is finished — and the rate history is usually lost.
2. monday formula columns
You can multiply hours by a rate in a formula column. The limits show up quickly: formula outputs are hard to use in automations, subitem roll-ups are fragile, and rate changes overwrite history. It also becomes a second system to maintain.
3. A dedicated margin layer
A profitability layer reads the time data you already track, applies cost and billable rates (with history), adds revenue, and produces project and client margin with overrun alerts. That is what MarginFleet is being built to do — a 15-minute setup, no formulas to maintain, no implementation partner.
Client A: $18,000 fixed fee, 210 tracked hours at a blended $52 cost rate = $10,920 labor, plus $900 external costs → $6,180 margin (34.3%).
Client B: $6,000 retainer, 140 hours at $58 = $8,120 labor → −$2,120 margin. The team was busy; the client was losing money.
This is the number a monthly export hides until the quarter is over.
What “true margin” should include — and what it should not
Include: labor cost at cost rate, contractor and external costs, revenue (fee, retainer, invoices), and the ability to see which client/project is dragging the portfolio down.
Do not confuse it with: a time tracker (we read time, we don’t replace it), an invoice generator (we use revenue as an input, we don’t create invoices), or a generic dashboard (a chart without a decision is not enough).
FAQ
Do I need to change how we track time?
No. It works with monday’s native time tracking and the boards you already use. You map the boards once; the app reads the hours.
Where does revenue come from?
A project fee field, revenue entries, or a CSV import in v1. It is deliberately an input, not an invoice engine.
What about rate changes?
Rates are dated. A raise in July does not rewrite January’s margin; you can see the effective rate for each period.
Is this a full PSA?
No. It is a margin layer inside monday for teams that want to keep monday, not migrate to Productive, Scoro, or Kantata.
Get early access → Free Google Sheets tracker
Early access. Not listed on the monday marketplace yet. Founding customers get 50% off for the first 12 months. No spam.