Skip to main content

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:

FieldRequiredNotes
CodeYesThe identifier that reaches your GL — STOR-STD, GATE-IN. Must be unique.
LabelNoA human-readable name for the picker.
GL accountNoThe 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 dimensionstorage, 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:

  1. A rule naming the customer beats one that does not.
  2. Among equally customer-specific rules, more narrowing facets beat fewer.
  3. A dimension default — a rule with no narrowing facets at all — is the fallback.
  4. 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

  1. Load your catalog first. Rules can only reference codes that exist.
  2. Write one default rule per dimension. Four rules gets every line item resolving to something, and nothing lands on UNMAPPED from day one.
  3. Add customer-specific rules for contracts that differ. Only where the rate genuinely differs — every rule is a thing to maintain.
  4. Run a report over last month and look at the UNMAPPED rows. 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.