A reference build: we made this ourselves to show how we work. It is not a client engagement, there is no customer to name, and there are no measured outcomes to report - so this page does not pretend to have any.
The estimator, with a name against every assumption
A reference build: voyage estimation for a chartering desk, versioned so that estimate and outcome can be argued about afterwards with the assumptions still attached.
- Client
- Reference build
- Sector
- Dry bulk shipping
- Year
- 2026
- Built with
- Next.js, TypeScript, Postgres, AIS feeds, Python
The numbers
- 3
- The power consumption rises by, not one: roughly the cube of speed, which is the term a workbook drops
- 1
- Immutable version per estimate, with the author and timestamp on every changed assumption
- 2
- Runs of the same model per voyage, once before the fixture and once against actuals
The problem
Voyage economics live in a workbook that four people email around. When a fixture goes badly the desk cannot answer the only question that matters - which assumption was wrong, and who changed it. Post-voyage analysis is therefore not done at all, so the same optimistic bunker price and the same optimistic port days get used again on the next estimate.
What we did
- 1
Every estimate is an immutable version. Changing an assumption creates a new one with the author and the timestamp attached, so the pre-fixture conversation is reconstructible months later without anyone having to remember it.
- 2
Consumption follows the vessel's own curve rather than a flat figure, with speed cubed. A flat mt/day makes speeding up look free, which is the error that flatters the most fixtures - and it is exactly the mistake a workbook makes.
- 3
Bunker prices and port cost history are pulled in with an age stamp, so a stale input is visibly stale on the screen rather than quietly wrong inside the arithmetic.
- 4
The same model runs again after the voyage against actuals, putting estimate and outcome side by side. That comparison is the only mechanism that ever improves the assumptions.
Where it got to
The estimator on the maritime page is this model, simplified and running in your browser. The cube-law behaviour is the same: push the speed up and the TCE falls even as the voyage shortens.
A worked example
The estimator on the maritime page is this model. Supramax, US Gulf to Continent, 60,000 mt at $16, market hire $13,500:
- At 12.5 kn, consumption
- 19.9 mt/day
- Voyage days
- 32.0
- TCE
- $15,913/day
- Against market hire
- +$2,413/day
- At 16 kn, days saved
- 4.6
- TCE at 16 kn
- $13,510/day
Speeding up saved four and a half days and cost $2,400 a day. A flat consumption figure hides that completely, which is how estimates flatter a fixture.