03 / 07 · Case studyRail logistics

Catching demurrage before the railroad bills it.

Year
2024
Role
Product Designer
Platform
Web app
Industry
Rail logistics

Catching demurrage before the railroad bills it

Traktive is a platform for companies that ship and receive by rail. A railcar gets a couple of free days at the facility that unloads it. After that, the railroad charges for every day it stays. That charge is demurrage, and for a small co-op it can run to thousands of dollars a month.

I led design from the first interviews to the product. The screens follow the money: a late car about to cost something, the month those costs add up to, and the railroad’s invoice that bills for them.

Everything in these screens is invented: the co-op, the cars and the money.

One release clears three rows. The week’s total and the daily bars drop with them.

What operators told us

I interviewed business owners, operators and logistics coordinators about their days. Everyone was working across three to five systems for a single task, and the cost reports arrived at the end of the month, long after the decisions behind them. They also described their yards as places, with cars moving through them, never as lists.

  • ~2.5 h a day per operator lost to switching systems, from the workflow mapping
  • 4× faster to find and assess a car on a spatial view than in a table, in tests with 10 operators

Every car that will cost money this week

The first screen is one row per car that will cost money this week. Each row draws the car’s week as a strip, and a histogram of the week’s charges sits over the same columns, so the expensive days line up with the cars behind them.

Six cars, $1,500 this week if nothing changes. The bars over the columns are the charges per day.

Every way out, previewed on the track

Opening a car shows why it’s late and where it’s going: the route with the delay, and the track it’s headed to as a board of spots and days. Next to it are the ways out, each with what it would cost. Point at one and the board rearranges to show it before anything is sent to the railroad.

The cheapest way out is often somewhere else on the track. Here, two empty tank cars that nobody released are holding the spots this car needs.

Track 4 · Alenville · CSX switches Tue and FriDemurrage$450
Fri 23Sat 24Sun 25Mon 26Tue 27Wed 28Thu 29
Waiting–Spot 11Spot 22Spot 33Spot 44Spot 55Spot 66
UTLX 70211Unloaded, waiting for pullGATX 30877Waiting for pullCSXT 18842TILX 22190TILX 30482 · empty since Mon, not releasedTILX 30519 · empty since Mon, not releasedCSXT 195035 · waiting for a spot195035
ChargesFreeFree$150$150$150
Pick a way out. The board and the charges show what happens to CSXT 195035.

The month against its budget

Demurrage is also a monthly budget. The month is drawn as a running total with a projection and the budget line, and under it every car that’s on the clock, counting down. Countdowns only show seconds in the last hour, so only the urgent row visibly ticks.

Release three unloaded cars and the month’s projection bends under the budget. The gap fills in as avoided.

Checking the railroad’s invoice

The railroad bills demurrage in a monthly statement, and statements get things wrong: a holiday billed, a car charged after it was released, a line billed twice. Traktive checks every line against what it saw happen and drafts the dispute, with the records for each line attached.

The audit checks the statement line by line and stops on each wrong charge, while the amount to dispute counts up.
Five of sixteen lines were wrong. The dispute is drafted with the records for each.
The evidence for one line: what was billed against what Traktive saw, on one calendar.

Colour only means money

Three colours carry the whole product. Green means act, or saved. Orange is money being charged. Amber is money about to be. Nothing else uses them, so a glance at any screen shows where the money is.

Every screen ends in one action that makes a number go down, and the motion shows where it went: rows settle and leave, totals roll down digit by digit, the projection bends.