{
 "$schema": "https://peakscale.io/schemas/sop-pack/v1.json",
 "pack": {
  "id": "peakscale-coffee-shop",
  "name": "Coffee Shop & Cafe Checklists",
  "subtitle": "Goods-In · Opening · Espresso Bar · Brewed Coffee · Pastry Display · Closing · Weekly Checks",
  "purpose": "Daily and weekly checklists for running a safe, consistent coffee bar.",
  "version": "1.0.0",
  "updated": "2026-08-08",
  "publisher": {
   "name": "PeakScale Ops",
   "provenance": "Made by the team that runs operations software for 2,000+ stores. This pack has a version number, and we update it when patterns and rules change.",
   "url": "https://peakscaleops.com"
  },
  "settings": {
   "note": "Set your own numbers. These defaults are just starting points.",
   "min_days_to_expiry_on_delivery": 3,
   "chilled_range_c": {
    "min": 0,
    "max": 5
   },
   "do_not_sell_above_c": 8,
   "temp_checks_per_day": 3,
   "weekly_waste_pct_target": 4.0
  },
  "rules": [
   {
    "n": 1,
    "rule": "Dial in before you serve",
    "detail": "Reset the grinder and pull a test shot before the first customer. The grinder drifts overnight, so set the dose each morning."
   },
   {
    "n": 2,
    "rule": "Clean the steam wand every time",
    "detail": "Purge and wipe the wand before and after every jug of milk. Dried milk breeds bacteria and blocks the steam holes."
   },
   {
    "n": 3,
    "rule": "Cold milk, clean jugs",
    "detail": "Keep milk cold (cold holding) until you need it, and wash jugs between uses. Warm milk spoils fast and steams poorly."
   },
   {
    "n": 4,
    "rule": "Backflush every close",
    "detail": "Clear the coffee oils out of the machine at the end of every day. Skipped cleaning shows up in the next day's cup."
   },
   {
    "n": 5,
    "rule": "Oldest beans first",
    "detail": "Check roast dates and use the oldest bags first (FIFO). Stale beans taste flat."
   }
  ],
  "checklists": [
   {
    "id": "goods-in",
    "title": "Check Deliveries In",
    "tagline": "Accept good stock and store it to rotate.",
    "sections": [
     {
      "title": "Check the delivery",
      "items": [
       {
        "id": "goods-in-1-1",
        "action": "Check the temperature of milk and dairy alternatives when they arrive (cold holding, at or below 5°C / 41°F).",
        "why": "Cold holding keeps milk safe until staff use it.",
        "prior_refs": []
       },
       {
        "id": "goods-in-1-2",
        "action": "Check the roast date on every bag of beans.",
        "why": "Fresh beans give better flavor.",
        "prior_refs": []
       },
       {
        "id": "goods-in-1-3",
        "action": "Check the use-by date on every bottle of syrup.",
        "why": "An expired syrup can taste off and spoil a drink.",
        "prior_refs": []
       },
       {
        "id": "goods-in-1-4",
        "action": "Reject any delivery with damaged or leaking packaging.",
        "why": "Damaged packaging can mean the product inside is unsafe.",
        "prior_refs": []
       }
      ]
     },
     {
      "title": "Rotate stock so the oldest goes first (FIFO)",
      "items": [
       {
        "id": "goods-in-2-1",
        "action": "Put new milk and dairy alternatives behind older stock, so the oldest sells first.",
        "why": "FIFO stops stock from going out of date before staff use it.",
        "prior_refs": []
       },
       {
        "id": "goods-in-2-2",
        "action": "Write the delivery date on every new bag of beans.",
        "why": "A clear date lets staff use the oldest beans first.",
        "prior_refs": []
       },
       {
        "id": "goods-in-2-3",
        "action": "Move opened syrup bottles to the front of the shelf.",
        "why": "Staff should use an open bottle before they open a new one.",
        "prior_refs": []
       }
      ]
     }
    ]
   },
   {
    "id": "opening",
    "title": "Open the Bar",
    "tagline": "Warm up the machine and set up for a safe shift.",
    "sections": [
     {
      "title": "Get the espresso machine ready",
      "items": [
       {
        "id": "opening-1-1",
        "action": "Turn on the espresso machine and let it warm up to temperature.",
        "why": "A cold machine pulls a weak, uneven shot.",
        "prior_refs": []
       },
       {
        "id": "opening-1-2",
        "action": "Check the water filter is not due for a change.",
        "why": "A worn filter changes the water taste and can damage the machine.",
        "prior_refs": []
       },
       {
        "id": "opening-1-3",
        "action": "Dial in the grinder and set the dose (the amount of ground coffee) for the day.",
        "why": "The grinder drifts overnight, so it needs resetting each morning.",
        "prior_refs": []
       },
       {
        "id": "opening-1-4",
        "action": "Pull a test shot and taste it before you serve any customer.",
        "why": "Tasting confirms the shot is balanced before you sell it.",
        "prior_refs": []
       }
      ]
     },
     {
      "title": "Set up for a safe shift",
      "items": [
       {
        "id": "opening-2-1",
        "action": "Stock the handwash station with soap, hot water, and paper towels.",
        "why": "Staff need a working handwash station to keep drinks safe.",
        "prior_refs": []
       },
       {
        "id": "opening-2-2",
        "action": "Check that staff wash their hands before they start work.",
        "why": "Handwashing at the start of a shift stops germs moving onto food and drink.",
        "prior_refs": []
       },
       {
        "id": "opening-2-3",
        "action": "Mix fresh sanitizer for wipe cloths and check it is at the right strength (ppm).",
        "why": "Weak sanitizer will not kill germs, and strong sanitizer can be unsafe on cloths.",
        "prior_refs": []
       },
       {
        "id": "opening-2-4",
        "action": "Ask every staff member about illness before their shift starts.",
        "why": "A sick staff member can pass illness to customers through food and drink.",
        "prior_refs": []
       }
      ]
     }
    ]
   },
   {
    "id": "espresso-bar",
    "title": "Run the Espresso Bar",
    "tagline": "Keep every shot and every jug of milk to standard.",
    "sections": [
     {
      "title": "Pull a consistent shot",
      "items": [
       {
        "id": "espresso-bar-1-1",
        "action": "Dose and tamp (press down the ground coffee) every shot to the set amount.",
        "why": "A consistent dose and tamp keep the shot the same every time.",
        "prior_refs": []
       },
       {
        "id": "espresso-bar-1-2",
        "action": "Time every shot to the set window.",
        "why": "Shot time affects whether the espresso tastes balanced or bitter.",
        "prior_refs": []
       },
       {
        "id": "espresso-bar-1-3",
        "action": "Check shot quality through the whole shift, not only when you open.",
        "why": "Grind and dose can drift as the day goes on.",
        "prior_refs": []
       }
      ]
     },
     {
      "title": "Handle milk and the steam wand",
      "items": [
       {
        "id": "espresso-bar-2-1",
        "action": "Purge (run water through the tip) and wipe the steam wand before you steam milk.",
        "why": "Purging clears old milk from the tip before it touches fresh milk.",
        "prior_refs": []
       },
       {
        "id": "espresso-bar-2-2",
        "action": "Purge and wipe the steam wand again right after you steam milk.",
        "why": "Dried milk on the wand grows bacteria and blocks the steam holes.",
        "prior_refs": []
       },
       {
        "id": "espresso-bar-2-3",
        "action": "Keep milk cold in the fridge until you need it.",
        "why": "Warm milk spoils fast and does not steam well.",
        "prior_refs": []
       },
       {
        "id": "espresso-bar-2-4",
        "action": "Wash milk jugs between uses.",
        "why": "A dirty jug can taint the next drink.",
        "prior_refs": []
       }
      ]
     }
    ]
   },
   {
    "id": "brewed-filter-coffee",
    "title": "Brew Filter Coffee",
    "tagline": "Brew to the right ratio and keep the equipment clean.",
    "sections": [
     {
      "title": "Brew to standard",
      "items": [
       {
        "id": "brewed-filter-coffee-1-1",
        "action": "Use the set brew ratio (the amount of coffee to water) for every batch.",
        "why": "The right ratio stops the coffee tasting weak or bitter.",
        "prior_refs": []
       },
       {
        "id": "brewed-filter-coffee-1-2",
        "action": "Note the time you brew each batch.",
        "why": "You need the brew time to know when to dump it.",
        "prior_refs": []
       },
       {
        "id": "brewed-filter-coffee-1-3",
        "action": "Dump brewed coffee once it passes its holding time.",
        "why": "Coffee held too long turns bitter and stale.",
        "prior_refs": []
       }
      ]
     },
     {
      "title": "Clean the brew equipment",
      "items": [
       {
        "id": "brewed-filter-coffee-2-1",
        "action": "Rinse the brewer basket between batches.",
        "why": "Old grounds left in the basket taint the next brew.",
        "prior_refs": []
       },
       {
        "id": "brewed-filter-coffee-2-2",
        "action": "Clean the batch brewer and urn.",
        "why": "Leftover coffee oils build up and turn rancid.",
        "prior_refs": []
       }
      ]
     }
    ]
   },
   {
    "id": "pastry-food-display",
    "title": "Check the Pastry and Food Display",
    "tagline": "For shops that serve food: label, flag allergens, and keep items cold.",
    "sections": [
     {
      "title": "Check the display",
      "items": [
       {
        "id": "pastry-food-display-1-1",
        "action": "Date-label every item you put in the display.",
        "why": "A date label lets staff and customers know what is still safe.",
        "prior_refs": []
       },
       {
        "id": "pastry-food-display-1-2",
        "action": "Check allergen information is correct and visible for every item.",
        "why": "Wrong allergen information can cause a serious reaction in a customer.",
        "prior_refs": []
       },
       {
        "id": "pastry-food-display-1-3",
        "action": "Check the display case keeps chilled items cold (cold holding).",
        "why": "Cold holding slows bacteria growth in food that is ready to eat.",
        "prior_refs": []
       },
       {
        "id": "pastry-food-display-1-4",
        "action": "Remove any item that is past its date from the display.",
        "why": "Out-of-date food is not safe to sell.",
        "prior_refs": []
       }
      ]
     },
     {
      "title": "Keep the display full and selling",
      "items": [
       {
        "id": "pfd-disp-1",
        "action": "Fill the display for the serving period ahead, and top it up as items sell.",
        "why": "A full case keeps items visible and gets short-dated stock sold before it must be dumped.",
        "prior_refs": []
       },
       {
        "id": "pfd-disp-2",
        "action": "Rotate cakes and pastries so the oldest sells first (FIFO).",
        "why": "FIFO stops items reaching their date before they sell.",
        "prior_refs": []
       },
       {
        "id": "pfd-disp-3",
        "action": "Move short-dated items to the front and sell them before they pass their date.",
        "why": "Selling near-date stock recovers cash instead of dumping it as waste.",
        "prior_refs": []
       }
      ]
     }
    ]
   },
   {
    "id": "closing",
    "title": "Close the Bar",
    "tagline": "Clean the machine, secure cash, and lock up.",
    "sections": [
     {
      "title": "Clean the espresso machine",
      "items": [
       {
        "id": "closing-1-1",
        "action": "Backflush the espresso machine with detergent (send cleaner back through the machine to clear oil buildup).",
        "why": "Backflushing removes coffee oils that build up inside the machine.",
        "prior_refs": []
       },
       {
        "id": "closing-1-2",
        "action": "Empty the knock box and soak the removable parts.",
        "why": "Soaking loosens dried coffee grounds that a wipe alone will not remove.",
        "prior_refs": []
       },
       {
        "id": "closing-1-3",
        "action": "Deep-clean the steam wand.",
        "why": "A daily deep clean removes milk residue the quick wipe misses.",
        "prior_refs": []
       }
      ]
     },
     {
      "title": "Finish the close",
      "items": [
       {
        "id": "closing-2-1",
        "action": "Clean the batch brewer and urn for the next day.",
        "why": "A clean brewer stops old coffee oils tainting tomorrow's first batch.",
        "prior_refs": []
       },
       {
        "id": "closing-2-2",
        "action": "Sanitize every work surface.",
        "why": "Sanitizing overnight lowers the risk of contamination before the next shift.",
        "prior_refs": []
       },
       {
        "id": "closing-2-3",
        "action": "Count the cash drawer and log any difference.",
        "why": "Counting cash catches an error or a loss early.",
        "prior_refs": []
       },
       {
        "id": "closing-2-4",
        "action": "Lock up and secure the shop.",
        "why": "Securing the shop protects stock, cash, and equipment overnight.",
        "prior_refs": []
       }
      ]
     }
    ]
   },
   {
    "id": "weekly-checks",
    "title": "Weekly Equipment and Safety Checks",
    "tagline": "Deep-clean the bar and check safety once a week, not daily.",
    "sections": [
     {
      "title": "Deep-clean the equipment",
      "items": [
       {
        "id": "weekly-checks-1-1",
        "action": "Descale the espresso machine (remove mineral buildup with a descaling solution) on the set schedule.",
        "why": "Mineral buildup clogs the machine and changes how it heats water.",
        "prior_refs": []
       },
       {
        "id": "weekly-checks-1-2",
        "action": "Check the grinder burrs (the plates that grind the beans) for wear, and clean them.",
        "why": "Worn or dirty burrs grind unevenly and make poor-tasting coffee.",
        "prior_refs": []
       },
       {
        "id": "weekly-checks-1-3",
        "action": "Deep-clean the whole bar area, including under and behind equipment.",
        "why": "A deeper clean catches spills and buildup the daily clean misses.",
        "prior_refs": []
       }
      ]
     },
     {
      "title": "Weekly safety checks",
      "items": [
       {
        "id": "weekly-checks-2-1",
        "action": "Do a full pest check of the whole shop.",
        "why": "A weekly check catches pest activity before it becomes a bigger problem.",
        "prior_refs": []
       },
       {
        "id": "weekly-checks-2-2",
        "action": "Calibrate every thermometer used in the shop.",
        "why": "An inaccurate thermometer can hide an unsafe temperature.",
        "prior_refs": []
       }
      ]
     }
    ]
   }
  ],
  "signoff": {
   "fields": [
    "Staff",
    "Shift manager review"
   ],
   "confirm": "Have you logged the waste and sell-out numbers?"
  },
  "priors": [],
  "evidence_gaps": {}
 }
}