Skip to main content

Categories

The dashboard uses category labels almost everywhere — on PO rows, in scorecards, on charts, and in the budget form. What's not obvious is that there are two different category lists, and you'll see both depending on which part of the app you're in. This page explains why.

info

There are 7 categories on the purchase-order side of the dashboard and 9 categories on the budget-entry side. They aren't versions of each other — they're two different systems. The dashboard maps between them automatically.

Why two lists?

The two lists serve different purposes.

The 7 PO categories tag every purchase order and labor entry as it lands in the dashboard. They answer the question: what kind of cost is this? The answers are short and operational — Concrete, Material, Sub, Rental, Pump, Labor, Change Order.

The 9 PM Sheet budget categories are the buckets PMs use when entering a budget. They mirror how PMs think about budgeting on a job — which is more granular in places. Rebar gets its own line because PMs budget rebar separately from other materials. Fuel gets its own line because PMs estimate fuel separately from rental rates.

The dashboard maps cost codes between the two systems automatically, so the rollup math always works out. You don't need to do anything to make this work.

The 7 PO categories

These are the categories you'll see on every PO row, in the Category column on PO Detail, in category filters, and on the Category Cards tab.

CategoryWhat it coversWhere you'll see it
ConcreteConcrete-related cost — ready-mix, concrete pumping, etc.PO Detail, Category Cards, category charts
MaterialPurchased supplies (rebar typically lands here too)PO Detail, Category Cards, category charts
SubSubcontractor workPO Detail, Category Cards, category charts
RentalEquipment rentals (fuel typically lands here too)PO Detail, Category Cards, category charts
PumpPump-related lines (see note below)PO Detail, Category Cards
LaborTime clocked by workers; auto-confirmed on clock-inPO Detail, Category Cards, category charts
Change OrderApproved change orders on the jobPO Detail (with green Approved status)
note

Pump is always $0. Pump-category rows exist but their costs are never populated in source data. This isn't a bug — it's a known gap in the upstream data pipeline. Don't expect non-zero numbers in any pump-category card or chart.

JCI Dashboard Job Detail Category Cards tab showing seven cards in a grid layout, each labeled with a category name — Concrete, Material, Sub, Rental, Pump, Labor, Change Order — and displaying the total cost in that category for the job

JCI Dashboard Job Detail PO Detail tab table showing the Category column with a mix of category tags visible on different rows — Labor, Material, Sub, Concrete — styled as small grey text

The 9 PM Sheet budget categories

These are the rows you'll see in the Budget Entry form. The naming is intentionally different from the PO side — Materials (plural), Equip/Rental, Subs, and Pumps here, versus the singular forms on the PO side. Don't read anything into it; the names are just preserved from how PMs have always entered budgets.

Budget categoryWhat it covers
ConcreteConcrete budget
RebarReinforcement steel — its own line on the budget side
MaterialsOther material budget (excluding rebar, which has its own line)
PumpsPump budget (note: actuals are always $0; see Pump note above)
Equip/RentalEquipment rentals (excluding fuel)
FuelFuel — its own line on the budget side
SubsSubcontractor budget
LaborLabor budget
Other CostsThe catchall for anything that doesn't map cleanly to the others

JCI Dashboard Job Detail Budget tab Entry sub-tab showing the budget entry form with nine rows labeled Concrete, Rebar, Materials, Pumps, Equip/Rental, Fuel, Subs, Labor, Other Costs — each with a budget amount input column

How the two lists relate

Each cost code is assigned to a PM Sheet budget category through an internal lookup. So when a PO line lands tagged "Material" on the PO side, its cost code routes the line to either the Materials, Rebar, or Other Costs bucket on the budget side automatically. PMs never see the mapping — it just works.

PO categoryPM Sheet budget categoryNotes
ConcreteConcreteOne-to-one
MaterialMaterials, Rebar, or Other CostsSplit at the cost-code level
SubSubsOne-to-one (just plural)
RentalEquip/Rental or FuelSplit at the cost-code level
PumpPumpsOne-to-one (always $0)
LaborLaborOne-to-one
Change Order(not a budget category)COs flow through contract value adjustments instead
note

Rebar and Fuel route automatically. When a PO line tagged "Material" is actually rebar (based on its cost code), the rollup puts it in the Rebar budget bucket. Same for fuel under Rental. You don't need to drill into cost codes for Budget vs. Actual to add up correctly — the system handles the splits behind the scenes.

For more on cost codes and how they map between the two category systems, see Cost Codes.

Change Order is a PO category, not a budget category

Change Orders show up in the 7 PO categories because every approved CO appears as a PO row with category = "Change Order" (and the green Approved lifecycle status). But the budget form has no Change Orders row. That's intentional — Change Orders adjust the contract value of a job, not the cost budget. They flow through a separate contract adjustment, not through Budget Entry.

For the full picture of how COs work in the dashboard, see Change Order Terms.

Where you'll see categories

Categories surface across the dashboard in several places:

  • Job Detail → Category Cards tab — one card per PO category, showing the total in that category for the job
  • Job Detail → PO Detail tab — Category column on each row
  • Job Detail → Budget tab → Entry sub-tab — one row per budget category
  • Filter bars on All Jobs and Analytics — Category filter chips
  • Spend widgets — most spend visualizations (CostCodeTreemap, CategorySpendHeatmap, etc.) group by category