← All articles
·10 min

Real-time project profitability: how to see the margin before the project closes

What an hour of your team actually costs — and why almost nobody knows the answer per project

In services businesses — agencies, software firms, consultancies, engineering, installation — margin rarely disappears in one big decision. It disappears in 40 unbilled hours on a fixed-price project, in three "small" revisions that were never in the contract, and in a two-week slip nobody flagged in time.

The numbers we see consistently at companies with 30-200 employees:

  • The per-project profitability report lands 15-25 days after month-end — for anything still running, that is archaeology
  • 20-35% of hours are logged more than a week late, so today's "hours consumed" does not describe today's reality
  • Between 10% and 25% of fixed-price projects finish below the minimum margin, and a good share of them were still fixable three or four weeks earlier
  • Good and bad projects cancel each other out in the monthly P&L, so nobody sees *where* the money goes, only *that* it goes

In most firms, the question "how much did we make on project X?" does have a correct answer. The problem is that it arrives too late to change anything.

What real-time project profitability actually means

It is not a prettier report. It is a data chain that runs without manual intervention, in five parts:

1. Time tracking with minimal friction. Hours logged daily or every other day, per project and activity, inside the tool the team already uses — Jira, Asana, ClickUp, or a 15-second form. If logging time takes more than a minute a day, it will not happen.

2. Real loaded cost per person, not an average rate. Each role carries a loaded hourly cost: gross salary, taxes, paid leave, equipment, allocated overhead. The gap between "120 EUR/day on average" and the real cost of a senior (280-350 EUR/day) is exactly where phantom margin hides.

3. Direct costs attached automatically. Licenses, subcontractors, travel, materials — pulled from incoming invoices and allocated to the project, not dumped into a general cost bucket at year-end.

4. Budget and recognized revenue per project. Contract value, billable milestones, what has actually been invoiced, what remains. On long projects, revenue recognized against progress rather than against invoicing.

5. Alerts, not reports. The system does not wait to be asked. It signals when a project has burned 70% of its budget against 50% of deliverables, or when projected margin drops below your threshold.

Point 5 is the only one that changes the financial outcome. The rest merely describes it.

Why the monthly spreadsheet does not solve this

Almost every firm already has the file. It is usually maintained by controlling or by one conscientious project manager, and it looks good. It fails for three structural reasons:

  • Latency. Data lands once a month, consolidated by hand from three to five sources. A three-month project effectively gets two useful checkpoints.
  • Human cost. 15-30 hours a month of copying, matching and correcting. When the person who maintains it takes holiday, the report does not exist.
  • Lack of trust. Every profitability discussion opens with 20 minutes of "but those hours are on the wrong project." A report the team disputes does not produce decisions.

The difference is not between a spreadsheet and an expensive tool. It is between data that arrives on its own and data somebody has to go collect.

Case study: IT services firm, 70 people, 40 active projects

An IT services company we worked with at NEXVA SYSTEM was billing roughly 6.2M EUR a year, mixed time-and-materials and fixed price. Time tracking existed in Jira but was patchy. Costs came out of the ERP with a two-month lag. Project profitability was computed at the end, in an eleven-tab spreadsheet.

What we built:

  • A Jira-to-warehouse feed refreshed every 15 minutes, with validation: any project with no hours logged for three days triggers a reminder to the PM, not to the whole team
  • A loaded hourly cost table by role and seniority, refreshed quarterly from payroll data without exposing individual salaries — cost is only ever visible aggregated by role
  • Automatic allocation of incoming invoices to projects, using AI extraction on the PDF plus supplier and cost-center rules — 83% allocated automatically, the rest confirmed by the PM
  • A dashboard showing current margin, projected margin at completion (burn rate times remaining days), and a three-color status
  • Slack alerts: budget consumption more than 15 percentage points ahead of progress, hours unlogged for over five days, delivered milestones with no invoice issued

Results after five months:

  • Time to a profitability figure: from ~20 days after month-end to under 24 hours
  • Hours logged same-day: from 41% to 88%
  • Projects closing below minimum margin: from 19% to 7% — not because the team worked differently, but because 11 projects were renegotiated or rescoped in time
  • Billable revenue recovered from delivered-but-uninvoiced milestones found in the first month: ~48,000 EUR
  • The unplanned finding: two categories of small projects (under 15,000 EUR) were consistently margin-negative because of coordination overhead. They dropped them from the offering and lifted average margin by four points.

What you do with the alerts: three decisions that matter

A dashboard without a response protocol becomes decoration within six weeks. The three decisions that actually produce money:

  • Renegotiate early. Scope creep spotted at 45% completion is a contract adjustment conversation. At 95% it is a favor you are asking for. Same facts, two different outcomes.
  • Stop or rescope. Some projects should finish smaller than planned. That decision is painful mid-project and impossible at the end.
  • Reprice the next proposal. The most durable gain: project types that consistently run below threshold get repriced. Future margin is made in the quoting stage, not in delivery.

What it costs and when it pays back

For a services firm with 30-150 people:

| Component | Cost |

|-----------|------|

| Analysis: cost model, project structure, data sources | 2,000-4,000 EUR |

| Time-tracking integration (Jira/Asana/ClickUp) and validation | 3,000-6,000 EUR |

| ERP integration: invoices, direct costs, billed revenue | 4,000-8,000 EUR |

| Automatic cost allocation, dashboard and alerts | 4,000-7,000 EUR |

| Maintenance and adjustments | 200-400 EUR/month |

Payback has two components. Administrative time: 20-30 hours a month saved on manual consolidation, worth 4,000-7,000 EUR/year. The larger one is margin: on 5M EUR of revenue at a 12% operating margin, recovering two percentage points through timely intervention and repricing is 100,000 EUR/year. Even at half that, the project pays for itself inside the first quarter.

The mistakes that sink these projects

  • Time tracking that is too granular. Ask for 12 activity categories per day and you will get invented data. Start with project plus four activity types at most.
  • One average cost for everyone. A single internal rate across the firm makes the report useless: it hides exactly the projects consumed by senior people.
  • Turning time tracking into surveillance. If people sense the data feeds individual performance reviews, data quality dies within two weeks. Say it explicitly: the unit of analysis is the project, not the person.
  • Too many alerts. More than five or six alerts a week per PM and all of them become noise. Calibrate thresholds against historical data before going live.
  • No baseline. Measure now: time to report, share of hours logged same-day, how many projects close below minimum margin. Without those, you cannot demonstrate the improvement.

How to start

1. Set loaded hourly cost by role together with finance — five to seven roles are enough for the first version.

2. Clean up the project list and its structure in the time-tracking tool: one project equals one code, used identically across every system.

3. Launch with hours, people cost and budget only. No incoming invoices, no revenue recognition. You will have 80% of the signal in three to four weeks.

4. Add direct costs from the ERP and automatic invoice allocation only once time logging is stable above 85%.

5. Define the response protocol before the first alert: who receives it, how fast they answer, what options they have.

Project profitability is not a reporting problem, it is a speed problem. The same figures, delivered three weeks earlier, change the decisions available to you — and that is usually where the difference sits between a good year and an almost-good one.

Want to see how quickly you could know the real margin on your active projects, and how many delivered milestones are sitting uninvoiced right now? Book a free consultation.

Want to discuss automating your processes?

Book a consultation