The system tracks live load at each prep station: open tickets, average cook time per item, and cooks on station. For a menu item that more than one station can prepare, it routes the ticket to the station with the earliest predicted completion time. Routing is re-evaluated whenever a station's load changes, for tickets that have not started cooking, so a ticket can move to a station that frees up.