Most concrete contractors already know their yardage. What they usually cannot say in one glance is whether last month was good – whether 15,109 cubic yards placed beat the plan or trailed it, whether waste at 4.48% is a win, and which of those numbers is somebody’s job to fix. The Concrete Contractor KPI Dashboard in Power BI is a monthly scorecard built for exactly that gap: 14 concrete KPIs, each with a target, an achievement percentage and a traffic light, for the month and for the year to date, on one page.
This post is a page-by-page walkthrough of what is in the file, what drives it, and – just as usefully – what it deliberately does not do.
Which of the three concrete-contractor templates is this?
NextGenTemplates ships three families whose names look almost identical, so it is worth being blunt about which one this is.
- The KPI Dashboard line – this one. A month picker, a target-versus-actual scorecard, three-state traffic lights, plus a KPI Trend page and a KPI Definition page. Built in Power BI, driven by an Excel data pack.
- The KPI Scorecard line – a lighter single-file build with its own shorter KPI list, already live for this trade as Concrete Contractor KPI Scorecard in Excel and in Google Sheets.
- The analytical Dashboard line – the slice-and-dice reports that break revenue down by job, region or category. That is a different build entirely and not what this is.
An Excel edition of this same KPI Dashboard is being prepared alongside the Power BI one and will appear as Concrete Contractor KPI Dashboard in Excel. Same 14 KPIs, same scorecard idea, different tool.

The 14 KPIs, and who owns them
The KPI list is the product. Everything else is plumbing. These are the fourteen that ship, with the formula each one uses, the direction it is scored in, and the owner and priority carried on the row. UTB means higher is better; LTB means lower is better.
| KPI | Group | Unit | Formula | Dir. | Owner | Priority |
|---|---|---|---|---|---|---|
| Concrete Placed | Production | CY | Sum of Placed Cubic Yards | UTB | Operations Manager | High |
| Cubic Yards per Crew Day | Production | CY/Day | Cubic Yards Placed / Crew Days Worked | UTB | Field Superintendent | Critical |
| Labour Hours per Cubic Yard | Production | Hours/CY | Total Field Labour Hours / Cubic Yards Placed | LTB | Field Superintendent | High |
| 28-Day Strength First-Pass Rate % | Quality | % | Cylinder Sets Passing at 28 Days / Cylinder Sets Broken | UTB | QC Manager | Critical |
| Rework & Patching Rate % | Quality | % | Rework Square Feet / Total Placed Square Feet | LTB | Field Superintendent | High |
| Cracking Callback Rate % | Quality | % | Jobs with a Cracking Callback / Jobs in Warranty | LTB | QC Manager | Medium |
| Concrete Waste % | Materials | % | (Yards Ordered – Yards Placed) / Yards Ordered | LTB | Purchasing Manager | High |
| Short-Load & Returned Concrete Cost | Materials | USD | Short-Load Fees + Returned Yardage Charges | LTB | Purchasing Manager | High |
| Cost per Cubic Yard Placed | Cost & Margin | USD/CY | Total Installed Cost / Cubic Yards Placed | LTB | Cost Engineering | Critical |
| Job Gross Margin % | Cost & Margin | % | (Contract Revenue – Job Cost) / Contract Revenue | UTB | Controller | Critical |
| Days Sales Outstanding | Cost & Margin | Days | Accounts Receivable / Average Daily Billings | LTB | Controller | Medium |
| Bid Hit Rate % | Commercial | % | Bids Awarded / Bids Submitted | UTB | Chief Estimator | Critical |
| Pour Schedule Adherence % | Schedule | % | Pours Placed on Scheduled Date / Pours Scheduled | UTB | Operations Manager | Critical |
| Safety Recordable Rate | Safety | Rate | (Recordable Incidents x 200,000) / Field Hours Worked | LTB | Safety Director | Critical |
Seven groups – Production, Quality, Materials, Cost & Margin, Commercial, Schedule and Safety – and eight named owners across seven Critical KPIs, five High and two Medium. That combination is what turns a monthly review from a number-reading exercise into a short list of conversations. A missed KPI has a name against it before anybody opens their mouth.
Why direction matters more than it sounds
Half the KPIs on a concrete job are ones you want to go down: waste, short-load charges, cost per yard, labour hours per yard, callbacks, recordables, DSO. Eight of the fourteen here are lower-is-better. A scorecard that scores everything as Actual / Target gets all eight backwards – a good month reads as a failure and the traffic lights are worse than useless.
This build scores direction-aware. Higher-is-better KPIs score Actual / Target; lower-is-better KPIs score Target / Actual. Two examples straight out of the December 2025 sample:
- Safety Recordable Rate came in at 2.39 against a 2.52 target. Lower is better, so it scores 105.4% and shows On Target – which is what a safety director would expect to see.
- Cost per Cubic Yard Placed came in at $161.80 against a $171.76 target: 106.2%, On Target.
The bands are the same for everything: On Target at 100% or more, At Risk from 95% up to 100%, Missed below 95%. They are applied twice on every row – once for the month, once for the year to date – so a KPI that scrapes through in December but has been behind all year cannot hide behind one good month.
Page 1 – KPI Scorecard
The landing page. Five slicers across the top – Month, KPI Group, Owner, Priority and Direction – then five summary cards, each with its own 12-month trend and a month-on-month delta: Total KPIs, MTD Target Met, MTD At Risk, MTD Target Missed and Achievement MTD.
The shipped sample sits on December 2025 and reads: 14 KPIs, 7 met, 3 at risk, 4 missed, 99.2% achievement for the month.
Under the cards is the scorecard table itself, sorted by achievement with the worst first: KPI Name, KPI Group, Unit, a 12-month sparkline, Actual (MTD), Target (MTD), Achievement % (MTD), Status Light (MTD), a YoY arrow, then Actual (YTD), Achievement % (YTD) and Status Light (YTD). Here is how December 2025 falls out:
| KPI | Actual (MTD) | Target (MTD) | Ach % (MTD) | Status (MTD) | Ach % (YTD) | Status (YTD) |
|---|---|---|---|---|---|---|
| Cracking Callback Rate % | 3.04 | 2.61 | 85.9% | Missed | 90.9% | Missed |
| Short-Load & Returned Concrete Cost | 19,238 | 17,226 | 89.5% | Missed | 91.5% | Missed |
| Days Sales Outstanding | 59.90 | 54.44 | 90.9% | Missed | 94.9% | Missed |
| Bid Hit Rate % | 28.93 | 30.75 | 94.1% | Missed | 88.2% | Missed |
| Rework & Patching Rate % | 3.62 | 3.52 | 97.2% | At Risk | 97.5% | At Risk |
| Labour Hours per Cubic Yard | 1.33 | 1.31 | 98.5% | At Risk | 97.0% | At Risk |
| Pour Schedule Adherence % | 96.37 | 97.11 | 99.2% | At Risk | 98.3% | At Risk |
| 28-Day Strength First-Pass Rate % | 96.67 | 94.81 | 102.0% | On Target | 101.8% | On Target |
| Cubic Yards per Crew Day | 49.22 | 47.53 | 103.6% | On Target | 102.7% | On Target |
| Job Gross Margin % | 22.72 | 21.85 | 104.0% | On Target | 103.6% | On Target |
| Concrete Placed | 15,109 | 14,405 | 104.9% | On Target | 105.6% | On Target |
| Safety Recordable Rate | 2.39 | 2.52 | 105.4% | On Target | 103.3% | On Target |
| Cost per Cubic Yard Placed | 161.80 | 171.76 | 106.2% | On Target | 102.7% | On Target |
| Concrete Waste % | 4.48 | 4.81 | 107.4% | On Target | 103.7% | On Target |
Read the four misses together and the sample tells a coherent story: the field is performing – yardage, crew-day output, waste and strength are all ahead – while the money and the front end are not. Callbacks are running hot, the plant is charging for short loads and returned yardage, cash is coming in nearly six days later than planned, and Bid Hit Rate % is the worst number in the file for the year at 88.2%. Three different owners, three different meetings.
The sparkline in each row is worth calling out: it holds the full twelve months regardless of which month the slicer is on, so you can see whether a red light is a blip or a trend without changing anything.

Page 2 – KPI Trend
One KPI at a time, over time. A “Select KPI Name” list runs down the left with all fourteen KPIs on it. Pick one and the whole page becomes that KPI.
Across the top sit six context cards – the selected KPI, its group, its unit, its direction, its owner and its priority. Select 28-Day Strength First-Pass Rate % and they read Quality, %, Higher is Better, QC Manager, Critical. Under them, five value cards: KPI Actual (MTD) 96.67, KPI Target (MTD) 94.81, KPI Achievement % (MTD) 102.0%, KPI Status (MTD) On Target, and KPI YoY % (MTD) +2.4%.
Then two line charts, three lines each – this year, last year, target:
- CY MTD vs PY MTD vs Target MTD by Month – the month-by-month picture, which is where you see the seasonality that a single month’s traffic light hides.
- CY YTD vs PY YTD vs Target YTD by Month – the cumulative view, which is much smoother and much harder to argue with.
The prior-year line is real data, not a modelled estimate: the data pack ships two full years of actuals, 2024 as well as 2025, so every PY line and every YoY arrow comes from typed history.
Page 3 – KPI Definition
This is the page most KPI packs leave out, and the one that stops arguments. Its KPI selector is synced with the KPI Trend page, so whichever KPI you picked there is already applied when you switch tabs.
For the selected KPI it shows the achievement, the status, the group, unit, direction, owner and priority – and then two cards that matter more than they look: the formula and the written definition. For 28-Day Strength First-Pass Rate % those read “Cylinder Sets Passing at 28 Days / Cylinder Sets Broken” and “Cylinder sets meeting specified compressive strength at 28 days without core or 56-day retesting”. For Concrete Waste %, “(Yards Ordered – Yards Placed) / Yards Ordered” and “Over-order, spillage and washout loss as a share of yardage ordered from the plant”.
Those two sentences are the difference between a number that gets acted on and a number that gets relitigated every month. Everybody in the room is looking at the same definition.
Below sits a Monthly Detail table – all twelve months with Actual (MTD), Target (MTD), Achievement % (MTD), Status, Actual (YTD) and Achievement % (YTD), plus a total row – beside an MTD Actual vs Target by Month chart and an Achievement % by Month chart.

Page 4 – Get More Templates
A short catalogue and customisation page: other Power BI templates, the services list, and a set of notes on using and customising this one – how the month picker drives the scorecard while the sparkline stays on the full year, how the KPI selectors are synced, how UTB and LTB scoring works, and where the theme lives so a recolour is a one-place change.
Two further pages exist but never appear in the page tabs: KPI Detail and Trend Detail, both 280×360 tooltip pages that surface on hover. They are the only hidden pages in the file.

The data pack, and what actually drives the report
The whole report is driven by one workbook, Data.xlsx, with four sheets:
- Read Me – how the model works, and one rule worth reading twice: for a percentage, a Days figure or a rate, the YTD value is the average of the months so far, never a sum. A compliance percentage that adds up to 1,900% by December is the single most common mistake in a hand-built KPI pack.
- KPI Definition – 14 rows, one per KPI: group, name, unit, formula, definition, Type (UTB or LTB), owner and priority.
- Input_ Target – 168 rows, being 14 KPIs by 12 months, with MTD and YTD targets.
- Input_ Actual – 336 rows, because it carries 2024 as well as 2025.
Nothing in the report hard-codes a KPI name. Add a KPI (a row in KPI Definition plus its monthly Target and Actual rows), delete one, or rename one in all three sheets – the KPI Name is the join key – then press Home > Refresh. The counts, the cards, the scorecard table, the selector list on both KPI pages and every chart follow. That is the part that makes this reusable for a trade it was not built for: swap the fourteen rows and you have a different scorecard.
Behind the four pages sit more than 100 DAX measures over a single imported table plus a Date table generated in Power Query, and one custom theme file that drives every colour. Native visuals only – nothing from AppSource, nothing to install, nothing that breaks when a custom visual is deprecated.
What it does not do
Worth being straight about, because it saves refunds.
- No live connection. No API, no gateway, no scheduled refresh against a source system, and no connector to Command Alkon, Sage, QuickBooks, Xero, Procore or any dispatch or ticketing platform. You type actuals into the workbook and refresh.
- No per-job, per-pour or per-mix drill-down. This is a company-level monthly scorecard by design. Jobs, pours and mix designs are not dimensions in the model.
- No right-click drill-through. The KPI Definition page is reached from the page tabs, with its selector synced to KPI Trend. The two hidden tooltip pages are the only hidden pages.
- Not a QC or safety system. It does not store cylinder-break results or ASTM C39 reports, does not hold mix designs or batch tickets, and does not do OSHA 300 or 300A recordkeeping. 28-Day Strength First-Pass Rate % and Safety Recordable Rate are numbers you produce elsewhere and type in.
- Not estimating, takeoff, payroll or accounting software, and not a lien, retainage or pay-application system. Days Sales Outstanding here is a monitoring ratio, not a receivables ledger.
- The targets are not benchmarks. Every number in the file, including all fourteen targets, is sample data. There is no industry average and no ACI or ASTM rule behind any of it. Replace the targets before anyone treats a traffic light as meaningful.
Getting it running
- Unzip all three files – the
.pbix,Data.xlsxand the user manual PDF – into one folder, and keep them together. - Open the
.pbixin Power BI Desktop. It is free from Microsoft and runs on Windows. The sample data is already loaded, so look around before changing anything. - Before your first refresh, repoint the source: Home > Transform data > Data source settings > Change Source, and select your own copy of
Data.xlsx. The path saved in the file is the folder it was built in. - Edit KPI Definition first – it decides what exists. Then Input_ Target for the reporting year, then Input_ Actual for the reporting year and the year before it.
- Home > Refresh.
- Pick your month on the KPI Scorecard, then work the misses top down. The table is already sorted worst first.
Frequently asked questions
Do I need a paid Power BI licence?
No. Power BI Desktop is free from Microsoft and opens, edits and refreshes the file; it is Windows-only. A Pro or Premium seat is needed only if you want to publish the report to the Power BI Service and share it with colleagues.
Can I change the KPI list?
Yes – that is the design. Add, delete or rename KPIs in the three sheets and refresh. A rename has to happen in all three sheets because the KPI Name is the join key.
Is there an Excel or Google Sheets version?
An Excel edition of this same KPI Dashboard is on the way. The lighter KPI Scorecard for the same trade is already live in Excel and Google Sheets – close in name, different build, its own KPI list.
Why is my lower-is-better KPI showing above 100%?
Because it beat its target. Lower-is-better KPIs score Target / Actual, so Concrete Waste % at 4.48 against a 4.81 target reads 107.4% and shows green. That is intentional, and it is what lets one Achievement % column compare a waste percentage with a bid hit rate.
What is in the download?
One ZIP with three files: the .pbix report, Data.xlsx and a Power BI Dashboard user manual PDF. One payment, lifetime access to the file.
Where to get it
The Concrete Contractor KPI Dashboard in Power BI is $12.99 (regular $19.99) on NextGenTemplates – a one-time payment with lifetime access to the file, no subscription and no per-seat licence.
If concrete is not your trade, the same build ships for several others: Masonry, Drywall, Painting, Electrical and HVAC contractor KPI dashboards in Power BI, with Insulation, Paving and Fencing joining them.


