{"id":"cs-account-risk-enum-json","audience":"revops","category":"support-work","technique":"format","track":"support","level":"advanced","title":"Turn account notes into strict JSON with a risk rule","free":false,"task":"Return one code block with a JSON array of 4 objects with exactly the keys account, usage_down_pct, sponsor_left and risk. usage_down_pct is the whole-number percent drop (0 if flat, null if unknown). sponsor_left is true or false; it is false when a replacement sponsor has been named. risk is \"high\" if sponsor_left is true, else \"medium\" if usage_down_pct is 20 or more, else \"low\", or \"unknown\" if usage_down_pct is null. One object per line. No more than 5 words outside the block.","materialLabel":"Your material (attached to your prompt automatically)","material":"ACCOUNT NOTES (Nov 6)\n\nAspen Grill: active users fell from 400 in Q2 to 300 in Q3. Sponsor Mia is still our contact.\nBirch Studio: 500 users in Q2, 500 in Q3. Sponsor Jon left the company in October; nobody has replaced him yet.\nCedar Foods: 200 users in Q2, 170 in Q3. Oct note: sponsor Priya left. Nov 3 update: new sponsor Hector Vale was named and has joined our weekly call.\nDelta Labs: usage export failed this month, so no user counts. Sponsor Ali is our contact.","rules":[{"type":"codeBlocks","count":1},{"type":"maxCodeLines","max":7},{"type":"maxProseWords","max":5}],"mistakes":[{"title":"Treating Cedar's sponsor as gone","why":"The AI uses the October note and ignores the replacement.","fix":"Say: \"sponsor_left is false when a replacement has been named.\"","checks":["r1"]},{"title":"Guessing Delta's usage","why":"The AI invents a number or writes 0.","fix":"Say: \"Use null when usage is unknown.\"","checks":["r1","r2"]},{"title":"Quoting numbers and booleans","why":"The AI writes \"25\" and \"true\" as strings.","fix":"Say: \"Numbers and booleans must not be in quotes.\"","checks":["r2"]},{"title":"Pretty-printing","why":"The AI spreads each object over many lines.","fix":"Say: \"One object per line.\"","checks":["maxCodeLines","r0"]},{"title":"Skipping the code block","why":"The AI writes prose around the data instead of one block.","fix":"Say \"return exactly one code block\".","checks":["codeBlocks"]},{"title":"Talking around the block","why":"The AI adds an intro and notes outside the block.","fix":"Say \"no words outside the block except ...\".","checks":["maxProseWords"]}],"promptHints":[{"label":"Names the four keys","patterns":["usage_down_pct","sponsor_left","risk"]},{"label":"States the null and replacement rules","patterns":["null","replacement"]},{"label":"Gives the risk rule","patterns":["high","medium","low","unknown"]},{"label":"Keeps it compact","patterns":["one object per line","code block"]},{"label":"Asks for one code block","patterns":["code block","json","csv"]},{"label":"Keeps the block short","patterns":["lines","one line","compact"]},{"label":"Limits text outside the block","patterns":["no (intro|notes|text|words)","only the","nothing (else|outside)"]}],"hint":"Strict data needs the exact keys, types, the rule for missing values and the order the rules apply.","mission":"Rate each account's risk from the notes.","musts":["Exactly 4 objects","Sponsor replaced means false","Null usage means unknown"],"rubricLabels":["The code block is a JSON array of 4 objects, each with exactly the keys account, usage_down_pct, sponsor_left and risk, one object per line","Aspen has 25, false, medium; Birch has 0, true, high; Cedar has 15, false, low (replacement sponsor named); Delta has null, false, unknown","Numbers and booleans are not in quotes, null is a real null, and risk is one of the four lowercase words"]}