PortsNY / NJ

Drayage software for Newark and Elizabeth

DrayBase is being built for the New Jersey port market first — Newark, Elizabeth, Port Liberty NY — because that is where the operation we build alongside actually runs. This page is about those lanes specifically: what the software does on them today, and the parts we have not written yet.

Where this standsDrayBase has not launched and has no carriers running on it — not in New Jersey, not anywhere. The dispatch board reads a real database and does real per diem and demurrage arithmetic; it cannot yet change anything. And we are not connected to a single terminal portal, which on a port landing page is the one thing worth saying out loud rather than in a footnote.

The work here01

Six things that decide the day on this harbor

None of these is a feature request. They are the shape of the job between Newark, Elizabeth and Port Liberty NY — and the reason the data model looks the way it does instead of looking like a general freight TMS with a container field bolted on.

Two clocks
Free time belongs to the terminal and per diem belongs to the line. Different owners, different daily rates, and the gate out is the handoff between them — the calculation never lets one box accrue both at once. Both clocks live on the container record, and the last free day carries its own source and its own timestamp.
Chassis
Whether the box rides your own bogie or a pool unit, whose pool, and what the day costs. Pool names are values in a field, not connections — and a split you discover on an invoice six weeks later usually started as a field nobody filled in on dispatch day.
Empty returns
The line moves where it takes empties back, sometimes mid-week, and it is not necessarily the terminal you pulled from. That is why the empty return location is its own field on the container instead of being inferred from the pickup.
Street turns
Reusing an import empty on an export is a line-authorization question first and a matching question second. The line record carries whether it authorizes them and the move type exists; the continuous matching does not. Planned
Dual transactions
Dropping an empty and pulling a load in one trip to the same terminal. A load can point at the load it was paired with, so the pairing survives in the record; deciding which pairs are worth making is still a dispatcher and a whiteboard. Planned
Gate rules
No TWIC, no gate. It sits on the driver record with its expiry date, next to the terminals that driver prefers. Fields today and nothing more: there is no assignment yet for a rule to block, so nothing stops the wrong man being sent to the wrong gate. Planned

The port is the domain model, not a filter on top of one.

Today02

What the board already does on a Newark day

This is the changelog, not the roadmap. Every row below is running code against a real Postgres database — the one your containers, your chassis, your drivers and your customers would live in, one carrier per tenant, isolated in the database itself rather than by a filter somebody could forget to write.

#CapabilityWhat it does hereStatus
01Board rowsOne row per load, with the status derived from the load, its moves and the container’s holds. A customs or freight hold outranks a driver already enroute, and stops mattering the moment the box is gate out.Built · read only
02Free timeLast free day counted in calendar days in the port’s time zone — not UTC, not the server’s. A box whose LFD is today is today in New York even though the server sits in Dallas.Built
03ExposureDemurrage while the box is still inside the terminal past its last free day; per diem only once there is a gate out, and until the empty is back. Added per load, and totalled across the whole operation in its own aggregate query.Built
04Daily ratesContainer override first, then the rate negotiated with that steamship line — the row you read and the arithmetic behind it resolve it the same way. With neither set, the math falls back to a built-in figure per day, and the operation-wide total is still added up on that fallback rather than line by line.Built · fallback
05Source and freshnessEvery last free day carries where it came from — typed by hand, portal, line, email, EDI, API, driver app — and when it was last touched. Until an integration exists, the only source that could honestly be set is: typed by hand.Built · manual
06Acting on itAssigning the driver, booking the window, pairing the empty. The board shows you the day; it cannot yet change it.Planned
Read only means read onlyThe whole system has two kinds of write today: the forms on this website, and switching which company you are looking at. There is no dispatching, no invoicing, no settlement and no driver app. A demo of this board is a demo of numbers being right, not of a day being run.

Your terminals03

A terminal is a record you own

The short codes your dispatcher says out loud — APM, PNCT, Maher, GCT Bayonne — are the code field on a location, next to whether that gate needs an appointment and which system issues it. Naming one here means exactly that: it is a value the record can hold. It implies no relationship with the terminal and no connection to its systems.

Elizabeth marine terminalPort terminal
Sample
CodeELIZ
Typeport_terminal
AppointmentRequired · system named on the record
Time zoneAmerica/New_York · the carrier default
Geofence250 m · default radius
Empty returnsPer container · not a property of this gate

Illustration of the location record — a sample, not live data. The terminal name and code are made up; the fields are the ones the schema has.

We do not read your terminals. Not yet, and we will say so.

No portal scraping, no appointment system, no steamship line website, no EDI feed. Last free day, holds and availability are numbers a human knows and a human will have to type, and the field that moves the most money is built to admit it: the last free day carries its own source and its own updated-at stamp. Terminal data is deliberately the last thing on the roadmap: it is the piece most likely to break quietly, and a board that is confidently wrong about a last free day is worse than no board at all.

Terminal data Planned · lastWhen it lands it lands with a health dashboard and a freshness stamp per field, because a stale LFD that looks live is how carriers pay demurrage.
Appointments PlannedThe record already models the window, the kind, the confirmation number and the statuses a window can end in, including missed. Booking one from here does not exist.
Problem containers PlannedThe exception queue is in the schema and the board counts what is open in it. Nothing writes rows to it yet, so today that count is honestly zero.

QuestionsStraight answers

What carriers here ask first

Do you pull last free day from the terminals?

No. Nothing in DrayBase reads a terminal portal, an appointment system or a line's website today. Free time, holds and availability are numbers a human has to know and type, and the schema is built to record that: every last free day has a source field and an updated-at stamp, and the board hands both back with the row. Typing them into a screen, and putting that freshness in front of the dispatcher next to the date, are both still to come. Planned

Which terminals do you support?

All of them and none of them, depending on what you mean. A terminal is a location record — code, type, whether the gate needs an appointment, which system issues it, its time zone, its geofence radius — so Newark, Elizabeth, Port Liberty, the rail ramps and your own yard are all the same kind of row, with no per-port build behind any of them. What we do not have is a connection to any of their systems — and, today, not even the screen that creates that row: writes are not built yet. Planned

Does it know per diem is the line and demurrage is the terminal?

Yes, and it counts them separately. Demurrage accrues while the box is still inside the terminal past its last free day; per diem cannot charge a cent until there is a gate out, and stops when the empty is back. Both are counted in calendar days in the port's time zone. The daily rate resolves from the container override first, then from the steamship line record; if neither carries one, the arithmetic falls back to a built-in figure per day — a placeholder standing in for a contract we have not been told, not a rate we are claiming to know. A carrier-wide default you set once, and totals that add up line by line instead of on the fallback, are not built. Planned

Can it find street turns and dual transactions for us?

Not yet. The move types exist, a load can be linked to the load it was paired with, and the line record carries whether it authorizes street turns — the shape is there, the matching is not. When it arrives it will propose pairs on the board with the reason attached and wait for a dispatcher to say yes. Planned

Is anyone in New Jersey running on it today?

No. The operation we are building alongside is a New Jersey carrier running these terminals, and it has not been migrated — it still runs on the drayage TMS it pays for. When that changes we will say what moved, what did not, and what broke, rather than turning it into a case study.

We run both sides of the harbor. Is that two systems?

No. The pickup terminal and the empty return location are two separate fields on the container, and an appointment is its own record pointing at that box — nothing is keyed to a port, so a box crossing from a Newark pull to a Staten Island return is one container record and one row on the board. Whether multi-port ends up affecting what you pay is a pricing question that is not settled.

Go deeper

The same job, one screen at a time

Dispatch

The dispatch board — the rows, the derived status and the KPI tiles that count the whole operation.

Containers

Free time and per diem — how the clocks, the holds and the exposure in dollars are modeled.

Chassis

Pools and splits — ownership, daily cost and who has the unit right now.

Empties

Street turns — authorization, compatibility and why the matching is not built yet.

Coming off a legacy drayage TMS: how a move would work. What lands next: the roadmap. What it will cost: pricing.

Early accessNY / NJ first

Put your own Newark lanes on it

We open one port at a time, and this is the one we know. Tell us your terminals, your chassis pools and which lines you carry, and we will run your own week through the board in front of you — including the parts where the honest answer is that it does not help you yet.

Smarter Drayage.
Stronger Connections.