Run an attended laundromat day to day: machine downtime tracked by unit so repairs are ordered on evidence, wash and fold orders logged from drop off to pickup with weight and special instructions, attendant shift checklists for cleaning, restrooms, and closing, change machine and payment reconciliation per shift, and commercial account pickup routes kept separate from walk in work. Use when running or managing a laundromat, setting up attendant shifts, tracking a broken washer or dryer, building a wash and fold workflow, reconciling a shift, pricing or reviewing wash and fold, or planning a commercial pickup route.
name: laundromat_operations description: "Run an attended laundromat day to day: machine downtime tracked by unit so repairs are ordered on evidence, wash and fold orders logged from drop off to pickup with weight and special instructions, attendant shift checklists for cleaning, restrooms, and closing, change machine and payment reconciliation per shift, and commercial account pickup routes kept separate from walk in work. Use when running or managing a laundromat, setting up attendant shifts, tracking a broken washer or dryer, building a wash and fold workflow, reconciling a shift, pricing or reviewing wash and fold, or planning a commercial pickup route."
Laundromat Operations
Purpose
Run one attended store as five linked systems: a unit record for every washer and dryer with its own downtime log, a wash and fold order log that follows each order from drop off to pickup, an attendant checklist that runs the same way on every shift, a per shift money reconciliation that catches a bad count the same day, and a commercial route book that never mixes account work with walk in work. Point of sale systems record sales. Owner forums trade habits. Neither one tells the attendant what to check at 2 pm, proves which machine earns its repair bill, or shows why Tuesday cash is short. This skill does.
Workflow
1. Give every machine a unit record and log downtime by unit
A machine that is down is losing turns. A machine with no record is just a complaint. One record per unit, kept where attendants can write in it during the shift.
- Record for each unit: unit number painted or tagged on the machine, type and capacity, position in the store, install date or age if known, vend price, payment types it takes, and its baseline turns per day from the last healthy four weeks.
- Log every outage on the unit record the shift it happens: date and time reported, who reported it, symptom in plain words, error code if the machine shows one, time the out of order sign went on, time the repair was called in, who was called, promised visit time, time back in service, what was replaced or adjusted, and the repair bill.
- Count downtime in open hours, not clock hours. A dryer down overnight while the store is closed costs nothing. A washer down from 9 am Saturday to 3 pm Monday costs the weekend peak.
- Never bypass a safety device to keep a unit running: no taped lid switches, no propped door locks, no jumpered coin drops. A unit that cannot run safely comes out of service and gets the sign. Note the fault on the unit record so the repair call starts with the facts.
- Order repairs on evidence, in this order: a safety fault or a leak that can damage the floor or another machine goes out the same day. A unit down through a full peak day gets a call that day. A repeat fault, the same symptom three times in 30 days on the same unit, gets a repair or replace decision at the weekly review with the unit downtime total and its repair bills for the last 12 months in front of the owner. Cosmetic faults and one slow drain with no repeat wait for the weekly batch.
- Price the outage before arguing about the repair bill:
python3 scripts/laundromat_ops.py downtime --down-open-hours 34 --open-hours-per-day 17 --baseline-tpd 5.1 --vend-price 6.00 --repair-cost 385
down_days: 2.00 open days
lost_turns: 10.2
lost_revenue: $61.20
repair_cost: $385.00
total_outage_cost: $446.20
- Read the result the honest way: on one short outage the repair bill is most of the cost, and the lost revenue is small. The number that matters is the repeat total. A unit that goes down four times a quarter is losing a full day of turns each time plus four callout bills, and that is the case for replacement, made from the log rather than from frustration.
2. Run wash and fold as an order log, drop off to pickup
Every order lives in one log from the moment the bag hits the counter until the customer signs it out. Work crosses shifts, so the log, not memory, carries the order.
- At drop off record: order number, date and time in, customer name and phone, weight on the store scale, price basis (per pound rate, minimum, any per item pieces such as comforters priced on their own line), turnaround promised (standard, or same day at the premium rate the store sets), payment taken or card held, and the special instructions word for word: detergent choice or customer supplied detergent, hang dry items, items to keep separate, stain notes, and anything the customer said not to wash.
- Weigh on a scale that satisfies your state weights and measures rules, with the weight visible to the customer, and weigh again at pickup. The two weights are the first check when a customer says something is missing. Write your state rule and your scale inspection date into the store record, because that rule is local and this skill does not set it.
- Tag the bag at intake with the order number on a band or tag that stays on through washing, and keep each order separate through the whole run: its own wash load, its own dryer, its own fold pile. Orders never share a machine with another order.
- Move the order through named stages in the log, with the attendant initials and time at each stage: received, sorted and checked (pockets emptied, instructions read, problem items flagged to the customer before washing, not after), washed, dried, folded and packaged, ready and customer notified, picked up with a signature or a pickup code. An attendant starting a stage checks the instructions line again before touching the laundry.
- Stage finished orders in a secure area customers cannot reach, sorted by order number, and hold them by the store posted hold policy. An order that misses its promised time gets a call or text before the customer arrives angry, with the new time stated plainly.
- Close the week on the calculator, with the utility share your store assigns to wash and fold stated as its own line:
python3 scripts/laundromat_ops.py wdf --pounds 1240 --price-per-lb 1.65 --labor-hours 52 --labor-rate 16 --supplies 74 --utilities 210 --other 30
revenue: $2046.00
labor_cost: $832.00
total_cost: $1146.00
profit: $900.00
cost_per_lb: $0.92
profit_per_lb: $0.73
lb_per_labor_hour: 23.8
- Read pounds per labor hour as the staffing dial. If it falls week after week, the problem is order handling or shift coverage, and a price rise will not fix it. If profit per pound falls while pounds per labor hour holds, look at the rate, the minimum, and how much free rewash and delivery work is riding on the orders.
3. Run every attendant shift on the same checklist
The checklist is the job. Three blocks: opening, rounds during the shift, and closing. The attendant initials each block, and the next shift reads the last one before starting.
Opening, first 30 minutes:
- Walk the floor before the first customer: every unit checked for leftover laundry, damage, and out of order signs that match the unit records. A sign with no log entry gets a log entry now.
- Restrooms checked, cleaned, and stocked first, before the floor fills. Toilet paper, soap, paper towels, trash out, fixtures wiped, floor mopped.
- Change machine and card kiosk checked working, with the opening float counted and written on the shift sheet.
- Wash and fold log reviewed: orders due today at the top, anything overdue flagged and the customer contacted during the opening hour.
- Cleaning and laundry supplies counted. Anything under two days of stock goes on the order list today, not when it runs out.
- Lights, signage, doors, and the parking area and front walk checked. Fire exits confirmed clear.
Rounds, on a set interval through the shift (hourly at peak, every two hours when slow):
- Lint screens pulled and cleaned, machine tops and door glass wiped, soap spills cleaned off machines and floor before they become a slip.
- Folding tables and seating wiped, carts collected and parked, trash pulled before cans overfill.
- Restrooms rechecked and restocked on every round, with the time written on the restroom sheet on the door or in the log.
- Floor swept through the round and spot mopped at spills as they happen. Wet floor gets a sign until it is dry.
- One machine room check per shift where the layout allows it: leaks, unusual noise, a dryer running hot or a load taking far longer than its posted time. Anything found goes on the unit record.
Closing, last hour:
- Last wash time enforced as posted, final rounds done, all wash and fold orders for tomorrow staged and the log left accurate for the morning shift.
- Restrooms cleaned and stocked for opening, floors swept and mopped, machines wiped down, lint screens cleaned, trash out to the dumpster.
- Money counted and the shift sheet finished (section 4), cash stored by the store procedure, doors and windows checked, alarms and lights set as posted.
Lint is a fire control job, not a tidiness preference. Fire codes require the lint trap, the dryer mechanical and heating parts, and the exhaust duct to be kept clean per the manufacturer instructions, and failure to clean is the leading factor in clothes dryer fires in the fire data. Screens are cleaned on rounds, and the exhaust duct run gets a scheduled professional cleaning on the calendar (a working guide for a busy store is two to four times a year), with the date and the company written in the store record. Confirm the interval against your local fire code, the dryer manufacturer schedule, and your insurer, and keep the cleaning receipts with the unit records.
4. Reconcile money every shift, by payment rail
Count each rail on its own line. A shift that is short in total but never split by rail cannot be fixed, because nobody can tell a change machine fault from a counting error.
- Change machine line: opening coin float, bills taken in per the machine meter or the bill stack count, coins dispensed per the meter where one exists, closing coin counted. Expected closing coin equals opening float plus the coin value of bills fed in, minus coins paid out in change and refunds.
- Card and app line: the payment system shift total, read from the system report, never retyped from memory.
- Cash wash and fold line: orders paid in cash this shift per the order log, with order numbers listed.
- Vending and refund line: soap and vending sales where the store collects them, and every refund given, with the unit number and the reason. A refund with no unit number is how a dying machine hides for a month.
- Run each counted line against its expected line:
python3 scripts/laundromat_ops.py recon --expected 612.50 --counted 604.00
expected: $612.50
counted: $604.00
variance: $-8.50
variance_pct: -1.39% of expected
- Act on size, not on feelings. A variance inside the store set tolerance (many stores use a few dollars or half a percent, and your store sets its own number in writing) gets noted and the shift closes. A variance past tolerance gets a recount on the spot, then a check of the meter readings and the refund line, and if it still stands it is written up for the owner the same night with the shift sheet, not carried into the next shift count. Two past tolerance variances on the same rail in one week is a pattern: check the machine meter against a hand count before anyone is accused of anything.
5. Keep commercial accounts in a separate route book
Commercial work (hotels, gyms, salons, clinics, restaurants, short term rental managers) runs on a schedule, walk in work runs on arrival. Mixing the two in one queue is how an account delivery gets bumped by a busy Saturday.
- One route book page or record per account: business name, contact, pickup address, agreed pickup and delivery days and time window, items and approximate weekly pounds, wash instructions that belong to the account, price basis and billing terms, who signs at pickup and delivery, and the par or minimum clean stock the account needs back each visit.
- Build each route day as its own sheet: accounts in stop order, expected pounds per stop, bags or carts staged at the account, and a line per stop for actual pounds collected, time, and the name or signature of the person who handed over and received.
- Photograph or note a failed stop at the time it fails: laundry not out, door locked, nobody to sign. The route sheet records the attempt, and the account gets a call the same day. A missed account pickup that nobody reports becomes a stock out at the account two days later.
- Process account work in its own logged batches with the account name on the batch, never folded into walk in orders and never sharing a load with another account unless the account agreement says so in writing. Weigh account work in and out per batch, because account billing and account disputes both run on those weights.
- Bill accounts on the agreed cycle from the route sheets and batch weights, not from a month end estimate. A weight that was never written down cannot be billed or defended.
- Review each account monthly: pounds trend, missed stops in either direction, rewash or complaint count, and whether the route still pays at its current stop order and frequency. An account that shrinks below the stop cost gets a schedule change conversation, not silent losses.
6. Review the week on turns, downtime, and wash and fold together
Same time every week, working from the unit records, the order log, the shift sheets, and the route book.
- Compute turns per day for the floor and by machine class. Turns per day is total cycles for the period divided by the number of machines, divided by the number of days:
python3 scripts/laundromat_ops.py turns --cycles 790 --machines 24 --days 7
turns_per_day: 4.70
cycles_per_machine_week: 32.9
python3 scripts/laundromat_ops.py turns --cycles 500 --machines 14 --days 7
turns_per_day: 5.10
python3 scripts/laundromat_ops.py turns --cycles 290 --machines 10 --days 7
turns_per_day: 4.14
- Read the classes against each other, not just the floor average. In the worked week below the large front loaders run 5.10 turns against 4.14 for the small top loaders, which is the evidence base for the next machine purchase or swap, and for where the repair money goes first.
- Total downtime open hours by unit for the week and the quarter. Any unit in the top two for downtime two reviews running gets the repair or replace decision from section 1, with its numbers printed.
- Close wash and fold with the section 2 calculator and the route book totals side by side: walk in pounds and profit per pound on one line, account pounds and billed total on another. Never blend them into one laundry number.
- Check the money: count of past tolerance reconciliation variances this week, by rail, and what each one turned out to be.
- Once a month, set the utility bill against revenue for the same period. Survey medians put utilities near a fifth of revenue for a typical store (see the reference file for the exact sourced figures). Your store trend matters more than the median: a utility share climbing three months running with flat turns is a leak, a failing dryer, or a price problem, in that order of checking.
Worked week, one attended store, open 6 am to 11 pm (17 open hours a day), 24 washers (14 large front loaders at $6.00, 10 small top loaders), 30 dryer pockets.
Floor result: 790 washer cycles, 4.70 turns per day. Large front loaders ran 500 cycles at 5.10 turns. Small top loaders ran 290 cycles at 4.14 turns.
The outage: washer W-07, a large front loader, tripped its door lock fault at 9 am Tuesday and came back Thursday at 3 pm after a lock assembly replacement. Downtime 34 open hours, two full open days. At its class baseline of 5.1 turns and a $6.00 vend, the outage cost 10.2 turns and $61.20 in lost vend, plus the $385.00 repair bill, for a total outage cost of $446.20. Decision: repair stands, it is the unit first lock fault in a year. The same entry notes that a third outage this quarter puts W-07 into the repair or replace decision with its full downtime total.
Wash and fold: 1,240 pounds across the week at $1.65 per pound, 52 attendant labor hours at $16.00, $74.00 of supplies, $210.00 of assigned utilities, and $30.00 of other cost. Revenue $2,046.00, total cost $1,146.00, profit $900.00, cost $0.92 per pound, profit $0.73 per pound, 23.8 pounds per labor hour. Decision: hold the rate, add the Saturday morning attendant hour that the order log shows as the weekly backlog point, and recheck pounds per labor hour next week.
Money: six shifts reconciled clean. Saturday closing change machine count came in at $604.00 against $612.50 expected, a variance of -$8.50, or -1.39 percent. Recount matched the first count. The meter check found the dispenser had short paid two customers who had not asked for refunds, both unit entries now logged, and the machine service call is booked. No other rail varied all week.
Commercial: three accounts ran their normal routes, 860 pounds billed from route sheet weights. One failed stop, a gym that had not put its bags out, was logged at 7:40 am, called by 9 am, and collected on the afternoon pass. Account pounds are reported here and nowhere in the walk in wash and fold numbers above.
Output Contract
- A unit record returns the machine identity, baseline turns, and a dated downtime log with symptom, repair action, open hours down, and bill for every outage.
- A repair decision returns the outage cost from the calculator, the unit repeat history, and a call of repair now, batch to the weekly visit, or repair or replace at the review, with the reason in numbers.
- A wash and fold order returns every drop off field in section 2, a stage line with initials and times through pickup, and in and out weights.
- A shift returns the completed opening, rounds, and closing checklist with initials, plus the reconciliation sheet with one expected and counted line per payment rail and the variance action taken.
- A route day returns the stop sheet with expected and actual pounds per account, failed stops with times and follow up, and batch weights ready for billing.
- A weekly review returns floor and class turns per day, downtime totals by unit with any repair or replace decision, walk in and commercial wash and fold as separate lines, and the week reconciliation variance count by rail.
Operating Rules
- Never present a survey median, a forum habit, or another store price as your store rule. Benchmarks in the reference file are comparison points. Your unit records, order log, and shift sheets are the authority.
- Never let an outage live only on an out of order sign. If it is not on the unit record with open hours down, it did not happen for repair, replacement, or warranty purposes.
- Never mix orders. One order, one load, one dryer, one fold pile, and account batches stay apart from walk in work and from each other.
- Never wash first and read instructions later. The special instructions line is read at intake, again at sorting, and again before the wash starts.
- Never carry a money variance into the next shift. Recount, check the meters and the refund line, and write up what stands, the same night.
- Never bypass a safety switch, lock, or coin mechanism to keep a machine earning. Out of service and logged beats running and unsafe, every time.
- Never skip the restroom and lint blocks because the store is busy. Busy is when both matter most, and both are on the round sheet with times.
- Keep every number in a repair, price, or staffing decision traceable to the store own logs or to a named source in the references. An estimate is allowed, labeled as an estimate. An estimate dressed up as a count is not.
No ratings yet — be the first to rate it.