Back to Projects
Personal Project · 2026

Fulfillment Tycoon

Run an outdoor retailer’s fulfillment for a year: twelve turns, ~9,000 orders a month, priced by a real sourcing cost model. Same seed for everyone.

Supply ChainSimulationReact
Organization
Personal Project
Timeline
2026
Live
fulfillment-sim.vercel.app

The Challenge

Fulfillment Tycoon is a strategy game built on a simulation engine, not a spreadsheet of made-up numbers. Twelve monthly turns running Cairn Outfitters, a fictional outdoor-gear retailer: route orders, set buying postures, open DCs, survive vendor outages, a viral demand spike, carrier rate increases, and Cyber Week. The challenge was twofold — make it genuinely fun to play, and make every number on screen defensible: each order priced through zone-based rate cards, cartonization, and a seven-component cost model, with a global leaderboard where every score is verified by replaying the player's full decision log server-side.

My Approach

I built the engine from a frozen contract spec with a formal raise→review→amend loop — 23 documented questions where implementation pushed back on the spec. The most important design changes came from practitioner knowledge catching where the model diverged from how retail actually works: split shipments were repriced from a token annoyance penalty to the real cost of shipping a second package; clearance markdowns were added when the model's profit-optimal inventory position held far more cover than any merchant would run; seasonal demand curves were rebuilt so Thanksgiving through Cyber Monday carries real weight. Same-seed determinism runs through everything — a game is its decision log, replays are byte-identical, and common random numbers mean the what-if panel can honestly say the difference is policy, not luck.

Impact

~9,000 orders a month priced across 14 nodes and ~600 SKUs, with 6 routing policies and a seven-component sourcing cost model
Practitioner corrections measured in dollars: split shipments repriced from a $296 penalty line to real second-package freight against a $177,932 monthly freight bill
Clearance pricing moved the profit-optimal inventory position from 19.5 to 17.7 effective weeks of cover and rebased the year's profit down 27% — the drag real seasonal retail carries
Deterministic replay as anti-cheat: every leaderboard score is verified byte-for-byte by re-running the decision log server-side
470+ property-based and calibration tests, including directional tests that catch levers which parse, render, test green — and change nothing
Play it live →

Technologies

PythonNumPySciPyFastAPISQLAlchemyPostgreSQLServer-Sent EventsNext.js 15React 19Zustandd3-geoVercelRailway

What's Next

  • →Publish the full case study — what the model got wrong and how I knew
  • →MILP-based optimal-routing benchmark to replace the current best-shipped-policy comparison
  • →Playtest rounds and daily-seed leaderboard seasons