Build Flows
Built and shownIntegrations

Cost-code crosswalk and master data that every report agrees on

Projects, cost codes, and vendors mapped once in versioned reference data, so every report uses the same answer and gaps go back to the owner.

The problem

The same job has a different name in Procore, accounting, and the CRM, and cost codes changed partway through the year. Mappings live in someone's spreadsheet or inside report formulas, so two reports can disagree and nobody can say which mapping is right.

What we build

We build the crosswalk as reference data under version control: project-to-job-to-deal links, an old-to-new cost-code map, and vendor matches, each with an owner. It is applied once in the lakehouse transformation, so every report sees one structure, and anything without a clear match goes back to the controller as an open question.

How it works

  1. 1

    Inventory identifiers and owners

    List each entity, the field that identifies it in each system, and the person who fixes it when it fails to match.

  2. 2

    Apply match rules in order of trust

    Manual mapping first, exact system IDs or project numbers second, and a name match only when there is a single candidate.

  3. 3

    Map cost codes as data

    Old codes translate to the new standard during transformation; codes with no equivalent stay in totals under an unmapped bucket and are flagged.

  4. 4

    Measure coverage every run

    Report how many projects are fully mapped and how much budget maps cleanly, so a drop shows up as a number rather than a surprise.

  • Procore
  • Sage 100 Contractor
  • QuickBooks Online
  • HubSpot
  • Microsoft Fabric
  • GitHub

The value it creates

  • Standardization

    One versioned map is applied everywhere, and a change is reviewed and re-run like any other code change.

  • Better decisions

    Budgets and actuals across a cost-code change roll into one complete column instead of two half-empty ones.

  • Early warning

    Mapping coverage is reported on every run, so a new unmapped job or code appears before month end.

  • Cost saved

    Fewer wrong links moving cost onto the wrong job; tracked by the count of exceptions resolved at the source over time.

Proof

Frequently asked questions

What is a crosswalk?

A table that explicitly links the same thing across systems, such as a Procore project, an accounting job, and a CRM deal. Reports join through it so they all use the same answer.

Why not put the mapping in Power BI?

Logic inside a DAX measure or Power Query step is hard to audit, test, or reuse. A crosswalk table can be reviewed, versioned, tested, and used by every report and every downstream tool.

What happens to cost under an old code with no new equivalent?

It stays in the totals under an unmapped bucket, shows up as an exception with its value visible, and goes to the controller to decide whether to split or retire it. The pipeline never invents a new code.

Who maintains the mapping after handover?

The controller or the record owner, through a short manual mapping file and fixes in the source systems. The goal is that adding the project number at the source turns most fuzzy matches into exact ones permanently.

Next step

Which report or workflow would you like to improve?

Tell us what your team does today, which systems are involved, and what you want to change. We'll discuss whether there is a practical fit.

Prefer email? charley@buildflows.ai