{"id":"lead-okr-scoring-csv-grades","audience":"managers","category":"leadership-work","track":"leadership","level":"intermediate","technique":"verification","title":"Score year-end OKRs into a CSV using the stated formula","free":false,"task":"Score each key result using this formula: score = (actual - start) / (target - start), rounded to one decimal, capped at 1.0. Output one csv code block with the header kr,score,grade and four rows. Grade is green if score is 0.7 or higher, yellow if 0.4 to 0.6, red below 0.4. Use the corrected actuals. At most 6 lines in the block and no text outside it.","materialLabel":"Year-end figures (attached to your prompt automatically)","material":"Year-end OKR data\n\nKR1 Raise customer NPS: start 30, target 50, actual 44.\nKR2 Reduce support first reply time (hours): start 12, target 4, actual 5.6. (Lower is better; the same formula works.)\nKR3 Launch 5 integrations: start 0, target 5, actual 5 launched... update: one launch was rolled back, so actual is 4.\nKR4 Grow active teams: start 200, target 300, actual 220.\n\nNote: the exec team loved KR3 anyway. Scores should reflect actual numbers only.\n\nContext from the review meeting: the support team hired two agents in March, which helped KR2. Active teams grew mostly in the first quarter and then flattened. The NPS survey is sent each December to all customers with more than 3 months of tenure. Nobody has asked for bonuses to be tied to these scores this year; this review is only to see where we stand before planning next year.","rules":[{"type":"codeBlocks","count":1},{"type":"maxCodeLines","max":6},{"type":"maxProseWords","max":5}],"mistakes":[{"title":"Wrong header","why":"The AI adds columns for actuals.","fix":"Say: \"Header exactly kr,score,grade.\"","checks":["r0"]},{"title":"Using the old actual","why":"The AI scores KR3 as 1.0.","fix":"Say: \"KR3's actual is 4 after the rollback.\"","checks":["r2"]},{"title":"Math slips","why":"The AI scores KR2 wrongly because lower is better.","fix":"Say: \"Use the formula as given; it works for KR2.\"","checks":["r1"]},{"title":"Extra text","why":"The AI explains each score.","fix":"Say: \"Only the code block.\"","checks":["codeBlocks","maxProseWords"]},{"title":"Extra lines","why":"The AI adds totals or blank lines.","fix":"Say: \"At most 6 lines inside.\"","checks":["maxCodeLines"]}],"promptHints":[{"label":"Gives header","patterns":["kr,score,grade"]},{"label":"Formula","patterns":["formula","\\(actual"]},{"label":"Thresholds","patterns":["0\\.7","0\\.4","green","red"]},{"label":"Latest data","patterns":["corrected","update","rolled back"]},{"label":"Only block","patterns":["only (the )?(code|csv)","nothing outside"]}],"hint":"Quote the formula, the grade thresholds and the corrected number, and limit the output.","rubricLabels":["The first line inside the block is exactly kr,score,grade and the four rows are in order KR1 to KR4","KR1 scores 0.7 (green), KR2 scores 0.8 (green), KR3 scores 0.8 (green) and KR4 scores 0.2 (red)","KR3 uses the corrected actual of 4, and nothing appears outside the code block"]}