{"id":"revops-term-end-dates-csv-from-start-and-months","audience":"revops","category":"sales-work","technique":"format","track":"sales","level":"intermediate","title":"Compute contract end dates and active status in CSV","free":false,"task":"Add end dates to the contracts as CSV in a single code block. Header row exactly: account,start_date,term_months,end_date,active_on_2026_11_06. Dates are ISO (YYYY-MM-DD). The end date is the day before the same calendar day after the term, so a 12-month term starting 2026-01-15 ends 2027-01-14. active is true if 2026-11-06 falls from the start date through the end date, otherwise false. Keep the input order. Outside the code block write at most one line of 12 words or fewer.","materialLabel":"Your notes (attached to your prompt automatically)","material":"CONTRACTS TO LOAD (US dates, month first)\nAlder Dental - start 1/15/2026 - 12 months\nBirch Cafe - start 3/1/2026 - 12 months\nCobalt HVAC - start 2/28/2026 - 24 months\nDune Studio - start 7/10/2026 - 6 months\nElm Clinic - start 11/1/2026 - 36 months\nFig Bakery - start 1/5/2027 - 12 months\nGale Print - start 3/10/2025 - 12 months\n\nReference: 2028 is a leap year. Today is 2026-11-06.\nThese are customer contracts for the billing system load; the list was typed by Finance from signed order forms. Terms are in whole months and every contract starts on the date shown. No contract has been renewed or amended. Keep the input order in the output.","rules":[{"type":"codeBlocks","count":1},{"type":"maxProseWords","max":12}],"mistakes":[{"title":"Off-by-one end dates","why":"The AI ends the term on the anniversary, not the day before.","fix":"Add: \"End date is the day before the same calendar day after the term.\"","checks":["r1"]},{"title":"Day-first dates","why":"The AI reads 3/1/2026 as 3 January.","fix":"Add: \"Dates are month first; output ISO YYYY-MM-DD.\"","checks":["r2"]},{"title":"Wrong active flags","why":"The AI marks future or expired contracts as active.","fix":"Add: \"active is true only if 2026-11-06 is from start through end.\"","checks":["r2"]},{"title":"Wrong header or prose","why":"The AI changes the header or explains at length.","fix":"Add: \"Exact header; one code block; at most one line of 12 words outside it.\"","checks":["r0","codeBlocks","maxProseWords"]}],"promptHints":[{"label":"Gives the header","patterns":["account,start_date","header","active_on_2026_11_06"]},{"label":"Defines end date","patterns":["day before","end date"]},{"label":"Says ISO and month first","patterns":["iso","yyyy-mm-dd","month first"]},{"label":"Defines active","patterns":["active is true","from the start","through the end"]},{"label":"One code block","patterns":["code block","csv"]}],"hint":"Give the header, the end-date rule with an example, the ISO format and the active rule.","rubricLabels":["The code block starts with the exact header account,start_date,term_months,end_date,active_on_2026_11_06 and has seven rows in input order","End dates are 2027-01-14, 2027-02-28, 2028-02-27, 2027-01-09, 2029-10-31, 2028-01-04 and 2026-03-09 in that order","start_date values are ISO and active is true for the first five contracts, false for Fig Bakery (not started) and Gale Print (ended)"]}