Reporting & analytics · October 7, 2026 · 7 min read

Procore, QuickBooks & HubSpot Reporting Example

A 10-page Financial Operating System in Power BI that gives owners and controllers one view of contracts, WIP, cost, cash, pipeline, and labor—joined across Procore, QuickBooks Online, and HubSpot.

By Charley Forey, founder of Build Flows

Video walkthrough. Chapters and full transcript →

At a glance: 3 systems (Procore, QuickBooks Online, HubSpot) · 10 report pages · ~50 data-quality checks before every refresh · one view of contracts, WIP, cost, cash, pipeline, and labor.

The Financial Operating System is a 10-page Power BI report that gives a construction company's owners and controller one view of contracts, WIP, cost, cash, pipeline, and labor. It combines Procore, QuickBooks Online, and HubSpot. Screenshots are from a demo build loaded with sample data for a fictional contractor: about 20 projects and $232M of contract value. The demo uses Procore and QuickBooks; the HubSpot page is described but not pictured.

How Procore, QuickBooks and HubSpot fit together

Each system answers a different question: Procore holds the job forecast, QuickBooks holds the money, and HubSpot holds the work not yet won. A nightly pipeline in Microsoft Fabric pulls all three through their APIs and joins them on one project list.

SystemWhat is pulledWhat it drives in the report
Procore (project management)Projects, cost codes, budgets, prime contracts and change orders, pay applications, commitments, purchase and work orders, commitment change orders, direct costs, requisitionsContract value, estimated cost at completion, cost to date, committed cost, billed to date, change orders: the backbone of the WIP schedule
QuickBooks Online (accounting)Customers and jobs, vendors, invoices, bills, payments, credit memos, deposits, journal entries, time activities, GL, P&L detail, AR agingAR and AP aging, the cash forecast, an independent cost check against Procore, and labor hours for capacity
HubSpot (CRM)Deals, pipelines and stages, companies, contacts, line items, ownersPipeline value, weighted pipeline, open deals, and pipeline confidence

How the systems are joined

The three systems share no common ID, so a project crosswalk links each Procore project to a QuickBooks customer/job and a HubSpot deal. It applies three rules in order:

  1. Controller's list wins. A short manual mapping file overrides everything.
  2. Exact match. The Procore project number found in the QuickBooks job name.
  3. Cautious name match. A fuzzy match is used only at 80% or higher confidence and only when there is a single candidate.

Projects that don't match stay in the totals, flagged as unmapped, and appear on the Exceptions page for review.

What the pipeline guarantees

  • Won work enters through Procore. HubSpot deals are never added to backlog or called revenue; "total forward work" shows backlog and weighted pipeline side by side.
  • Procore cost to date is compared with QuickBooks job cost, and the difference is shown as cost variance: a finding to review, not necessarily an error.
  • Data lands raw (bronze), is typed and validated (silver), then modeled as a star schema (gold). About 50 data-quality checks run before refresh; a blocking failure stops it.
  • The WIP table keeps one snapshot per month, so month-end figures stay as reported.
  • The connectors are modular: a client can start with Procore and QuickBooks and add HubSpot later, as the demo does.

Report pages

Every page has Project and Month slicers and a one-line subtitle saying who it is for. Headline figures below are from the demo company's sample data.

1. Portfolio: every project at once

Portfolio page

  • Example figures: $232M revised contract, $139M earned revenue, 7.0% GP at completion, $93M backlog, −$2M net over/under billing.
  • Visuals: a project table (revised contract, estimated cost at completion, % complete, GP % at completion, risk label) and GP % at completion by project.
  • Source: Procore contracts and forecasts.

2. Executive KPI: the one-page answer

Executive KPI page

  • Example figures: earned revenue, GP % at completion, backlog value, net over/under billing.
  • Visuals: earned revenue vs cost to date by month, backlog value by month, gross profit at completion and risk label by project, backlog value and backlog months by project.

3. WIP Schedule: the controller's deliverable

WIP Schedule page

  • Columns: revised contract, original budget, estimated cost at completion, cost to date, % complete, earned revenue, billed to date, over billing, under billing, gross profit.
  • Example totals: $130M cost to date, $137M billed, $1.6M over-billed, $3.7M under-billed.
  • Cross-check: cost variance by project, meaning Procore cost to date minus QuickBooks job cost.
  • Sources: Procore and QuickBooks together.

4. Project Financial Performance: per-project drill-down

Project Financial Performance page

  • KPIs: revised contract, estimated cost at completion, % complete, GP % at completion.
  • Visuals: original budget vs committed vs cost to date vs EAC by cost code, projected over/under by cost code, fade/gain by month, change-order log with status.

5. Backlog & Burn: work in hand and how fast it is consumed

Backlog & Burn page

  • KPIs: backlog value ($93M), backlog months, earned revenue, revised contract.
  • Visuals: backlog by month and by project.

6. Exceptions: what needs attention, in one place

Exceptions page

  • Example counts: 1 project at risk, 1 project over its estimate at completion, 105 cost codes over estimate, 7 projects not yet mapped across systems.
  • Visuals: lists of projects by GP and risk, projects near or past 100% complete, cost codes projected over, and pending change orders against cost variance.

7. Pipeline & Forecast: work we might win (HubSpot)

The demo company runs Procore and QuickBooks only, so this page is not in the demo build. It switches on when HubSpot is connected.

  • KPIs: pipeline value, weighted pipeline, open deals, pipeline confidence.
  • Visuals: pipeline and weighted pipeline by deal stage, weighted pipeline next to backlog by month, pipeline by deal owner, and an open-deal list with stage, amount, close date, and days open.
  • Source: HubSpot.

8. AR & Collections: the chase list

AR & Collections page

  • Example figures: $12M AR outstanding, $10M overdue (77.7%), days sales outstanding.
  • Visuals: AR by aging bucket (current, 1–30, 31–60, 61–90, 90+), AR by project, overdue invoices with days past due, largest open balances.
  • Source: QuickBooks.

9. Cash Forecast: committed cash only

Cash Forecast page

  • Example figures: $12M expected collections, −$9M expected payments, $3M net cash movement, $3M net working capital.
  • Visuals: cumulative cash position by week, collections vs payments by week, and the open AR/AP items behind them.
  • Source: QuickBooks invoices and bills.

10. Capacity: hours, utilization and labor margin

Capacity page

  • Example figures: 43.5K labor hours, 39.0K billable, 89.8% utilization, $1M labor margin.
  • Visuals: utilization by month, hours by crew, and a time-entry table with worker type, billable status, cost, and billable value.
  • Source: QuickBooks time entries.

Metrics tracked

The key figures follow standard construction WIP accounting (cost-to-cost percent complete), so the report ties to what a controller already prepares.

MetricDefinitionSource
Revised contractOriginal contract + approved change orders; pending change orders shown separately as exposureProcore
Percent completeCost to date ÷ estimated cost at completion, capped at 100%Procore
Earned revenueRevised contract × percent complete, summed project by projectProcore
GP % at completion(Revised contract − estimated cost at completion) ÷ revised contractProcore
Project risk labelNo forecast if blank; At risk if GP % below 0; Watch if below 10%; otherwise On trackProcore
Over / under billingBilled minus earned when positive (over), earned minus billed when positive (under); net shown as one figureProcore
Fade / gainMonth-on-month change in GP % at completionProcore
Cost varianceProcore cost to date minus QuickBooks job cost, by projectProcore + QuickBooks
Backlog value / monthsRevised contract − earned revenue; months = backlog ÷ average earned revenue over the last 3 monthsProcore
AR outstanding / overdue / agingOpen invoice balances, overdue share, and 30-day aging bucketsQuickBooks
Expected collections / paymentsIssued AR invoices and AP bills placed in the week they fall due, 4 weeks back to 26 ahead; overdue items roll into the current weekQuickBooks
Net cash movement / cumulative cash positionCollections minus payments, and its running total by week; unbilled backlog excludedQuickBooks
UtilizationBillable hours ÷ total labor hoursQuickBooks time
Labor marginBillable value minus labor costQuickBooks time
Pipeline / weighted pipelineOpen deal amounts; weighted = amount × probability (the deal's own, else the stage's)HubSpot
Pipeline confidenceWeighted pipeline ÷ total pipelineHubSpot
Projects unmapped / over EAC / cost codes over EACException counts that drive the review listAll three

Where this fits

This is the right-sized version of our enterprise reporting build on Procore, Sage, and Outbuild: the same bronze → silver → gold pipeline, quality gate, and "flag, never drop" rules—scoped to a contractor running cloud accounting and a CRM. Start with two systems, add the third when you're ready.

Next step

Have a problem like this?

Tell us the outcome you need. We'll tell you honestly how we'd approach it, and reply within two business days.

Keep learning