Civil engineer to data analyst: BOQ, DPRs and cost overruns
In this article (5 sections)
Related programme: the Data Analytics with Generative AI course (3–4 months; ₹90,000 (inclusive of GST) · EMI from ₹4,000/month).
Start your switch from civil engineering to data analysis with the project data you already handle — bills of quantities, daily progress reports, running-account bills and material reconciliation — and turning one of them into a cost or schedule analysis in SQL and Power BI. Which project you build first, and which title you target, depends on what you did on site, so start with the table below.
Match your civil role to a first project
| If your work was mostly... | The artefact you know best | First portfolio project | Title to target first |
|---|---|---|---|
| Site execution | Daily progress reports (DPRs), labour and machinery logs | Planned vs actual progress by activity, with an S-curve and slippage flags | Project controls analyst, construction data analyst |
| Quantity surveying / billing | BOQ, running-account (RA) bills, measurement books | Cost overrun by work package: BOQ quantity and rate vs billed | Cost analyst, commercial / QS analyst |
| Planning | Primavera or MS Project schedules, look-ahead plans | Critical-activity delay analysis from schedule exports | Planning analyst, project controls analyst |
| Stores / materials | Material reconciliation, GRNs, issue slips | Theoretical vs actual consumption of cement and steel, wastage by site | Procurement or inventory analyst |
| Design / structural | Design calculations, drawing registers | Drawing-revision cycle times and approval delays | Engineering data analyst (less common; pair with another project) |
Pick one row. Building one project deeply beats building three shallow ones, and it lets you answer interview questions from experience rather than theory.
The worked example: cost overrun by work package
This is the QS row, built on synthetic data for a fictional residential block. The BOQ holds contracted quantities and rates; the billing table holds what was actually measured and billed across RA bills.
CREATE TABLE boq (
item_code TEXT PRIMARY KEY,
package TEXT,
description TEXT,
unit TEXT,
boq_qty REAL,
rate INTEGER
);
CREATE TABLE ra_bills (
bill_no INTEGER,
item_code TEXT,
billed_qty REAL
);
INSERT INTO boq VALUES
('C01','Substructure','PCC 1:4:8','cum',120,5200),
('C02','Substructure','RCC M25 footings','cum',340,7800),
('S01','Superstructure','RCC M25 columns and slabs','cum',910,8100),
('S02','Superstructure','Reinforcement Fe500','MT',145,68000),
('F01','Finishes','Internal plaster 12mm','sqm',8600,310),
('F02','Finishes','Vitrified tile flooring','sqm',4100,1150);
INSERT INTO ra_bills VALUES
(1,'C01',118),(1,'C02',210),(2,'C02',165),
(2,'S01',400),(3,'S01',590),(2,'S02',70),(3,'S02',86),
(3,'F01',5200),(4,'F01',4100),(4,'F02',3900);
WITH billed AS (
SELECT item_code, SUM(billed_qty) AS billed_qty
FROM ra_bills GROUP BY item_code
)
SELECT b.package,
SUM(b.boq_qty * b.rate) AS boq_value,
SUM(COALESCE(x.billed_qty,0) * b.rate) AS billed_value,
ROUND(100.0 * (SUM(COALESCE(x.billed_qty,0) * b.rate)
- SUM(b.boq_qty * b.rate)) / SUM(b.boq_qty * b.rate), 1) AS pct_vs_boq
FROM boq b
LEFT JOIN billed x ON x.item_code = b.item_code
GROUP BY b.package
ORDER BY pct_vs_boq DESC;Result:
package boq_value billed_value pct_vs_boq
Superstructure 17231000.0 18627000.0 8.1
Substructure 3276000.0 3538600.0 8.0
Finishes 7381000.0 7368000.0 -0.2Now the reasoning, which is where your site experience matters:
- Superstructure over by 8.1% — slab and column concrete billed 990 cum against 910, and steel 156 MT against 145. Both rising together is more consistent with a design change than with wastage alone. The question for the site team is whether a revised drawing or extra-item approval exists.
- Substructure over by 8.0% — footing concrete (C02) billed 375 cum against 340. You know the usual suspects: excavation taken deeper once strata were checked, or enlarged footings after a revision.
- Finishes 0.2% under — but that number is misleading. Plaster is already 700 sqm over BOQ (9,300 billed against 8,600), while flooring is incomplete at 3,900 of 4,100 sqm. The under-run on tiles is hiding an overrun on plaster, and the package total will move as flooring is billed. A good analysis says "not yet comparable" and flags plaster separately.
That last point — refusing to compare an incomplete package with a finished one — is the judgement that separates analysis from reporting.
Extend it into a two-page dashboard
For the portfolio, grow the synthetic dataset to three towers and around sixty BOQ items, then build in Power BI:
- 1A package-level view of BOQ value vs billed value, with overrun percentage and a completion flag.
- 2An item-level drill-through showing quantity variance and rate variance separately — quantity overruns and rate revisions have different owners and different fixes.
Write a one-page note to a fictional project director: which three items to investigate, and what document you would ask for on each (revised drawings, extra-item approvals, measurement sheets).
The skills gap for civil engineers
- SQL beyond single tables — the join between BOQ and bills is the whole analysis.
- Data modelling in Power BI — separate tables for items, bills and dates, not one giant sheet.
- Cleaning construction exports — item codes that change between bills, units written three ways ("cum", "m3", "cu.m").
- Writing for non-engineers — finance and management read your work too.
The Data Analyst programme builds SQL, Excel modelling and Power BI through graded projects, and you can bring a construction dataset to a capstone.
Explaining the switch in one answer
I spent four years in billing on residential projects, reconciling RA bills against the BOQ every month. Most of that work was catching variances late, after the money had moved. I rebuilt the reconciliation in SQL, which let me split quantity overruns from rate changes by package and flag packages that weren't complete enough to compare. I'd like a role in project controls or cost analytics, where I can catch those variances while there's still time to act on them.
Check which of those skills your CV currently shows with the free skill check, and if you are weighing analytics against a longer data-science route, read data analytics vs data science.
Pankit Kumar has 10 years in Data Science & AI, building and shipping production systems in regulated pharma and clinical environments. He is a freelance trainer at Boston Institute of Analytics, AnalytixLabs and Scaler, and has taught this material to thousands of working professionals.
This article is part of our Data Analytics with Generative AI programme — 3–4 months. The full analyst stack — Excel, SQL, Power BI and Python pipelines — then a generative-AI layer you can prove is right.
Explore Data Analytics with Generative AI