Skip to main content

Cost Codes

The Cost Codes sub-tab inside Field Data answers a single question: where is this job's money going at the cost-code level? Every coded purchase order rolls up into one row per cost code, ranked by spend, with a click-to-expand drill-down to the actual POs behind each row.

This is the bridge between the high-level category cards on the Job Detail header and the per-PO detail in the PO Detail tab — the place to go when a category looks heavy and you want to know which specific cost code is driving it.

tip

Click any row to see the POs behind it. The summary table is fully interactive — most readers don't realize until they're told.

What the summary table shows

One row per cost code on this job, sorted by total cost descending.

ColumnWhat it is
Cost CodeThe code itself — numeric or alphanumeric
DescriptionThe human-readable name from the cost-code reference; falls back to the raw code if no description is on file
POsCount of purchase orders carrying this code on this job
Total CostSummed resolved cost across those POs
% of TotalShare of the coded total this code represents

For background on the cost-code system itself — numbering conventions, who maintains the reference list, how codes route into categories — see Cost Codes overview.

JCI Dashboard Job Detail Field Data Cost Codes sub-tab summary table showing one row per cost code with columns for Cost Code, Description, POs, Total Cost, and % of Total, sorted by spend descending

Expanding a row

Click any row to expand a child table of the actual POs behind that cost code's total. The drill-down shows order ID, date, category, vendor, description, status badge, and cost. Click the row again to collapse it. Only one row is open at a time — opening a second collapses the first.

The status badge in each drill-down row uses the standard five-color lifecycle. See PO Lifecycle Colors for the legend.

The (Missing cost code) row

When a job has POs that came through with no cost code, they collapse into a single (Missing cost code) row in the summary. That row often sits at the top of the table — uncoded labor frequently dominates a job's spend, and the table is sorted by total.

This row exists so the cost total stays honest. But those POs won't fix themselves.

warning

Uncoded dollars are real and need cleanup. The fix lives upstream of JCI in the timeclock app — see Missing Cost Codes for the queue surface and Fixing a missing cost code for the step-by-step.

The red banner above the table

When the job has any POs missing a cost code, a red alert banner appears above the summary reading "X PO(s) on this job is/are missing a cost code — they will not appear in the breakdown below." It's a top-of-page heads-up so PMs can see the issue without scrolling for it.

note

The banner count and the (Missing cost code) row count are computed independently. So if you've drilled into a different code that hides the bucket from view, the banner can still display the full uncoded count. They aren't always the same number — that's by design, not a bug.

How the Category column is decided

The same cost code can ride on POs of different categories — Concrete, Material, Sub, and so on. The Category shown in the drill-down reflects this code's dominant use on this job: the category of the highest-spend PO carrying that code.

note

Two PMs comparing the same cost code on different jobs can legitimately see different categories — because the dominant use depends on which POs landed where. This is intentional. Don't treat it as inconsistency.

Pump rows always read $0

Pump-category POs exist, but their dollar amounts aren't populated in source data — they're always zero. If you see a Pump row in the drill-down at $0, that's expected, not missing data. See Categories for the full picture.

info

Pumps are a known $0-by-design category. If a row's category is Pump and the cost is $0, nothing is broken.

How fresh the numbers are

Cost code rollups come from the same source as the rest of the dashboard's PO numbers, on a four-hour refresh cadence. So a PO confirmed within the last few hours may not yet be reflected here. See Data refresh rates for the full picture.

What this page does not show

This is the dollars-by-code view. Hours-by-worker for uncoded labor lives on the sibling C/L sub-tab. The per-PO browsing surface is the PO Detail tab. And the chart-based version of this same data is the Cost Code Treemap widget.