Three ways to train a new bartender
The deployed trainer is a careful simulator, but it plays like a lab. You place bottles and watch, and success means writing an explanation. These three concepts start over from the job itself. Each one picks one skill a newer bartender needs and turns it into something you play in a few minutes on a phone.
Make Last Call the frame and Pour Line the moment-to-moment skill inside it. Use Well Plan as the pre-shift setup. One session then becomes a whole shift: set your station, work the night, pour each drink by hand, and close on the receipt. Pour Line has the strongest core loop on a phone. Last Call carries the message that matters most to an owner: busy is not the same as profitable. Well Plan keeps the original trainer's best idea, layout follows demand, as a quick puzzle with a clear goal.
What I looked at first
- The folder has a detailed functional spec, an early static mockup and a 100-line three.js placeholder. The deployed build comes from a larger codebase that isn't in the folder.
- The live trainer (
/legacy/original-3d) teaches station layout and workflow with fixed scenarios and trace playback. It's text-heavy, mostly dropdowns and slot buttons, and has no score by design. It also ran at 2–6 frames a second in my headless test browser. That browser has no GPU, so real phones will do better, but it's still heavy for what is mostly a placement puzzle. - The spec's strongest ideas never made it into the live build: hold to pour, over-pour cost, ringing into the POS, walkouts, and money shown but never scored. Those are the most game-like parts and the most on-message for Independent Count. All three concepts lean on them.
Shared decisions
- Audience: newer bartenders in staff training, as you specified. Every screen names the next action. Every result screen ends with one coaching note in plain words, not just a number.
- Phone first, desktop too. Thumb-sized targets of about 44 px on a phone. Pour Line and Last Call have keyboard controls on desktop. Well Plan supports mouse drag-and-drop. I tested at 320, 390 and 1280 px wide.
- Branding: a fictional venue, "Indy Bar". Independent Count appears only in a one-line credit. Brands are made up (Kestrel vodka, Lantern bourbon, Sol Alto tequila), following the spec's "Kestrel Vodka" example.
- Short sessions. Each run is 45 seconds to 2 minutes, with a "run it again" button and best scores remembered on the device.
- Money is shown, never the only score. This follows the spec. Each game reports skill scores and a separate money line, so a trainee sees the business cost of a habit without being judged by a dollar figure.
- No art pipeline. Everything is drawn in code (canvas, CSS, SVG) with free Google Fonts. Each file is a single self-contained HTML page with no build step.
Pour Line
Play it · source concepts/pour-line/game.html
The idea
An arcade shift. Guests sit with a ticket. For each one you pick the glass, add ice, then press and hold a bottle to pour, letting go at the line. Add the mixer, ring it in, and serve. Three shifts escalate. In Warm-up and Happy hour the pour meter is visible. Band night hides it while you pour, so you have to count.
Choices
- Press and hold the bottle itself to pour, because that's the most physical gesture a phone allows. A tap-to-start, tap-to-stop setting covers anyone who can't hold steadily, as the spec requires.
- A visible count. Each half-second of pouring flashes "1, 2, 3…". On a well spout that's 0.5 oz a count, so three counts is a 1.5 oz pour. Band night removes the meter, so the count is the skill being trained.
- Call bottles have a slower spout (0.75 oz a second). The same count pours less, which teaches "know your spouts".
- Ringing in costs 1.2 seconds and is skippable. The temptation is real, and the result screen prices it.
- Mistakes are caught when you serve, not when you make them. A wrong glass, wrong spirit or a well pour for a call order gets sent back, which costs time and patience. A call bottle poured for a well order goes through, but the end screen counts the cost difference.
- The results show the spec's three scores (accuracy, control, speed), never added together. Then come one coaching note, a chart of every pour against the ±0.15 oz band, and a money line covering over-pours, giveaways, unrung drinks, waste and walkouts, scaled to a 250-drink night.
Assumptions
- Pour rate is 1.0 oz a second on a well spout. The spec says 0.9. I rounded so the count math is clean (one count is half an ounce).
- Specs are 1.5 oz for highballs and shots and 2 oz for neat and rocks. Tolerance is ±0.15 oz, from the spec.
- Costs and prices are illustrative: well about $0.45–0.55 an ounce, call $1.10–1.30, drinks $6–12.
- One drink per guest and four seats. Parties of two or three are left out to keep the screen readable.
Open questions
- Should you be able to switch to the jigger? The spec lists jigger, free pour and spout as modes. A jigger mode would trade speed for accuracy and could be its own lesson.
- Does the pour sound help timing on real phones? It's off by default.
Well Plan
Play it · source concepts/well-plan/game.html
The idea
The original trainer's layout lesson as a puzzle game. You see tonight's order counts and a station from above: speed rail, your mat, back bar at eye level and on a low shelf. Each spot shows its reach time. Place the bottles, press Open the bar, and watch the night play out with a heat map of where your hands went. Your reach time is compared with last week's setup and with a par found by a solver. Six levels each add one idea.
Choices
- One number to beat. The score is reach time, the seconds spent getting to bottles and back. It leaves out the fixed time every drink takes, which the layout can't change, so improvements look as big as they are.
- Par comes from a solver (a greedy start, then swap and move search with restarts), so three stars is always achievable. If a player beats it, their layout becomes the new par.
- Stars measure how much of the possible saving you captured between last week's setup and par. Otherwise a nearly-good starting layout would hand out free stars.
- Levels teach one idea each:
- Busy bottles go on the rail.
- The middle of the rail beats the ends.
- The low shelf is for slow bottles.
- Handles, backups and running dry.
- Re-set the rail for tonight's crowd (a tequila promo).
- Friday, with everything at once.
- No clock while you think, and a "show me one better move" hint after the first run. For a newer bartender it's a lesson to understand, not a reflex test.
Assumptions
- Every reach is a round trip from your mat. It costs 0.25 s to grab, travel at 120 cm a second, plus 0.8 s to turn for the back bar and 0.6 s to bend for the low shelf. These are the spec's constants plus the bend. The geometry is illustrative, not measured.
- A 750 ml bottle gives 16 pours and a 1.75 L handle 38, as in the spec. A stockroom run is 20 s. A backup bottle elsewhere on the station is swapped into the closer spot when the first one runs dry.
- Handles only fit the wide end spots on the rail, following the spec's 750-versus-handle width rule.
- Glassware, ice, gun and POS are fixed in this version. Only bottles move.
Open questions
- Should glassware and the POS be movable in later levels, as in the live build's workflow module?
- A level built from a real venue's POS export (pours per night per bottle) would make this the most directly useful of the three for a client.
Last Call
Play it · source concepts/last-call/game.html
The idea
You run the bar for a night: six stools, guests with patience bars, and you walking the rail. Greet, take the order, suggest the call brand, make it, ring it, serve it. Along the way you face calls with no rule:
- a regular wanting a free drink;
- a bottle running low mid-rush;
- a guest who has had enough and wants another.
The night closes on a printed Z-report: sales rung, cost poured, what the bar kept, plus unrung drinks, unlogged comps, walkouts and your tips.
Choices
- Bad habits are faster and pay better in tips, on purpose. In testing, a bot that skipped rings and slid free drinks served more and earned more tips than a careful one, but the bar kept less than nothing. That tension is the lesson. The receipt and the headline ("The bar lost money") make it plain.
- Decisions time out. Each card says what happens if you don't answer: for a guest who's had enough, you pour it. Not deciding is a decision behind a bar.
- Greeting is its own action. It's quick and it calms guests. That teaches "be right with you" as a habit, and it's graded under Service.
- Three letter grades (Service, Control, Judgment) plus up to three coaching notes chosen from what went wrong.
- The receipt look separates "money" from "game" visually. It ends with the line "Busy is not the same as profitable", which is the firm's positioning in one sentence.
Assumptions
- Prices, costs, tip rates and upsell odds (55%, or 25% for a guest in a hurry) are illustrative.
- An incident costs $250. That's a stand-in for the real cost (comps, damage, liability), not a researched figure. Responsible-service rules vary by state, so the copy says "in many places it's your license too" rather than citing a law.
- Ten seconds is the target for greeting a guest. It's a common house standard, not an industry rule.
- Drink-making time is fixed per drink. The pour itself is abstracted, which is where Pour Line would plug in.
Open questions
- Should tips go to the player at all? Showing them makes the temptation honest, but some owners may prefer not to show a trainee that skipping the POS pays.
- Your client's real comp policy and cut-off rules would make the events specific to their bar.
How the three compare
| Pour Line | Well Plan | Last Call | |
|---|---|---|---|
| Skill | Pour accuracy, build order, ringing in | Station layout for demand | Service priorities, comps, cut-offs, restocking |
| Feel | Arcade, real time, hands | Puzzle, untimed | Real-time management |
| Session | 45–90 s a shift, 3 shifts | 1–3 min a level, 6 levels | 75–120 s a night, 3 nights |
| Money line | Over-pour, giveaway, unrung, waste | Seconds saved per drink | Full Z-report: what the bar kept |
| Best for | Week-one trainees, practice reps | Pre-shift setup, leads, managers | Judgment and the profit message |
| Biggest risk | Hold-to-pour timing on slow phones | Can feel like homework | Lots of text for a busy screen |
How I checked them
- Scripted playthroughs in a real browser at phone (390 and 320 px) and desktop (1280 px) sizes, with no console errors and no sideways scrolling.
- Pour Line: a clean run and a sloppy run, covering over-pours, skipped rings, a beer pulled into a shot glass that got sent back, and idle walkouts. Keyboard-only play and tap-to-pour mode were tested separately.
- Well Plan: the solver runs in under 0.25 s on the largest level. I also tested tap and drag placement, the handle-doesn't-fit rule, and dark mode.
- Last Call: a bot played all three nights twice, making good calls and bad ones. That's how I tuned the pacing: the first version was so hard that a perfect bot served 5 of 11 guests. A code review then found and fixed a guest who could come back after walking out, and an event that could cancel a drink in progress.
Where to go next
- Pick a direction, or the combination, and play each on your phone for five minutes. The thing to judge is whether a new hire would want to run it again.
- Put two or three real bartenders in front of whichever you pick. Every constant is expected to move after the first playtest, as the spec says.
- Connect one real venue's numbers (POS export and invoice costs). The money lines then become that bar's own.