{"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"beyond-anomaly-detection--striving-with-metrics","__idx":0},"children":["Beyond anomaly detection — striving with metrics"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Recently, I wrote about ",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"/blog/key-metrics-for-docs"},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Orion’s Belt"]}," — three guiding stars for measuring success: ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["Acquisition, Adoption,"]}," and ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["Deflection"]}]},". Those metrics help you navigate."," ","But navigation alone isn’t enough. You also need instruments that help you ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["strive"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Too often, we use metrics like smoke alarms: they tell us when something is wrong. A graph spikes or dips, we react, we fix, and we move on."," ","But metrics shouldn’t only exist for ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["quick error detection and resolution"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Metrics should exist to make us better — as teams, as companies, as individuals."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"when-metrics-only-measure-whats-broken","__idx":1},"children":["When metrics only measure what’s broken"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Many dashboards are built for “what’s wrong?” questions."]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Did the API error rate spike?"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Did a signup funnel break?"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Did conversion suddenly drop?"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["These are important. You can’t operate without anomaly detection."," ","But if that’s all your metrics do, you’re flying with warning lights — not a navigation system."]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Reactive metrics keep you alive."," ","Proactive metrics make you improve."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"a-personal-detour-returning-to-competitive-tennis","__idx":2},"children":["A personal detour: Returning to competitive tennis"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Two years ago, I decided to return to competitive tennis after 25 years of \"riding a desk.\""," ","My body didn't exactly appreciate the nostalgia. Within weeks, I was injured — sore shoulder, tight back, and a frustrating sense that my brain remembered how to play, but my body didn't."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["After a year working with a biomechanical ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["Functional Patterns"]}," trainer (thank you, Dennis Nel), I could finally play matches pain-free again."," ","That alone felt like a miracle. But now I was losing matches that I believed I should win."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["My instinct was the same as it had been as a teenager: ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["just play more matches."]}," ","More reps equals more improvement, right?"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Not anymore."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["My body could handle maybe two or three matches per week. Any more and I’d feel the toll — slower recovery, reduced power, fatigue."," ","Worse, progress seemed random. Some weeks I’d play brilliantly; others, I’d regress."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["I was collecting experience but not ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["learning"]}," efficiently."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"the-feedback-revolution","__idx":3},"children":["The feedback revolution"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Then I discovered ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["SwingVision"]},", an app that records your matches, automatically tracks shot stats, and cuts out dead time. You can rewatch a full match in ten to twenty minutes."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Tennis at any competitive level is a game of ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["error rate"]}," — unforced errors decide almost every outcome."," ","With SwingVision, I could measure my ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["forehand and backhand success percentages"]},", ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["ball speeds"]},", and ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["placement patterns"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Now I could ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["set goals"]},":"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Increase average forehand speed by 5 mph"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Raise my forehand-in-play percentage by 5%"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Do both without increasing unforced errors"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Once I started tracking these, my improvement was no longer random."," ","I could correlate technical changes to results."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["But the ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["real"]}," breakthrough came not from the stats, but from the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["video"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Watching myself play revealed ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["decision mistakes"]}," — tactical errors I’d never remember afterward."," ","Without the video, I might recall one or two bad decisions per match. The video exposed ten or twenty."," ","That’s ten times more information."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["It wasn’t always fun watching myself make those mistakes, but the visibility turned randomness into feedback."," ","My pace of learning accelerated dramatically. I could identify ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["why"]}," I was losing points and deliberately work on those patterns."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"anomaly-detection-vs-performance-metrics","__idx":4},"children":["Anomaly detection vs. Performance metrics"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["What SwingVision did for my tennis is what good metrics can do for a product, a campaign, or an engineering system: they turn random progress into deliberate improvement."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Metrics shouldn’t just yell when something’s broken."," ","They should ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["teach you"]}," where and how to improve."]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Tennis example"},"children":["Tennis example"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Business equivalent"},"children":["Business equivalent"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Forehand error rate spikes"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Conversion rate drops"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Shoulder strain flares up"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Latency alert triggers"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Average rally length decreases"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Session duration declines"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["All of these are anomaly detections — ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["reactive"]}," signals."," ","They tell you to stop, fix, or recover."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["But here’s what makes you better:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Tennis example"},"children":["Tennis example"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Business equivalent"},"children":["Business equivalent"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Increase average rally length by 20%"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Increase time-to-value for new users"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Maintain serve speed while reducing errors"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Improve API latency without losing reliability"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Win more points by decision quality"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Improve campaign ROI by targeting better audiences"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["These are ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["goal metrics"]}," — metrics you pursue deliberately."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"two-kinds-of-metrics","__idx":5},"children":["Two kinds of metrics"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"reactive-keep-the-lights-on","__idx":6},"children":["Reactive (keep the lights on)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Reactive metrics are essential for monitoring stability and catching regressions early."," ","They should:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Detect anomalies fast"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Trigger alerts automatically"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Be easy to interpret under stress"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Examples:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["API error rate"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Conversion anomalies"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Traffic drops"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Payment failures"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Downtime minutes"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["They’re your smoke detectors and tripwires."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"proactive-help-you-strive","__idx":7},"children":["Proactive (help you strive)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Proactive metrics aim for ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["improvement"]},", not survival."," ","They’re tied to goals, experiments, or campaigns."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Examples:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Increase documentation engagement"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Reduce time-to-integration for new developers"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Increase activation rate of trials within seven days"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Improve adoption of a feature across existing customers"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["These metrics require intention."," ","You can’t automate ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["striving"]},"."," ","You define what ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["better"]}," means and work toward it."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"metrics-and-meaning","__idx":8},"children":["Metrics and meaning"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A metric without a purpose is noise."," ","To be useful, every metric needs context — ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["what goal is it serving?"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["At Redocly, we often talk about ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["orbits"]},": Acquisition, Adoption, and Deflection."," ","Those are outcome metrics."," ","But orbiting them are smaller measurable inputs — like satellites."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For instance:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Acquisition:"]}," site impressions, trial signups, referral sources, search ranking"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Adoption:"]}," successful integrations, API calls, doc interactions, feature usage"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Deflection:"]}," reduced support tickets, improved self-serve rate, feedback scores"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Each can have ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["reactive"]}," and ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["proactive"]}," dimensions."]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Metric"},"children":["Metric"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Reactive use"},"children":["Reactive use"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Proactive use"},"children":["Proactive use"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["API uptime"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Alert if < 99.9%"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Aim for 99.99% across all regions"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Docs page views"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Detect traffic loss"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Improve funnel from page → trial"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Feature usage"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Catch broken rollouts"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Drive adoption of core features"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The distinction isn’t the data — it’s the ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["intent"]}," behind using it."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"what-gets-measured-improves-but-only-if-you-watch-the-replay","__idx":9},"children":["What gets measured, improves (but only if you watch the replay)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["There’s an old business adage: ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["what gets measured, improves."]}," ","That’s not entirely true."]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["What gets measured ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["and reviewed regularly"]}," improves."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["I was measuring my tennis for years — points won, games won —"," ","but until I started ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["reviewing the video"]},", my improvement was inconsistent."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In business, dashboards often accumulate metrics without reflection."," ","Teams glance at charts in a weekly meeting, nod, and move on."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Improvement comes when metrics feed back into ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["decisions"]},":"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["What will we do differently based on this data?"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["How will we know it worked?"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["When will we review again?"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["That loop — measure → reflect → adjust → remeasure — is the engine of progress."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"campaigns-the-perfect-metric-playground","__idx":10},"children":["Campaigns: the perfect metric playground"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Campaigns are experiments."," ","You’re testing hypotheses:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["If we run this campaign, will we acquire more users?"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Will they activate faster?"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Will they adopt a feature more deeply?"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Each campaign has two metric layers:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Exposure metrics"]}," — how many people saw or interacted"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Impressions"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Clicks"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Page views"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Video completions"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Reach"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Goal metrics"]}," — how many achieved the intended outcome"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Trials started"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Features adopted"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Integrations completed"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Docs feedback submitted"]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Knowing only one layer is like knowing your shot count but not your accuracy — you're missing half the story."," ","Knowing both gives you ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["conversion ratios"]}," — the real performance signal."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"setting-expectations-before-measurement","__idx":11},"children":["Setting expectations before measurement"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Before running a campaign, define the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["target metric"]}," and ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["expected outcome"]},"."]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Goal: Increase trials started from our docs site."," ","Metric: Conversion rate from \"view docs\" → \"start trial.\""," ","Baseline: 1.8%."," ","Target: 3.0% within 30 days."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Once defined, every decision — content, design, placement — supports that goal."," ","After the campaign, compare actual to target, learn, and iterate."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If you miss the target but learn something actionable, that’s success too."," ","Progress often looks like a string of useful failures leading to insight."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"choosing-better-metrics","__idx":12},"children":["Choosing better metrics"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Good metrics have three qualities:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Controllable"]}," – You can influence them through your actions."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Comparable"]}," – You can measure change over time."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Comprehensible"]}," – Everyone can understand what they mean."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When metrics are clear, teams stay aligned."," ","You can say \"we're aiming to increase activation by 10%\" and everyone knows what success looks like."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"example-applying-this-at-redocly","__idx":13},"children":["Example: Applying this at Redocly"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Suppose we’re running a campaign around ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["AI Search"]}," — our intelligent search across developer documentation."]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Stage"},"children":["Stage"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Metric"},"children":["Metric"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Goal type"},"children":["Goal type"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Purpose"},"children":["Purpose"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Acquisition"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Visitors to AI Search landing page"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Reactive"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Detect if campaign traffic drops"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Adoption"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Activated AI Search feature within 7 days"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Proactive"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Increase activation rate"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Deflection"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Reduction in support tickets about “can’t find docs”"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Proactive"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Measure success outcome"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If we only watched traffic, we’d miss the full picture."," ","Pairing reactive and proactive metrics lets us see both health ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["and"]}," progress."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"the-psychology-of-striving","__idx":14},"children":["The psychology of striving"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Reactive metrics motivate fear: ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["avoid failure, prevent downtime, stay safe."]}," ","Proactive metrics motivate ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["growth"]},"."," ","They create purpose and momentum."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["People are naturally better at striving than maintaining."," ","When you give a team a clear goal — like increasing integration success by 15% — you invite creativity."," ","The focus shifts from \"don't break it\" to \"how can we make it better?\""]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["That shift changes company culture."," ","Instead of waiting for anomalies, teams look for opportunities."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"what-tennis-taught-me-about-metrics","__idx":15},"children":["What tennis taught me about metrics"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Returning to tennis taught me a few truths that apply to metrics:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["You can’t play unlimited matches."]}," ","You can’t just throw more campaigns or features at a problem."," ","You need feedback to make the limited attempts count."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Progress isn’t linear."]}," ","Metrics fluctuate even as you improve. Focus on trends, not single points."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Decision errors cost more than technical errors."]}," ","A bad shot is fine; a bad decision sets up the opponent."," ","Focusing on the wrong metric can have the same effect."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Feedback shortens the learning curve."]}," ","Video review made my improvement predictable."," ","Structured reviews of campaign metrics do the same."]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"from-anomalies-to-aspirations","__idx":16},"children":["From anomalies to aspirations"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Metrics evolve through three stages:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Monitoring:"]}," track data to catch issues"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Managing:"]}," react quickly to anomalies"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Mastering:"]}," use data to ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["strive"]}," toward goals"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Most teams stop at stage two."," ","Mastery means using metrics not just to protect what you’ve built, but to ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["grow"]}," it."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When I started tracking my tennis performance, I stopped feeling like progress was random."," ","It wasn't about fixing what went wrong — it was about understanding what could go ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["better"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["That’s what great metrics do."," ","They make your work visible, measurable, and improvable."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"a-closing-thought","__idx":17},"children":["A closing thought"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If you only use metrics to detect anomalies, you’ll spend your time firefighting."," ","If you use metrics to set goals, you’ll spend your time improving."]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Alarms tell you when something breaks."," ","Goals tell you where to go."]}]}]},"frontmatter":{"template":"../@theme/templates/BlogPost","title":"Beyond anomaly detection — striving with metrics","description":"Metrics shouldn't only exist for quick error detection. They should exist to help you strive — to set goals, accelerate learning, and achieve meaningful improvement.","seo":{"title":"Beyond anomaly detection — striving with metrics","description":"Metrics shouldn't only exist for quick error detection. They should exist to help you strive — to set goals, accelerate learning, and achieve meaningful improvement.","image":"/content-assets/beyond-anomaly-detection-aba14a7e3b80870b.png"},"author":"adam-altman","publishedDate":"2025-11-11","categories":["api-monitoring:performance-metrics"],"image":"beyond-anomaly-detection.png"},"tagList":[],"title":"Beyond anomaly detection — striving with metrics","lastModified":"2025-11-24T15:40:38.000Z"}