[{"data":1,"prerenderedAt":244},["ShallowReactive",2],{"/en/workflows/branch-metrics-reality-audit":3},{"id":4,"slug":5,"locale":6,"translationGroupId":7,"localeSwitchApproved":8,"title":9,"description":10,"documentationMarkdown":11,"workflowJson":12,"category":224,"tags":225,"integrations":229,"difficulty":231,"author":232,"verified":33,"featured":33,"date":233,"modified":233,"icon":7,"imageSrc":7,"path":234,"alternates":235,"seo":236},"1074a74d-eb8b-4b59-b0bd-cf2ffb4a21c0","branch-metrics-reality-audit","en",null,true,"Branch Metrics Reality Audit","An interactive decision-support workflow that helps teams sanity-check branch numbers, spot dirty signals early, and choose when to trust automation vs human judgment—before confident meetings go off the rails.","## How it works\nThis workflow turns “messy but persuasive” branch signals into decision-ready judgment. It starts by answering common questions from your knowledge base (definitions, metric owners, known data caveats). If the question isn’t covered, it routes the user into a guided menu of practical checks.\n\nOperators and leaders can quickly choose the decision-shaped problem they’re facing—trusting branch numbers, spotting dirty signal, comparing branches, or deciding when automation is safe. Each path returns a crisp checklist and “what usually breaks first,” then loops back so the user can run another audit in the same conversation.\n\n## Key features\n- Knowledge-base-first answers for fast, consistent definitions and known caveats\n- Guided menu of decision-shaped audits (trust, dirty signal, attribution, comparisons)\n- Practical red flags designed to catch bad data *before* the meeting becomes a confidence theater\n- Clear guidance on when automation is reliable and when human judgment must stay in the loop\n- Optional handoff to a human analyst for high-stakes or ambiguous cases\n\n## Step-by-step\n1. **Trigger:** A user starts the workflow from an inbound message.\n2. **Knowledge base check:** The workflow attempts to answer using your knowledge base (metric definitions, data sources, branch rules, and known issues).\n3. **Menu prompt:** If routing is needed, the user sees a button menu to pick what they’re trying to decide.\n4. **User chooses a path:** The workflow routes based on the selected button:\n   1. **Which branch numbers deserve trust?** Returns a quick trust audit (ownership, freshness, denominator sanity, and “too smooth to be true” checks), then returns to the menu.\n   2. **How to spot dirty signal early** Returns early-warning signs (breaks in logging, missing segments, sudden step-changes, and suspicious consistency), then returns to the menu.\n   3. **Automation vs human judgment** Explains when automation is safe (stable inputs, bounded impact, good monitoring) vs when you need humans (policy changes, distribution shifts, incentives), then returns to the menu.\n   4. **Messy evidence → usable insight** Shows how to preserve truth while reducing noise (keep raw notes, track uncertainty, avoid over-cleaning away edge cases), then returns to the menu.\n   5. **Comparing branches & attribution** Calls out common comparison traps (mix shifts, seasonality, channel spillover, selection bias), then returns to the menu.\n   6. **Build a signal culture** Gives operating rules that reduce slide-making and increase decision-making (owners, pre-mortems, “what would change my mind”), then returns to the menu.\n   7. **Talk to an analyst** Routes the conversation to human support.\n\n## Setup requirements\n- A WhatsApp-connected Calypso messaging channel where interactive buttons are supported\n- Optional but recommended: a populated Calypso knowledge base with your metric definitions, owners, known data caveats, and branch measurement rules\n- No additional credentials are required beyond your Calypso channel configuration",{"id":13,"teamId":14,"name":9,"version":15,"workflowVersion":16,"nodes":17,"connections":185,"routingEnabled":8,"active":33},"wf_branch_metrics_reality_audit_v1","calypso-public-library","1.0.0",1,[18,34,41,53,86,96,104,110,116,122,128,134,140,145,151,157,163,169,179],{"id":19,"name":20,"type":21,"typeVersion":16,"position":22,"parameters":25,"category":32,"deletable":33,"connectable":33},"node_flow_configs","Flow settings","flow-configs",[23,24],-200,80,{"name":9,"description":26,"tags":27,"triggerType":31},"Guided checks to help teams trust the right branch numbers, spot dirty signal early, and choose when automation is safe vs when judgment is required.",[28,29,30],"signal-quality","branch-metrics","decision-making","input","policy",false,{"id":35,"name":36,"type":31,"typeVersion":16,"position":37,"parameters":40,"category":31,"deletable":33,"connectable":8},"node_input","Inbound message",[38,39],0,300,{},{"id":42,"name":43,"type":44,"typeVersion":16,"position":45,"parameters":47,"category":52,"deletable":8,"connectable":8},"node_kb_policy","Answer from knowledge base","knowledge-base-policy",[46,39],240,{"enabled":8,"fallbackToRouting":8,"sticky":33,"stickyMode":48,"activationOpener":49,"personalization":51},"default",{"enabled":8,"instruction":50},"If the user’s question is about metric definitions, data sources, ownership, or known caveats, answer from the knowledge base. Otherwise route to the audit menu.",{"useContactName":8},"response",{"id":54,"name":55,"type":56,"typeVersion":16,"position":57,"parameters":59,"category":52,"deletable":8,"connectable":8},"node_menu","Choose an audit","interactive-message",[58,39],520,{"messageType":60,"headerText":9,"bodyText":61,"footerText":62,"sectionTitle":63,"buttons":64,"ctaDisplayText":63,"ctaUrl":63},"button","Pick what you’re trying to decide. I’ll give you a quick, decision-ready check—focused on what fails first when data looks “fine.”","Tip: Run Dirty signal first.","",[65,68,71,74,77,80,83],{"id":66,"title":67},"trust_numbers","Trust numbers",{"id":69,"title":70},"dirty_signal","Dirty signal",{"id":72,"title":73},"automation_judgment","Auto vs human",{"id":75,"title":76},"messy_evidence","Messy to insight",{"id":78,"title":79},"compare_branches","Compare branches",{"id":81,"title":82},"signal_culture","Signal culture",{"id":84,"title":85},"handoff","Talk to analyst",{"id":87,"name":88,"type":89,"typeVersion":16,"position":90,"parameters":93,"category":95,"deletable":8,"connectable":8},"node_if_trust","If: Trust numbers","if",[91,92],820,120,{"buttonId":66,"operator":94},"equals","routing",{"id":97,"name":98,"type":99,"typeVersion":16,"position":100,"parameters":102,"category":52,"deletable":8,"connectable":8},"node_txt_trust","Trust audit checklist","text-message",[101,92],1100,{"text":103},"**Quick trust audit (branch numbers):**\n1) **Owner & purpose:** Who owns this metric, and what decision was it built to support?\n2) **Freshness:** When was it last updated? Any backfills or late-arriving events?\n3) **Denominator sanity:** What exactly counts in/out? Watch for “quiet” denominator changes.\n4) **Reconciliation:** Does it roughly match an independent source (even if imperfect)?\n5) **Distribution check:** Did only the average move, or did the whole shape change?\n6) **Too smooth test:** Perfectly stable numbers during operational chaos are usually a logging issue, not excellence.\n\nIf you can’t name the owner + denominator confidently, treat it as *polished noise* until proven otherwise.",{"id":105,"name":106,"type":89,"typeVersion":16,"position":107,"parameters":109,"category":95,"deletable":8,"connectable":8},"node_if_dirty","If: Dirty signal",[91,108],220,{"buttonId":69,"operator":94},{"id":111,"name":112,"type":99,"typeVersion":16,"position":113,"parameters":114,"category":52,"deletable":8,"connectable":8},"node_txt_dirty","Dirty signal red flags",[101,108],{"text":115},"**Dirty-signal early warnings (before the meeting goes off the rails):**\n- **Step-change with no story:** Sudden jump/drop with no operational change usually means tracking broke.\n- **Missing segments:** One branch/region/device suddenly “disappears” from the data.\n- **Suspicious consistency:** Every branch improves the same amount at the same time.\n- **One metric up, neighbors flat:** If conversion rises but upstream/downstream metrics don’t budge, question the measurement.\n- **Time misalignment:** Events arriving late, timezone shifts, or duplicated days.\n\nRule of thumb: if the story is *too clean*, the logging usually isn’t.",{"id":117,"name":118,"type":89,"typeVersion":16,"position":119,"parameters":121,"category":95,"deletable":8,"connectable":8},"node_if_auto","If: Automation vs judgment",[91,120],320,{"buttonId":72,"operator":94},{"id":123,"name":124,"type":99,"typeVersion":16,"position":125,"parameters":126,"category":52,"deletable":8,"connectable":8},"node_txt_auto","Automation vs judgment guidance",[101,120],{"text":127},"**When to trust automation (and when not to):**\n**Trust automation when:**\n- Inputs are **stable and well-defined** (same meaning week to week)\n- Impact is **bounded** (guardrails limit harm)\n- You have **monitoring** (alerts on drift, missing data, anomalies)\n- The decision is **reversible** or low-regret\n\n**Keep humans in the loop when:**\n- Incentives change (people learn the metric and start “helping” it)\n- Policy/pricing/process changes shift behavior\n- Distribution shifts (new customer mix, new channels, seasonal swings)\n- The cost of a wrong decision is high (brand, compliance, safety)\n\nAutomation is great at repetition. Humans are still better at *context*—and at noticing when the rules changed.",{"id":129,"name":130,"type":89,"typeVersion":16,"position":131,"parameters":133,"category":95,"deletable":8,"connectable":8},"node_if_messy","If: Messy evidence → insight",[91,132],420,{"buttonId":75,"operator":94},{"id":135,"name":136,"type":99,"typeVersion":16,"position":137,"parameters":138,"category":52,"deletable":8,"connectable":8},"node_txt_messy","Messy evidence playbook",[101,132],{"text":139},"**Turn messy evidence into usable insight (without cleaning away the truth):**\n1) **Separate facts from interpretations** in notes and summaries.\n2) **Keep the raw edges:** outliers and exceptions often explain the system.\n3) **Track uncertainty on purpose:** “Likely,” “possible,” “unknown”—and why.\n4) **Use small, testable claims:** Prefer 3 strong observations over 30 weak ones.\n5) **Log what you *didn’t* see:** missing conversations, missing branches, missing periods.\n\nCleaning should remove *noise*, not remove *reality*.",{"id":141,"name":142,"type":89,"typeVersion":16,"position":143,"parameters":144,"category":95,"deletable":8,"connectable":8},"node_if_compare","If: Compare branches",[91,58],{"buttonId":78,"operator":94},{"id":146,"name":147,"type":99,"typeVersion":16,"position":148,"parameters":149,"category":52,"deletable":8,"connectable":8},"node_txt_compare","Comparison & attribution traps",[101,58],{"text":150},"**What teams misread when comparing branches (and doing attribution):**\n- **Mix shift:** Branch A looks better because it got easier customers.\n- **Seasonality/local events:** Weather, holidays, pay cycles—quietly dominate “performance.”\n- **Channel spillover:** Marketing or call-center changes hit multiple branches unevenly.\n- **Selection bias:** The branch that logs best can look worst (because it records more problems).\n- **Regression to the mean:** Last month’s worst branch often improves even with no change.\n\nMinimum standard for comparisons: same definitions, same time windows, and a clear statement of what changed besides performance.",{"id":152,"name":153,"type":89,"typeVersion":16,"position":154,"parameters":156,"category":95,"deletable":8,"connectable":8},"node_if_culture","If: Signal culture",[91,155],620,{"buttonId":81,"operator":94},{"id":158,"name":159,"type":99,"typeVersion":16,"position":160,"parameters":161,"category":52,"deletable":8,"connectable":8},"node_txt_culture","Signal culture operating rules",[101,155],{"text":162},"**Build a signal culture that produces decisions (not slides):**\n- **Name owners:** Every key metric needs an owner who can explain changes.\n- **Write the decision first:** “We will do X if Y happens.” Then pick signals.\n- **Pre-mortem the metric:** Ask “How could this be wrong while looking right?”\n- **Create a change log:** process changes, tracking changes, incentive changes.\n- **Reward disconfirming evidence:** the person who finds the flaw saves the quarter.\n\nThe goal isn’t perfect data. It’s fewer confident mistakes.",{"id":164,"name":165,"type":89,"typeVersion":16,"position":166,"parameters":168,"category":95,"deletable":8,"connectable":8},"node_if_handoff","If: Talk to analyst",[91,167],720,{"buttonId":84,"operator":94},{"id":170,"name":171,"type":172,"typeVersion":16,"position":173,"parameters":174,"category":178,"deletable":8,"connectable":8},"node_fallback","Human support handoff","fallback",[101,167],{"handoffMessage":175,"departmentId":176,"departmentName":177},"Got it. I’m routing this to a human analyst. To speed this up, share: (1) the decision you’re trying to make, (2) the metric(s) involved, (3) the branches/time window, and (4) what looks ‘too good’ or ‘too weird.’","analytics_support","Analytics Support","terminal",{"id":180,"name":181,"type":99,"typeVersion":16,"position":182,"parameters":183,"category":52,"deletable":8,"connectable":8},"node_txt_no_match","No match helper",[101,91],{"text":184},"Please tap one of the buttons above so I can run the right audit.",[186,190,192,194,197,200,202,204,206,208,210,212,214,216,218,220,222],{"id":187,"source":35,"target":42,"sourceHandle":188,"targetHandle":189,"type":48},"conn_input_to_kb","out","in",{"id":191,"source":42,"target":54,"sourceHandle":188,"targetHandle":189,"type":48},"conn_kb_to_menu",{"id":193,"source":54,"target":87,"sourceHandle":188,"targetHandle":189,"type":48},"conn_menu_to_if_trust",{"id":195,"source":87,"target":97,"sourceHandle":196,"targetHandle":189,"type":48},"conn_if_trust_true","true",{"id":198,"source":87,"target":105,"sourceHandle":199,"targetHandle":189,"type":48},"conn_if_trust_false_to_if_dirty","false",{"id":201,"source":105,"target":111,"sourceHandle":196,"targetHandle":189,"type":48},"conn_if_dirty_true",{"id":203,"source":105,"target":117,"sourceHandle":199,"targetHandle":189,"type":48},"conn_if_dirty_false_to_if_auto",{"id":205,"source":117,"target":123,"sourceHandle":196,"targetHandle":189,"type":48},"conn_if_auto_true",{"id":207,"source":117,"target":129,"sourceHandle":199,"targetHandle":189,"type":48},"conn_if_auto_false_to_if_messy",{"id":209,"source":129,"target":135,"sourceHandle":196,"targetHandle":189,"type":48},"conn_if_messy_true",{"id":211,"source":129,"target":141,"sourceHandle":199,"targetHandle":189,"type":48},"conn_if_messy_false_to_if_compare",{"id":213,"source":141,"target":146,"sourceHandle":196,"targetHandle":189,"type":48},"conn_if_compare_true",{"id":215,"source":141,"target":152,"sourceHandle":199,"targetHandle":189,"type":48},"conn_if_compare_false_to_if_culture",{"id":217,"source":152,"target":158,"sourceHandle":196,"targetHandle":189,"type":48},"conn_if_culture_true",{"id":219,"source":152,"target":164,"sourceHandle":199,"targetHandle":189,"type":48},"conn_if_culture_false_to_if_handoff",{"id":221,"source":164,"target":170,"sourceHandle":196,"targetHandle":189,"type":48},"conn_if_handoff_true",{"id":223,"source":164,"target":180,"sourceHandle":199,"targetHandle":189,"type":48},"conn_if_handoff_false_to_no_match","automation",[28,29,30,226,227,228],"research","data-hygiene","attribution",[230],"WhatsApp","intermediate","Calypso","2026-07-13T11:03:54.004Z","/en/workflows/branch-metrics-reality-audit",{"en":234},{"title":9,"description":237,"ogDescription":238,"twitterDescription":239,"canonicalPath":234,"robots":240,"schemaType":241,"alternates":242},"Interactive workflow to validate branch numbers, detect dirty signals, and decide when to trust automation vs human judgment—before bad data misleads.","Run a quick reality audit on branch metrics: spot dirty signal, avoid comparison traps, and know when automation is safe vs when humans must decide.","A practical branch metrics reality audit: trust checks, dirty signal red flags, attribution traps, and automation vs judgment—built for real decisions.","index,follow","HowTo",[243],{"hreflang":6,"href":234},1785947666310]