Case Studies
IT

20 Developers, an Hourly Rate, and No Idea What the Project Actually Made

Oleksiy Bazyura
Oleksiy Bazyura
Financial Expert at Finmap

"I knew every developer's hourly rate. I knew the client's contract rate. I subtracted one from the other and thought I knew the margin. Then I built a per-project P&L and realized I'd been running a business on a fiction for four years."

A founder of a services-and-outstaff IT company — 20 developers, ₴36M annual revenue, seven active clients — described the exercise that changed how she priced work and hired.

For four years she had run the business on what everyone in the industry runs on: hourly rate math. Each developer had a cost rate (₴550/hour, on average). Each client had a contract rate (₴950/hour, average across clients). Simple subtraction said ₴400/hour gross margin per developer, ~42% margin. Extrapolated across the team: comfortable, profitable, growing.

Then she did the exercise. Take one project. Not the "we billed the client ₴X per hour" number. The actual project P&L. Client revenue for the month. All costs directly attributable to that project. All costs indirectly attributable. What's left.

Project margin on her flagship client, over the previous 12 months: 14%. Not 42%.

Twenty-eight points of margin had disappeared into a set of costs the hourly rate math didn't touch.

What the Hourly Rate Math Actually Hides

The hourly rate assumes a developer is 100% utilized on the project, 100% productive during that time, and the project consumes only their labor. None of those are true for any real services business. Where the 28 points went — vector waterfall. Left: HOURLY MATH MARGIN 42%. Six drops: BENCH & RAMP-DOWN −5pt, PTO & SICK LEAVE −4pt, INTERNAL MEETINGS & PROCESS −6pt, TOOLS & LICENSES −2pt, RECRUITER & MANAGEMENT OVERHEAD −7pt, DISCOUNT & OVERTIME UNBILLED −4pt. Right: REAL PROJECT MARGIN 14%. Brand teal accent on management overhead drop (largest). Bench and ramp-down (−5 points). When a project ends or a client pauses, the developer is idle but still paid. Two weeks per year, on average, per developer. Not billable. Comes out of margin.

PTO and sick leave (−4 points). Salaried developers get paid vacation and sick time. Contract rate is billed only when they work. The gap is invisible until you count.

Internal meetings, process, hiring interviews (−6 points). Standups, retros, planning, interviewing candidates, internal syncs. All paid, none billable. On average 4–6 hours per developer per week.

Tools and licenses (−2 points). IDE licenses, cloud infrastructure for internal environments, project management tools, monitoring, communication platforms. Small per unit; adds up.

Recruiter and management overhead (−7 points). HR, delivery managers, project managers, the founder's own time. All get paid. Almost never billable. This was the biggest single leak.

Discount and overtime unbilled (−4 points). Client pushed back on rate at renewal, granted 8% discount. Emergency work done on weekends not always tracked. Overrun on fixed-scope portions absorbed.

Twenty-eight points, six categories, none in the hourly rate math.

The Rebuild — Project P&L Framework

The founder built her per-project P&L over a weekend. It became the single most important document in her business. Framework applies to any services company. Per-project P&L stack — vector vertical waterfall. From top: PROJECT REVENUE (monthly billed hours × client rate) − DIRECT DEVELOPER COST (fully-loaded, incl PTO & benefits) − ALLOCATED PM/DM COST (% of PM time on project × PM salary) − ALLOCATED RECRUITMENT & HR (per developer allocation) − TOOLS PER PROJECT − BENCH & RAMP ALLOCATION − INTERNAL MEETINGS ALLOCATION = TRUE PROJECT MARGIN. Brand teal on TRUE PROJECT MARGIN row. One — Project revenue. Monthly billed hours × client contract rate. Not sales committed; actually billed.

Two — Direct developer cost, fully loaded. Salary + taxes + benefits + equipment amortization + paid time off, divided by utilization hours (not calendar hours). If a developer is billable 65% of the time, their fully-loaded hourly cost is salary/(hours × 0.65).

Three — Allocated project management, delivery management, and recruitment cost. Rough share by project size or by revenue. Doesn't need to be perfect. Needs to be consistent.

Four — Tools and licenses attributable to the project.

Five — Bench allocation. Total bench cost for the year, divided across active projects.

Six — Internal meetings and process allocation. Percentage of paid hours going to non-project work × allocated cost.

Result — True project margin. For her flagship client: 14%. For two smaller clients: 21% and 8%. For one client she thought was her best: 3%.

What She Did With the Truth

The 3% client got a rate increase conversation. It went well; margin went to 12%. The 8% client had scope discipline problems (over-serving) that were fixable; margin went to 15%. Recruitment overhead was renegotiated with a fixed monthly retainer instead of per-hire fees. Internal meetings were audited — three weekly recurring meetings were killed. Utilization for two of her senior developers went from 58% to 72% by moving them off bench-heavy internal work onto client work. Project margin dashboard — light mode. Title 'Projects · Q3'. Top: 7 project rows, each with client, monthly revenue, developer cost, PM allocation, other overhead allocation, true margin (green/amber/coral chips). One row highlighted: 'Client X — margin 3% → 12% after rate increase'. Center: utilization heat-strip per developer showing bench vs billable time. Bottom: 'Bench cost this quarter ₴240K · target ₴150K'. Brand teal on rate-increase action chip. Overall company margin went from apparent 42% (fictional) to real 19% (before rebuild) to real 27% (six months later). More important than the number: she now knew which client was actually profitable, which was subsidizing bench, and which was quietly costing her money.

The Framework — What to Track

Six numbers, monthly, per project:

  • True billable hours (not committed hours; actual)
  • Fully-loaded developer cost per project
  • Allocated management overhead (PM/DM/recruiter/founder time as % of month)
  • Bench allocation (this month's bench cost × project's revenue share)
  • Project true margin (revenue − everything above)
  • Utilization per developer, tracked separately from margin

Six numbers, one dashboard, monthly review with the delivery lead. Two hours a month, keeps the fiction from returning.

📌 Want to see whether your projects are actually as profitable as your hourly rate math suggests? Send us three months of billing data and team cost breakdown — we'll build the per-project true-margin waterfall and walk you through it in 15 minutes. Request your free Finmap diagnostic →

Read also

Table of Contents
Check the Status of Your Business's Financial System
Order Financial Diagnostics
Oleksiy Bazyura
Oleksiy Bazyura
Financial Expert at Finmap
  • Senior Financial Manager, Starlight Online Media LLC (2022-2025)
  • Financial Controller, LLC "VOODUS" (2018-2022)
  • Financial Planning and Analysis Specialist, Novy Styl LLC (2014-2018)
  • Junior Specialist in Accounting and Financial Services, “Evviva, Group of Companies” (2009-2014)
Recommended for Entrepreneurs

Frequently Asked Questions

Isn't utilization just a KPI, not a margin driver?

It's both. Higher utilization directly increases fully-loaded margin because developer cost is spread over more billable hours. Lower utilization silently kills margin.

Allocate their time by actual hours worked on each. Their fully-loaded cost splits by same ratio. This is why time tracking, even lightweight, matters.

Pooled is fine for smaller shops (under 30 developers). Above that, per-developer is cleaner because senior bench is much more expensive than junior bench.

Same math, but revenue is monthly earned portion (contract value × % complete). Loss projects surface much earlier this way than they do in cash accounting.

Test the alternative — is the project profitable enough to keep at current rates? If margin is negative or under 10%, look at scope reduction, delivery efficiency, or a graceful transition.

Your accountant produces company-level P&L. This is project-level P&L, which requires allocations the accountant usually doesn't have the operational data to make.

Any questions left?
We are ready to answer them.
WhatsApp
Telegram
Finmap
Finmap support

Money Doesn't Disappear. You Just Don't See It.

Get a personal financial diagnosis or a Finmap demo — and see your business from a new perspective.

Ask Your Question to a Finmap Expert