carolyn-dail-retail-ops/protocols.html

146 lines
9.3 KiB
HTML
Raw Normal View History

2026-07-28 23:39:24 +02:00
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>POS Protocols — Carolyn Dail</title>
<style>
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@300;400;500;600&family=IBM+Plex+Serif:wght@400;600;700&display=swap');
:root { --bg: #0a0a0a; --fg: #33ff33; --fg-dim: #1a9e1a; --fg-muted: #0d5e0d; --accent: #ff6633; --border: #1a9e1a; --card-bg: #0f1a0f; }
* { margin: 0; padding: 0; box-sizing: border-box; }
body { background: var(--bg); color: var(--fg); font-family: 'IBM Plex Mono', monospace; font-size: 14px; line-height: 1.6; }
.terminal-bar { background: #0d1a0d; border-bottom: 1px solid var(--border); padding: 8px 20px; display: flex; align-items: center; gap: 8px; font-size: 12px; color: var(--fg-dim); }
.terminal-bar .dot { width: 10px; height: 10px; border-radius: 50%; } .terminal-bar .red { background: #ff5f56; } .terminal-bar .yellow { background: #ffbd2e; } .terminal-bar .green { background: #27c93f; } .terminal-bar .title { margin-left: 12px; }
.container { max-width: 900px; margin: 0 auto; padding: 20px; }
.back-link { font-size: 11px; color: var(--fg-muted); text-decoration: none; margin-bottom: 16px; display: inline-block; }
.back-link:hover { color: var(--fg); }
.hero { border: 1px solid var(--border); padding: 30px; margin-bottom: 20px; }
.hero h1 { font-family: 'IBM Plex Serif', serif; font-size: 26px; font-weight: 700; margin-bottom: 8px; }
.hero .subtitle { color: var(--fg-dim); font-size: 13px; }
.section { border: 1px solid var(--border); margin-bottom: 20px; }
.section-header { background: var(--card-bg); padding: 10px 16px; font-size: 11px; text-transform: uppercase; letter-spacing: 2px; color: var(--fg-dim); border-bottom: 1px solid var(--border); }
.section-body { padding: 20px 16px; }
.protocol { border: 1px solid var(--fg-muted); margin-bottom: 12px; }
.protocol-header { background: var(--card-bg); padding: 8px 12px; font-size: 12px; display: flex; justify-content: space-between; }
.protocol-header .proto-id { color: var(--accent); }
.protocol-body { padding: 12px; font-size: 12px; color: var(--fg); }
.protocol-body ol { padding-left: 20px; }
.protocol-body li { margin-bottom: 6px; }
.protocol-body .note { color: var(--fg-dim); font-style: italic; margin-top: 8px; }
.ops-table { width: 100%; border-collapse: collapse; font-size: 12px; margin: 12px 0; }
.ops-table th { text-align: left; background: var(--card-bg); padding: 6px 10px; border: 1px solid var(--border); color: var(--fg-dim); font-size: 10px; text-transform: uppercase; }
.ops-table td { padding: 6px 10px; border: 1px solid var(--border); color: var(--fg); }
.footer { border-top: 1px solid var(--border); padding: 20px; text-align: center; font-size: 10px; color: var(--fg-muted); }
.footer a { color: var(--fg-dim); text-decoration: none; }
.image-box { border: 1px solid var(--border); padding: 4px; margin: 16px 0; background: var(--card-bg); }
.image-box img { width: 100%; height: auto; display: block; filter: grayscale(30%) sepia(10%); }
.image-box .caption { padding: 8px; font-size: 10px; color: var(--fg-muted); }
</style>
</head>
<body>
<div class="terminal-bar">
<span class="dot red"></span><span class="dot yellow"></span><span class="dot green"></span>
<span class="title">carolyn-dail ~ protocols — Point-of-sale standard operating procedures</span>
</div>
<div class="container">
<a href="index.html" class="back-link">◄ Back to Triage Desk</a>
<div class="hero">
<h1>POS Protocols</h1>
<p class="subtitle">Standard operating procedures for the front end. These are the ones I hand to new hires on day one—because if you can't follow a protocol, you can't improvise one.</p>
</div>
<div class="section">
<div class="section-header"><span>Open Protocol — Pre-Shift</span></div>
<div class="section-body">
<div class="protocol">
<div class="protocol-header"><span>PRO-001</span><span class="proto-id">OPENING CHECKLIST</span></div>
<div class="protocol-body">
<ol>
<li>Verify cash drawer starting count (must match previous close + float). Record variance if >$0.50.</li>
<li>Test card reader with test transaction ($0.01 auth, immediate void). <em>This catches 90% of reader failures before a customer notices.</em></li>
<li>Confirm receipt paper roll is loaded and cutters are clean. A jammed cutter is a 4-minute delay per transaction.</li>
<li>Check that the floor manager has signed the price-override log from yesterday. <em>Unapproved overrides are theft, not mistakes.</em></li>
<li>Verify the emergency power indicator is green. We lost a full Saturday in 2019 because nobody checked this one Tuesday.</li>
</ol>
<p class="note">Rule: If the drawer is off by more than $0.50, do NOT open for customers. Call the floor manager. This is not negotiable.</p>
</div>
</div>
</div>
</div>
<div class="section">
<div class="section-header"><span>Transaction Protocol — During Shift</span></div>
<div class="section-body">
<div class="protocol">
<div class="protocol-header"><span>PRO-002</span><span class="proto-id">VOID / RETURN WORKFLOW</span></div>
<div class="protocol-body">
<ol>
<li>Customer requests void or return.</li>
<li>Retrieve original receipt. If no receipt, check the POS transaction log by time window (±5 min).</li>
<li>If item is unopened/with tags: process at register. Log reason code (D01D07).</li>
<li>If item is opened/damaged: require manager override. <em>Never override yourself.</em></li>
<li>For returns >$100: manager override + secondary verification (photo ID optional, not required).</li>
<li>File original receipt in the void bin (the labeled shoebox by the safe). We audit these weekly.</li>
</ol>
<p class="note">Metrics we track: void rate per cashier (target <2%), return rate by reason code. I publish these every Monday morning.</p>
</div>
</div>
<div class="protocol">
<div class="protocol-header"><span>PRO-003</span><span class="proto-id">CASH SHORT / OVER RESPONSE</span></div>
<div class="protocol-body">
<ol>
<li>Register reports "Cash Short" or "Cash Over" at end of transaction.</li>
<li><strong>Do not</strong> add or remove cash to balance. This is a data point, not a suggestion.</li>
<li>Recall the transaction details mentally: what bills were handed? Was there a change-making error?</li>
<li>Document the amount and time on the shift log (the clipboard by the break room).</li>
<li>If cumulative short/over exceeds $5.00 in one shift, notify the floor manager immediately.</li>
</ol>
<p class="note">I've seen new cashiers "fix" a $0.25 short by adding their own quarters. That is how embezzlement starts with good intentions. Document it. Let the numbers tell the story.</p>
</div>
</div>
</div>
</div>
<div class="section">
<div class="section-header"><span>Close Protocol — End of Shift</span></div>
<div class="section-body">
<div class="protocol">
<div class="protocol-header"><span>PRO-004</span><span class="proto-id">Z-READ / END OF SHIFT</span></div>
<div class="protocol-body">
<ol>
<li>Run Z-read from the POS terminal. This prints the shift summary: total sales, tender breakdown, voids, returns.</li>
<li>Count physical cash in the drawer. Compare to the Z-read cash total.</li>
<li>If variance ≤ $0.50: record as "within tolerance" on the shift log. Sign and date.</li>
<li>If variance > $0.50: recount. If still off, document with a note and flag for the floor manager.</li>
<li>Deposit cash in the safe using the drop bag protocol (two sets of eyes).</li>
<li>File the Z-read slip in the daily binder, tabbed by date.</li>
</ol>
<p class="note">The Z-read is the retail equivalent of the AGC's telemetry downlink. It's your data trail. Protect it.</p>
</div>
</div>
</div>
</div>
<div class="section">
<div class="section-header"><span>Metrics Dashboard — Weekly Targets</span></div>
<div class="section-body">
<table class="ops-table">
<thead><tr><th>Metric</th><th>Target</th><th>Current (7d avg)</th><th>Status</th></tr></thead>
<tbody>
<tr><td>Void rate</td><td>< 2.0%</td><td>1.4%</td><td style="color:var(--fg)">● ON TARGET</td></tr>
<tr><td>Avg transaction time</td><td>< 4.5 min</td><td>3.8 min</td><td style="color:var(--fg)">● ON TARGET</td></tr>
<tr><td>Cash variance</td><td>< $0.50/shift</td><td>$0.18</td><td style="color:var(--fg)">● ON TARGET</td></tr>
<tr><td>Return rate by reason</td><td>< 3.0%</td><td>2.7%</td><td style="color:var(--fg)">● ON TARGET</td></tr>
<tr><td>Card reader uptime</td><td>> 99.5%</td><td>99.8%</td><td style="color:var(--fg)">● ON TARGET</td></tr>
</tbody>
</table>
</div>
</div>
<div class="footer">
<p>carolyn-dail.4ort.net &nbsp;·&nbsp; <a href="index.html">Back to Triage Desk</a></p>
</div>
</div>
</body>
</html>