The Discipline of Delivery · companion to Chapter 7
Project & Program Financials
Rate cards, fully loaded cost, utilization and the difference between a budget and a forecast.
Software Project & Program Financials — Mastery
Budgeting, forecasting, revenue & margins — taught through real numbers and worked use cases for teams in Singapore, Italy & India.
Read this first. Two kinds of numbers appear here. (1) Company margins are from public FY2025 filings and are dated/sourced where shown. (2) Rate cards & fully-loaded costs are illustrative 2024–25 market ranges — they swing widely by client tier, vendor, city, skill, contract size and negotiation. Use them to learn the mechanics and as sanity-check ballparks, then calibrate against your own actuals and live RFPs before quoting externally.
Software project and program financials mastery
💡
The vocabulary that runs every P&L
Master these eight terms and 80% of finance conversations open up
Every project financial conversation is built on a small stack of terms. Most engineers and PMs are weak here not because it's hard, but because nobody ever defined them precisely. Here they are, in the order money actually flows: you sell at a bill rate, you pay a cost rate, the gap is your margin.
Revenue
What the client pays you. On Time & Materials it's hours billed × bill rate. On Fixed Price it's the agreed contract value, recognised over time as work is delivered.
COGS / Direct cost
The cost of delivering the work: loaded salaries of billable people, contractor costs, project-specific licenses, travel. Excludes sales & admin overhead.
Gross margin (GM)
GM% = (Revenue − COGS) / Revenue. The single most important project number. A services project lives or dies on GM. Target ranges differ by model — see Margins tab.
Contribution margin
Revenue minus variable costs only. Tells you whether one more unit of this work is worth taking on, before fixed overhead is allocated.
Operating margin (EBIT%)
After SG&A (sales, marketing, G&A, bench, delivery management) is subtracted from gross profit. This is the company-level profitability number you see in earnings.
EBITDA
Earnings before interest, tax, depreciation & amortisation. A proxy for operating cash generation, used to compare companies and value them.
Bill rate vs cost rate
Bill rate = what you charge the client per hour/day. Cost rate = your fully-loaded cost for that person. The ratio drives margin. A 2.0× bill:cost ratio ≈ 50% gross margin.
Utilisation
% of a person's available hours that are billable. The hidden margin lever. 80% utilisation vs 65% on the same rate card can swing project margin by 10–15 points.
CTC vs fully-loaded cost — the mistake beginners make
The number one budgeting error: using someone's salary (or Indian "CTC") as their project cost. The real cost is 1.4×–2.2× higher. You bill against fully-loaded cost, not salary.
| Component | What it adds | Typical uplift on base salary |
|---|---|---|
| Base salary / CTC | The headline pay number | 1.00× |
| Employer taxes & statutory | CPF (SG ~17%), social contributions (Italy ~28–32% + TFR), PF/gratuity (India) | +0.15–0.35× |
| Benefits | Health, insurance, leave, bonus accrual | +0.10–0.20× |
| Facilities & IT | Office, laptops, software seats, security | +0.10–0.20× |
| Overhead allocation | Delivery mgmt, HR, recruiting, bench, training | +0.15–0.40× |
| Fully-loaded cost | What you actually budget per head | ≈ 1.4×–2.2× base |
Rule of thumb: in low-cost geographies the overhead multiple is proportionally larger; in high-cost geographies statutory + facilities dominate. Always budget loaded cost — never CTC.
🌏
Rate cards by geography & seniority
The quotable ballparks — bill rate, loaded cost, and the margin between them
These are illustrative blended ranges (2024–25, USD) for software delivery. "Loaded cost/mo" is your fully-loaded cost per head; "Bill rate/hr" is a typical client charge-out. Monthly billable hours assumed ≈ 160. Treat as directional — premium/niche (cloud, data, GenAI, regulated domains) sits at the top; commodity work at the bottom.
🇮🇳 India — offshore delivery (tier-1 cities: Bengaluru, Pune, Hyderabad, Chennai)
| Level (experience) | Loaded cost / month | Bill rate / hr | Day rate (8h) | ~Gross margin |
|---|---|---|---|---|
| Junior / Associate (0–3y) | $1,800–3,000 | $22–35 | $176–280 | 35–50% |
| Engineer / Mid (4–7y) | $3,500–6,000 | $30–50 | $240–400 | 35–48% |
| Senior / Lead (8–11y) | $6,500–10,000 | $45–70 | $360–560 | 30–45% |
| Architect / Principal (12y+) | $10,000–15,000 | $60–95 | $480–760 | 30–42% |
🇮🇹 Italy — onshore EU (Milan / Rome). High employer social cost + TFR
| Level (experience) | Loaded cost / month | Bill rate / hr | Day rate (8h) | ~Gross margin |
|---|---|---|---|---|
| Junior (0–3y) | $3,800–5,400 | $55–80 | $440–640 | 25–40% |
| Mid (4–7y) | $6,000–8,100 | $75–110 | $600–880 | 25–40% |
| Senior / Lead (8–11y) | $8,600–11,900 | $95–140 | $760–1,120 | 25–38% |
| Architect / Principal (12y+) | $11,900–16,000 | $120–180 | $960–1,440 | 25–35% |
🇸🇬 Singapore — onshore APAC hub. High salaries + 17% employer CPF + premium facilities
| Level (experience) | Loaded cost / month | Bill rate / hr | Day rate (8h) | ~Gross margin |
|---|---|---|---|---|
| Junior (0–3y) | $5,000–7,000 | $75–110 | $600–880 | 25–40% |
| Mid (4–7y) | $8,000–12,000 | $100–150 | $800–1,200 | 25–40% |
| Senior / Lead (8–11y) | $13,000–18,000 | $130–200 | $1,040–1,600 | 22–38% |
| Architect / Principal (12y+) | $18,000–25,000 | $170–260 | $1,360–2,080 | 22–35% |
~2.0×
Bill-to-cost ratio that yields ≈50% gross margin (before utilisation losses)
3–6×
How much more an onshore Singapore/Italy head costs vs an equivalent India offshore head
160 hrs
Working hours/month assumed. Real billable hours are lower after leave, ramp & bench — see utilisation
Why onshore margins look thinner per head: high local cost compresses the bill:cost gap, and onshore work is more price-competitive. The blended model (a few onshore, many offshore) is what lifts overall program margin — proven in the Use Cases tab.
📊
Real margins: who makes what, and why
Product companies vs system integrators vs Indian IT — the three business models
The three models earn money in fundamentally different ways. Product/SaaS companies sell software that scales without headcount, so their gross margins are huge. Services firms sell people's time, so they're labour-bound — their lever is the offshore pyramid and utilisation. Knowing which model you're in tells you which margin to chase.
70–85%
Product / SaaS gross margin. Operating margin varies wildly (often negative while growing)
20–26%
Indian IT majors operating margin — the global high-water mark for services
13–16%
Global SIs / consultancies operating margin — onshore-heavy, premium delivery
Company-level operating margins (public FY2025 filings)
| Company | Model | Operating margin | Revenue | Source |
|---|---|---|---|---|
| Infosys | Indian IT services | 21.1% | $19.3B | FY25 (yr to Mar'25) |
| TCS | Indian IT services | ~24–26% | ~$29.9B | FY25, the margin leader |
| Accenture | Global SI / consulting | 14.7% GAAP / 15.6% adj. | $69.7B | FY25 (yr to Aug'25) |
| Capgemini | Global SI | 13.3% | ~€22.4B | FY25 (operating margin metric) |
Indian IT majors run higher operating margins than Accenture/Capgemini largely because of a deeper offshore pyramid (lower blended cost) and high utilisation. Accenture's gross margin sits around 31–32% — the gap to its ~15% operating margin is heavy onshore SG&A and consulting investment.
Product / SaaS — why 80% gross margin?
The cost to serve one more customer is tiny (hosting + support), while the build cost is fixed and already spent. So gross margin is high, but they spend heavily on S&M and R&D. Health is judged by the "Rule of 40": growth% + profit% ≥ 40.
Services — why project GM ≠ company margin
A single project might run 35–45% gross margin, but company operating margin lands at ~20–25% after bench, sales, delivery management and G&A. Always be clear which number you're quoting: project gross or company operating.
Target gross margins by delivery model (project level)
| Engagement type | Healthy project GM | Why |
|---|---|---|
| Offshore-heavy (India-led) | 38–50% | Low blended cost, deep pyramid |
| Blended (onshore + offshore) | 30–42% | Onshore drags blended cost up |
| Onshore-only (SG / Italy) | 22–35% | High local cost, price competition |
| Staff augmentation / body-shop | 18–30% | Thin per-head spread, low overhead |
| Managed service / outcome-based | 35–55%+ | You own efficiency gains; automation lifts margin |
🧮
Building a project budget bottom-up
From headcount pyramid to a defensible cost & price
A budget is built in five layers. Skip any and you'll under-price. Work in fully-loaded cost, never salary. Here's the full cost stack, then a worked example.
Worked example — 30-person India offshore team, 9 months
A realistic delivery pyramid (note: cost-heavy at the senior end, volume at the mid). Monthly loaded cost uses mid-of-range rate-card values.
| Role | Heads | Loaded cost / head / mo | Monthly cost |
|---|---|---|---|
| Delivery Manager | 1 | $9,000 | $9,000 |
| Lead / Architect | 3 | $7,500 | $22,500 |
| Senior Engineer | 10 | $5,000 | $50,000 |
| Mid Engineer | 12 | $3,800 | $45,600 |
| Junior / QA | 4 | $2,500 | $10,000 |
| Team labour | 30 | — | $137,100 |
$1.23M
Labour cost over 9 months (137,100 × 9)
$1.30M
Total cost after ~5% for tools, infra & travel
$2.00M
Price to hit 35% gross margin: cost ÷ (1 − 0.35)
At that price, the implied blended bill rate = $2.00M ÷ (30 × 160 × 9) ≈ $46/hr, against a blended cost rate of ~$30/hr. That 1.54× bill:cost ratio is the 35% margin, stated as a rate. This is the same project that gets stress-tested in the Forecasting and Use Cases tabs.
Do
Budget loaded cost, add a 5–10% non-labour line, and a contingency
Plan to ~80% utilisation, not 100% — the other 20% absorbs leave & ramp
Price from a target margin, then check the implied bill rate is competitive
Don't
Use salary/CTC as cost — you'll be 40–120% light
Forget ramp-up: month 1 is rarely fully productive but is fully paid
Quote a single margin number without saying gross vs operating
📈
Forecasting: catching the overrun before it lands
Burn rate, EVM in money terms, and where margin leaks away
A budget is a guess made on day one. A forecast is the truth, updated weekly. The PM who can't forecast finds out about an overrun when the money's gone. Two tools do almost all the work: burn rate and Earned Value.
Burn rate
Cash consumed per unit time. monthly burn = team loaded cost + non-labour. Runway = budget ÷ burn. If your $1.30M project burns $145K/mo, you have ~9 months — exactly the plan, with zero slack.
Revenue recognition
On fixed price, you don't book the $2M on day one. You recognise it as work completes (% complete / milestones). Cash in (invoices) and revenue recognised differ — watch both, plus unbilled WIP.
Earned Value (EVM) — three numbers, two ratios, one forecast
| Term | Meaning | Formula |
|---|---|---|
| PV Planned Value | Budgeted cost of work scheduled by now | BAC × planned % |
| EV Earned Value | Budgeted cost of work actually done | BAC × actual % |
| AC Actual Cost | What you've actually spent | from the ledger |
| CPI Cost Performance | <1 = over budget | EV ÷ AC |
| SPI Schedule Performance | <1 = behind schedule | EV ÷ PV |
| EAC Estimate at Completion | Forecast final cost | BAC ÷ CPI |
Worked forecast — the 30-person project at month 5 of 9
Cost budget BAC = $1.30M. The team is paid in full, but only ~48% of the work is actually done while 58% of the money is spent. Watch what EVM predicts:
0.82
CPI = EV $620K ÷ AC $760K — you're getting $0.82 of work per $1 spent
$1.59M
EAC = BAC $1.30M ÷ 0.82 — forecast final cost, a $290K overrun
35% → 20%
Gross margin collapse: revenue stays $2.0M, cost jumps to $1.59M
The power move: at month 5 the ledger still says "on budget-ish." EVM says you'll finish $290K over and lose 15 margin points. That early warning is the entire reason forecasting exists — it buys you four months to act (rescope, re-staff, raise a change request) instead of explaining a loss at the end.
Where the margin actually leaks — a 40% → 22% program
Budgeted at 40% GM, delivered at 22%. Here's the post-mortem of where 18 points went:
Almost every leak here is preventable with discipline: change control, attrition planning, ramp budgeting, FX hedging, and a contingency line. Margin isn't lost in one big event — it bleeds out in small unmanaged ones.
🎯
Three worked use cases, end to end
The numbers, assembled — copy the structure, swap your own rates
Setup. Single offshore pod delivering a defined scope. Client wants a fixed price.
Cost. Labour $137,100/mo × 9 = $1.23M; +5% non-labour ⇒ cost ≈ $1.30M.
Price. Target 35% GM ⇒ 1.30M ÷ 0.65 = $2.00M. Blended bill ≈ $46/hr.
Result. Gross profit $700K, GM 35%. Healthy for offshore-heavy work, though just below the 38–50% healthy range — the small senior-heavy pyramid is the reason.
The risk that defines fixed price: you own every overrun. If effort runs 15% long with no change request, cost climbs to ~$1.49M and GM falls to ~25%. Fixed price rewards tight scope control and punishes scope creep — which is why the change log is a financial instrument, not paperwork.
Cost. Labour $137,100/mo × 9 = $1.23M; +5% non-labour ⇒ cost ≈ $1.30M.
Price. Target 35% GM ⇒ 1.30M ÷ 0.65 = $2.00M. Blended bill ≈ $46/hr.
Result. Gross profit $700K, GM 35%. Healthy for offshore-heavy work, though just below the 38–50% healthy range — the small senior-heavy pyramid is the reason.
The risk that defines fixed price: you own every overrun. If effort runs 15% long with no change request, cost climbs to ~$1.49M and GM falls to ~25%. Fixed price rewards tight scope control and punishes scope creep — which is why the change log is a financial instrument, not paperwork.
Setup. A program: 5 client-facing in Singapore, 8 in Italy (EU delivery + timezone), 27 offshore in India. Time & Materials.
Over 12 months: revenue $5.04M, cost $2.92M ⇒ gross profit $2.12M, GM ≈ 42%.
The lesson: per location, Singapore runs the thinnest margin (~38%), India ~41% even at a low $45 bill, and Italy ~47% on a mid-weighted team. But the money is in the volume: 27 of 40 heads are offshore, so India supplies almost half the revenue at a 41% spread, and the blend holds the whole program at 42% despite the expensive onshore seats. This is exactly the mechanism behind Indian IT's 20–26% company margins. T&M also shifts overrun risk to the client — you bill what you work — which is why its margins are steadier than fixed price.
| Location | Heads | Cost/mo | Blended bill/hr | Rev/mo |
|---|---|---|---|---|
| 🇸🇬 Singapore | 5 | $64,000 | $130 | $104,000 |
| 🇮🇹 Italy | 8 | $65,000 | $95 | $121,600 |
| 🇮🇳 India | 27 | $114,400 | $45 | $194,400 |
| Program | 40 | $243,400 | $65.6 blended | $420,000 |
The lesson: per location, Singapore runs the thinnest margin (~38%), India ~41% even at a low $45 bill, and Italy ~47% on a mid-weighted team. But the money is in the volume: 27 of 40 heads are offshore, so India supplies almost half the revenue at a 41% spread, and the blend holds the whole program at 42% despite the expensive onshore seats. This is exactly the mechanism behind Indian IT's 20–26% company margins. T&M also shifts overrun risk to the client — you bill what you work — which is why its margins are steadier than fixed price.
Setup. Same blended program, budgeted at 40% GM. Twelve months later the actual GM was 22%. Nobody did anything obviously wrong — that's the point.
What happened (see the leakage waterfall in Forecasting): ~4 pts of uncontrolled scope absorbed without change requests; ~3 pts of attrition backfilled at higher cost plus re-ramp; ~3 pts of bench/ramp on slow starts; ~3 pts of rework from thin QA; ~2 pts of onsite-travel overrun; ~3 pts of adverse FX (EUR/INR/SGD moves on a USD contract).
The financial damage: on $5.04M revenue, dropping from 40% to 22% GM is roughly 0.18 × 5.04M ≈ $900K of gross profit gone.
The fix is all forecasting & discipline: weekly EVM would have flagged the CPI slide by month 4; a change-control gate stops silent scope; an attrition buffer and FX hedge protect the rest. Margin is defended in the monthly review, not won in the sales pitch.
What happened (see the leakage waterfall in Forecasting): ~4 pts of uncontrolled scope absorbed without change requests; ~3 pts of attrition backfilled at higher cost plus re-ramp; ~3 pts of bench/ramp on slow starts; ~3 pts of rework from thin QA; ~2 pts of onsite-travel overrun; ~3 pts of adverse FX (EUR/INR/SGD moves on a USD contract).
The financial damage: on $5.04M revenue, dropping from 40% to 22% GM is roughly 0.18 × 5.04M ≈ $900K of gross profit gone.
The fix is all forecasting & discipline: weekly EVM would have flagged the CPI slide by month 4; a change-control gate stops silent scope; an attrition buffer and FX hedge protect the rest. Margin is defended in the monthly review, not won in the sales pitch.
⚙️
Blended margin calculator
Build a team across three geographies and watch cost, revenue & margin move live
Result
Total headcount—
Total cost—
Total revenue—
Gross profit—
Blended bill rate—
Blended cost rate—
Gross margin
—
The India defaults reproduce the worked budget: 30 people, $137,100/month loaded, $46/hr blended. This is labour only, so it reads ~38%; the 5% non-labour line in the Budgeting tab brings it to 35%. Italy and Singapore use rate-card mid-points. Every number is editable.
🧠
Financial scenario quiz
Eight situations a PM/program manager actually faces
0 / 8correct
Running a project that is slipping? Book a 30-minute delivery review with Siva: we look at your plan, your numbers and the one thing to fix first.
Companion to Chapter 7 of The Discipline of Delivery by Siva Prasad. Read the chapter to understand why the discipline matters, then use this guide to practise the how.