{"id":"revops-sla-breach-csv-hours-elapsed","audience":"revops","category":"sales-work","technique":"format","track":"sales","level":"intermediate","title":"Output a CSV of response times and SLA breaches from timestamps","free":false,"task":"Produce one fenced CSV with header lead_id,hours,status and one row per lead. hours is whole hours from created to first touch; for a lead with no touch yet, hours is the time from created to now. status is ok if hours is 24 or fewer and the lead is touched, breach if hours is over 24 and touched, and open_breach if untouched and over 24 hours. Now is Nov 6 2026 18:00. At most 12 words outside the code block.","materialLabel":"Lead timestamps (attached to your prompt automatically)","material":"SLA: first touch within 24 hours of lead creation (the clock runs 24/7).\n\nlead_id | created | first_touch\nL-201 | Nov 2 09:00 | Nov 2 15:00\nL-202 | Nov 2 16:00 | Nov 3 20:00\nL-203 | Nov 3 10:00 | Nov 4 09:00\nL-204 | Nov 4 08:00 | (none)\nL-205 | Nov 5 14:00 | Nov 6 14:00\nL-206 | Nov 5 17:00 | Nov 6 18:00\n\nAll times are the same time zone, 2026. Use 24-hour times. Whole hours only; no rounding is needed.\nNote: a rep says L-205 is a breach because \"it took a whole day.\" The rule is over 24 hours.","rules":[{"type":"codeBlocks","count":1},{"type":"maxProseWords","max":12}],"mistakes":[{"title":"Wrong hour math","why":"The AI mis-subtracts across days.","fix":"Add: \"Count hours from created to first touch, across midnight.\"","checks":["r1"]},{"title":"Calling exactly 24 a breach","why":"The AI treats 'a whole day' as a breach.","fix":"Add: \"Breach only if over 24 hours.\"","checks":["r2"]},{"title":"Mishandling the untouched lead","why":"The AI leaves hours blank.","fix":"Add: \"For no touch, count to Nov 6 18:00 and mark open_breach.\"","checks":["r1","r2"]},{"title":"Extra prose","why":"The AI adds a table and explanation.","fix":"Add: \"One code block, at most 12 words outside it.\"","checks":["codeBlocks","maxProseWords","r0"]}],"promptHints":[{"label":"Names the header","patterns":["lead_id,hours,status","csv","header"]},{"label":"Defines hours","patterns":["whole hours","created to first touch"]},{"label":"Defines the statuses","patterns":["ok","breach","open_breach"]},{"label":"Handles untouched leads","patterns":["no touch","untouched","now"]},{"label":"Limits text outside","patterns":["outside","at most \\d+"]}],"hint":"Give the header, how hours are counted and each status rule, including the untouched lead.","rubricLabels":["The code block has the header lead_id,hours,status and exactly 6 data rows","Hours are L-201 6, L-202 28, L-203 23, L-204 58, L-205 24, L-206 25","Statuses are L-201 ok, L-202 breach, L-203 ok, L-204 open_breach, L-205 ok, L-206 breach"]}