
Empty container depot billing software is not a prettier PDF generator. For a physical empty yard in the ~200–5,000 TEU band, it is the ledger that turns Gate In, free days, lifts, and repair outcomes into invoices a shipping line can audit without a phone tree.
Ops and finance share the same failure mode: the yard knows when the box arrived; the invoice says something else. Free-day clocks start late, handling charges lack a lift event, repair and storage argue from different files. Buyers searching awkward strings like expendable container billing software are usually hunting the same thing — event-tied depot billing, not a generic AR tool.
This piece is about billing inside the depot OS: clocks, tariffs, and dispute packs on the unit timeline. It is not freight TMS. It is not “ERP integration” as a nightly export story (that is a separate handoff problem). Here the question is simpler: can you explain every charge from what the yard actually recorded?
What empty-depot billing actually bills
Empty-depot commercial reality is a short charge menu with long arguments behind it.
Typical lines on an empty programme invoice:
- Storage / demurrage-style dwell after free days (calendar or business-day rules per line)
- Handling lifts — Gate In, Gate Out, grounding, mounting, extra rehandles when picks dig neighbors
- Free-time exceptions — programme holds, weather, line instructions, agreed waivers
- Repair pass-through — estimate lines, approved work, and sometimes storage that continued while the unit sat on hold
- Ancillary services your commercial book already prices (washing, PTI, specials) when they are real depot work, not fiction
What buyers often miss: storage is not “a TEU count times a rate.” It is a clock + a tariff + an owner. If the clock is wrong, the tariff is theater. If the owner/line context is wrong, the invoice lands on the wrong desk.
Billing that lives only in finance software — disconnected from gate and yard — forces someone to re-type movements. That person becomes the dispute.
Empty-depot context for the ops spine (gate, positions, holds, availability) sits on empty container depot software. This blog owns the commercial layer that must ride the same events.
Why the storage clock must start at Gate In
Free days are worthless if the clock starts when a clerk finishes typing.
In a healthy empty depot, Gate In is commercial time:
- Truck arrives; unit is accepted
- Digital EIR / gate record is posted with a trustworthy timestamp
- Inventory updates and the storage clock starts against the correct line / programme tariff
- Free days count from that event — not from “when we caught up after lunch”
What breaks when the clock starts late (or early):
- Late start: the yard under-bills; finance “wins” a quiet month and loses the next dispute when the line compares timestamps to their own gate proof
- Early / estimated start: the line escalates immediately; trust dies faster than the dollar amount
- Paper Gate In, digital bill later: two histories — the lane truth and the invoice export — and nobody can prove which free-day day-zero was intended
- Batch catch-up after Monday returns: hundreds of empties get one afternoon timestamp; free-day arithmetic becomes political
The gate product problem (queues, digital EIR, peak capture) is covered on gate management software for depots. For billing, the only non-negotiable is: the commercial clock reads the same Gate In the yard used for inventory.
If your “billing system” cannot see that event without a paste into Excel, you do not have empty container depot billing software. You have a second book.
Soft check: if free-day fights still begin with “when did this unit actually gate in?,” walk Gate In → storage clock → tariff line on containerhub.ai or review pricing. Soft CTA only — no directory claim.
Tariffs, free-day exceptions, and line-specific rules
Empty depots rarely run one rate card. They run line books.
What tariff logic must survive a real week:
- Per-line / per-programme free days (7 vs 10 vs “until release,” calendar vs working days)
- Storage tiers after free time (flat daily, stepped bands, TEU-weighted rules your commercial team already sells)
- Handling tariffs that map to named events (in, out, extra lift) — not a vague “ops fee”
- Exceptions with an owner — waived days, programme holds that pause or continue the clock per agreement, credit notes that reference the unit event
- Effective dates so a rate change mid-month does not silently rewrite last month’s open dwell
Spreadsheet tariffs fail in familiar ways: a VLOOKUP nobody owns, a column renamed on Friday, a free-day override in a chat message that never reached finance. Line-specific rules belong next to the customer/programme record the gate already used — not in a side workbook named rates_FINAL_v7.
Good empty-depot billing software does not invent your commercial policy. It enforces the policy you already negotiated, against events the yard already posted. When a line asks “why day eight?,” the answer is a tariff row + a Gate In timestamp + an exception log — not a reconstruction project.
Repair vs storage on one unit timeline
Damaged empties create the hardest invoices: repair charges, storage while waiting approval, and “was free time paused?” arguments in the same email thread.
The failure mode is dual truth:
- Workshop tracks estimates in email / WhatsApp
- Finance bills storage from a dwell export
- Ops swears the unit was on hold and should not have been “available”
- The line receives two PDFs that do not share a timeline
What ops/finance need on one unit record (without turning this page into an M&R rewrite):
- Gate In and digital EIR / inspection outcome that started the story
- Hold state that blocked sellable availability while repair was open
- Estimate → approval → work complete (or reject) with dates finance can see
- Storage clock behavior that matches your commercial rule for “on repair hold”
- Invoice lines that can point at repair and storage without two source systems
Repair workflow depth belongs on container M&R software. For billing buyers, the bar is narrower: can a dispute pack show repair and dwell on the same timeline? If not, every damaged empty is a future credit note.
Dispute packs: EIR, photos, and event history the desk can hand a line
Lines do not dispute “invoices” in the abstract. They dispute unexplained charge lines.
A dispute-ready pack for an empty unit usually needs:
- Gate In / Gate Out proof — digital EIR with timestamp, container ID, size/type, and line/owner context
- Photos bound to the inspection or damage event (not a chat dump three weeks later)
- Event history — lifts, holds, status changes, free-day exceptions, who posted what and when
- Tariff reference — which rate card and free-day rule produced the storage math
- Repair evidence when repair is on the invoice — estimate lines and approval state, not a vague “M&R fee”
The commercial win is speed. When the desk can export or share a unit pack in minutes, escalations shrink. When evidence lives across email, shared drives, and a billing spreadsheet, every dispute becomes a scavenger hunt — and finance loses even when the yard was right.
Dispute packs are also how you separate honest billing from hostile billing. Event-tied invoices look boring. Boring is what lines renew.
Spreadsheet / dual-system failure modes vs an ops-tied billing ledger
Email + Excel can look fine until peak week and the first serious line audit.
A typical fragile stack:
- Gate on paper or a lane sheet
- Photos in chat
- Inventory in one workbook
- Free-day formulas in another
- Repair totals from the workshop inbox
- Finance re-keys into QuickBooks / Xero / an ERP AR module
- Corrections live in reply-all
Predictable failures:
| Failure | What the line sees | What the yard feels |
|---|---|---|
| Clock ≠ Gate In | Wrong free days | Nightly reconciliation |
| Two inventories | Invoice for a unit already out | “Which file is truth?” |
| Orphan lifts | Handling charges with no event | Credit notes and apologies |
| Repair vs storage split | Two stories, one box | Ops vs finance blame |
| Tariff drift | Rates that don’t match the contract | Quiet under/over-billing |
| No exception log | “We agreed to waive” with no record | Relationship damage |
An ops-tied billing ledger flips the dependency: movements and services post first; charges are derived (or proposed) from those events; finance reviews and issues — it does not invent the yard history. ERP/accounting remains where money posts; the depot OS remains where why this charge lives. That distinction matters: this draft is not an ERP-integration playbook. It is the requirement that billing truth start in the yard.
Compared with a pure spreadsheet stack, see also the broader ops argument in ContainerHub vs Excel.
Soft next step: event-tied billing inside the depot OS
ContainerHub is ops SaaS for physical empty-container depots/yards (~200–5,000 TEU): gate, digital EIR, inspections, M&R, yard positions/holds, billing, and client portal on one model — so storage clocks, tariffs, and dispute evidence can share the unit timeline.
It is not freight TMS. It is not a marine TOS. It is not a standalone invoicing app bolted onto a paper gate.
Soft CTA only — no directory claim:
- Walk one real dispute: Gate In → free days → lift → (optional) repair → invoice line
- Compare published plans on pricing
- Request a short demo with your mix of lines and tariff rules
Explore ContainerHub · Pricing
Related reading: Empty container depot software · Container M&R software · Gate management software for depots · Container depot management software · vs Excel


