Billing Codes
Billing codes are your chart of accounts for yard activity. They turn "this trailer sat for six days" into a line your accounting system recognises.
Configured by an Admin in Admin Configuration. There are two parts: the catalog of codes, and the rules that pick one.
The Catalog
Each code carries:
| Field | Required | Notes |
|---|---|---|
| Code | Yes | The identifier that reaches your GL — STOR-STD, GATE-IN. Must be unique. |
| Label | No | A human-readable name for the picker. |
| GL account | No | The account this maps to in your finance system. |
Use the codes your finance team already uses. A code invented in Yard Spot that has to be translated on the way out defeats the purpose.
Mapping Rules
A rule says: for this kind of activity, use this code. Each rule names a dimension —
storage, work, gate_cycle, or accessorial — and may narrow further by:
- Customer — a contract-specific rate
- Ticket type — what kind of work was done
- Label — the work ticket's label
- Asset type — containers billed differently from chassis
A rule matches a line item when its dimension matches and every facet it specifies matches. Facets it leaves out are wildcards.
Which Rule Wins
The most specific matching rule wins, with customer weighted most heavily. In practice:
- A rule naming the customer beats one that does not.
- Among equally customer-specific rules, more narrowing facets beat fewer.
- A dimension default — a rule with no narrowing facets at all — is the fallback.
- If nothing matches, the line resolves to
UNMAPPED.
Accessorials never reach this ladder; they carry the code the operator chose.
UNMAPPED Is a Feature
A line item that matches no rule is never dropped. It appears on the report as UNMAPPED.
This is deliberate. Silently discarding unmatched activity would mean billable work quietly
vanishing from your revenue; showing it as UNMAPPED puts it in front of the person who can fix
it. Treat UNMAPPED rows as a worklist: each one is a rule you have not written yet.
Do not hide them in your reporting. A month with no UNMAPPED rows is the goal; a report that
cannot show them is not.
Setting Up
- Load your catalog first. Rules can only reference codes that exist.
- Write one default rule per dimension. Four rules gets every line item resolving to
something, and nothing lands on
UNMAPPEDfrom day one. - Add customer-specific rules for contracts that differ. Only where the rate genuinely differs — every rule is a thing to maintain.
- Run a report over last month and look at the
UNMAPPEDrows. That tells you what your defaults missed, using real activity rather than guesswork.
Changing Rules Later
Codes are resolved when a visit closes, so a rule change applies to visits closing from then on. It does not retroactively re-code visits already settled.
That is what you want for a period already invoiced — but it does mean fixing a wrong rule mid-month leaves the earlier part of the month on the old code. Check what has already closed before assuming a fix is complete.