{"id":"data2-metric-card-active-user","audience":"product-managers","category":"data","track":"data","technique":"context","level":"intermediate","title":"Turn a Slack debate into a metric definition card","free":false,"task":"Your team finally agreed on how to count an active user, and you need a definition card to paste into the data dictionary. Write exactly these 6 labeled lines: Metric, Definition, Counts, Excludes, Window, Source, in that order, in plain text and under 90 words. The Source line must also say what one row of the source table is. Use the final decision from the thread, not the first proposal.","materialLabel":"Slack thread (attached to your prompt automatically)","material":"#metrics-council - thread: \"what is an active user?\"\n\nMaya (growth), Mon: Let's call a user active if they logged in during the last 30 days. Easy to explain.\nTomás (data eng): Logins are noisy. People open the app and leave. I'd rather count real activity.\nJin (product), Mon: Agreed. Proposal: active = did at least one core action in the last 30 days. Core actions: project_created, task_completed, comment_added.\nMaya: Fine, but 30 days hides drops. Can we use 28 so every window has 4 full weeks?\nJin, Tue: Yes. Final: rolling 28 days, at least one core action. Logins alone do not count.\nTomás: We should also drop internal accounts (emails ending @tallyroom.example) and anything flagged is_bot = true, otherwise we inflate it by about 6%.\nJin: Agreed, both excluded. Source table is events.fct_user_events, one row per event.\nMaya: What do we call it? Jin: \"Weekly\" is wrong because it's monthly-ish. Call it 28-day active users (28D AU).\nNoah (sales), Wed: Can we also count invited-but-never-logged-in users? Jin: No, not for this metric.","rules":[{"type":"plainText"},{"type":"maxWords","max":90}],"mistakes":[{"title":"Using the first proposal","why":"The AI grabs Maya's 30-day login idea from the top of the thread.","fix":"Add: \"Use the final decisions only: rolling 28 days, core actions, not logins.\"","checks":["r0"]},{"title":"Skipping the core actions","why":"The AI writes a vague definition without naming the events.","fix":"Add: \"Counts: list project_created, task_completed, comment_added.\"","checks":["r1"]},{"title":"Missing exclusions and source","why":"Details buried late in the thread get dropped.","fix":"Add: \"Excludes internal @tallyroom.example emails and bots; Source: events.fct_user_events.\"","checks":["r2"]},{"title":"Leaving the format to chance","why":"The AI picks its own length and layout unless told the exact shape.","fix":"Add: \"Plain text, no bold or headings.\"","checks":["plainText"]},{"title":"Trusting the AI to count words","why":"AI is bad at counting. Ask for a total word limit and it often lands over it.","fix":"Cap each part instead, for example \"each line under 15 words.\"","checks":["maxWords"]}],"promptHints":[{"label":"Shows the labels","patterns":["metric:","definition:","excludes:","window:"]},{"label":"Asks for final decisions","patterns":["final","agreed","decision"]},{"label":"Names the window","patterns":["28","rolling"]},{"label":"Names the exclusions","patterns":["bots?","internal","is_bot"]},{"label":"Names the source table","patterns":["fct_user_events","source"]}],"hint":"A thread has early proposals and final decisions. Ask for the final ones and give the exact labels you want.","mission":"Write a metric card for active users from the thread.","musts":["Exactly 6 labeled lines","Use final decision","Plain text"],"rubricLabels":["The Metric line names the metric as 28-day active users (28D AU) and the Window line says a rolling 28 days (not 30 days and not 7)","The Definition line is one sentence under 20 words, and the Counts line lists the three core actions in alphabetical order separated by semicolons (comment_added; project_created; task_completed) and says logins alone do not count","The Excludes line names internal accounts (emails ending @tallyroom.example) and bots (is_bot = true), and the Source line names events.fct_user_events and says each row is one event"]}