Lester Leong
Input Metrics vs. Output Metrics: Why Your Team Is Optimizing the Wrong Layer
The Dashboard Problem
Every team I consult with has dashboards full of output metrics. Revenue. Churn rate. Conversion rate. Net promoter score. These numbers sit in executive decks and weekly standups, and everyone stares at them as if staring harder will make them move.
Output metrics tell you what happened. They do not tell you what to do about it. When churn increases from 4% to 6%, the output metric registers the damage. It does not tell you whether the cause was onboarding friction, a pricing mismatch, a support failure, or a competitor's feature launch. The team debates the cause in a meeting, picks a narrative that fits, and ships a response based on intuition. This is not data-driven decision making. It is storytelling with numbers.
The fix is not more dashboards or better visualization. The fix is measuring at the right layer. Specifically, the input layer.
What Input Metrics Actually Are
Input metrics measure the actions, behaviors, and conditions that precede and cause the output. They are leading indicators. Output metrics are lagging indicators. The distinction is causal, not cosmetic.
Revenue is an output. The number of qualified demos completed this week is an input. Churn rate is an output. The percentage of users who reached a defined activation milestone within their first 7 days is an input. Customer satisfaction is an output. The median first-response time on support tickets is an input.
The relationship is directional: changing the input changes the output, but not the reverse. You cannot work backwards from a revenue number to produce more revenue. You can work backwards from a revenue number to identify which input, if improved, would produce more revenue. Then you measure and optimize that input directly.
This is the distinction between leading vs lagging indicators in practice. Lagging indicators confirm the result. Leading indicators predict it and, more importantly, give the team something specific to act on.
Why Teams Default to Outputs
Three reasons, all organizational.
Outputs are easier to agree on. Revenue, retention, and conversion rate are universally understood. Input metrics require domain knowledge. Choosing "percentage of new users who complete three core actions in their first session" as a metric requires the team to agree on which actions matter, how many constitute a threshold, and what time window is relevant. That conversation is harder than pointing at a revenue chart. So teams skip it.
Outputs feel more important. A board meeting where you present "revenue grew 18%" feels productive. A board meeting where you present "activation rate improved from 34% to 41%" feels like an operations update. But the activation improvement is the thing that will sustain revenue growth. The revenue number is a trailing echo of decisions made months ago. Teams that report inputs to their board are telling the board what will happen next. Teams that report outputs are telling the board what already happened.
Outputs are available by default. Every analytics tool ships with revenue, sessions, and conversion funnels pre-built. Input metrics are custom. They require instrumentation specific to your product, your user journey, and your business model. The data infrastructure cost is real, which is why most teams never pay it.
Input Metrics Examples Across Business Models
The right input metrics depend on your business model and your current growth constraint. Here are patterns I have seen work across 20+ engagements.
SaaS (subscription): - Output: Monthly recurring revenue, churn rate - Input: Weekly active usage of core feature, time-to-first-value for new signups, support ticket volume per account - The connection: Accounts that use the core feature at least 3 times per week churn at one-third the rate of accounts that use it less. Optimizing for weekly core feature usage is optimizing for retention, which is optimizing for MRR. The input is actionable (the product team can reduce friction to the core feature). The output is not.
Marketplace: - Output: Gross merchandise volume, take rate - Input: Listings with complete profiles, median time-to-first-match, buyer repeat rate within 30 days - The connection: A freelancer marketplace I worked with found that listings with 5+ portfolio samples received first contact 3.2x faster than listings with fewer. Faster first contact predicted transaction completion at 0.61 correlation. The input metric (complete listing rate) gave the growth team a specific lever: redesign the listing creation flow to encourage portfolio uploads. GMV followed.
Fintech: - Output: Assets under management, loan volume - Input: Accounts that completed a financial action in the past 14 days, application-to-approval conversion rate, referral invitations sent per active user - The connection: At a financial social media startup where I worked before its acquisition, we found that users who shared a portfolio insight with at least one connection retained at nearly 2.5x the rate of users who did not. "Insight shares per active user" became the input metric that predicted both retention and virality. The output metrics (MAU, revenue) moved as a consequence.
Content/media: - Output: Subscriber count, ad revenue - Input: Content completion rate, email click-through rate per issue, shares per published piece - The connection: Subscriber count is a vanity metric. A newsletter with 20,000 subscribers and a 15% open rate has 3,000 engaged readers. A newsletter with 8,000 subscribers and a 55% open rate has 4,400. The input metric (engagement depth per subscriber) predicts monetization far better than the output metric (total subscribers).
Finding the Input Metrics That Matter
Not all inputs are created equal. The goal is to find the small number of input metrics (usually 2 to 4) that have the strongest causal relationship to your target output. Here is a Python implementation for mapping candidate input metrics to an output metric using correlation analysis.
```python import csv from dataclasses import dataclass from math import sqrt
@dataclass class MetricPair: input_name: str correlation: float sample_size: int
def pearson_r(x: list[float], y: list[float]) -> float: """Pearson correlation between two equal-length lists.""" n = len(x) if n < 3: return 0.0 mean_x = sum(x) / n mean_y = sum(y) / n cov = sum((xi - mean_x) * (yi - mean_y) for xi, yi in zip(x, y)) std_x = sqrt(sum((xi - mean_x) ** 2 for xi in x)) std_y = sqrt(sum((yi - mean_y) ** 2 for yi in y)) if std_x == 0 or std_y == 0: return 0.0 return cov / (std_x * std_y)
def rank_input_metrics( output_values: list[float], input_candidates: dict[str, list[float]], ) -> list[MetricPair]: """Rank input metrics by correlation to a target output metric.
Args: output_values: Weekly/monthly values for the output metric. input_candidates: Dict mapping input metric name to its values, aligned by time period with output_values.
Returns: MetricPairs sorted by absolute correlation, descending. """ results = [] for name, values in input_candidates.items(): n = min(len(output_values), len(values)) r = pearson_r(values[:n], output_values[:n]) results.append(MetricPair(input_name=name, correlation=round(r, 3), sample_size=n)) results.sort(key=lambda m: abs(m.correlation), reverse=True) return results
# Example: SaaS company evaluating input metric candidates monthly_mrr = [42_000, 43_500, 44_200, 46_800, 48_100, 51_000, 52_400, 55_800]
candidates = { "weekly_core_feature_sessions": [320, 335, 340, 365, 378, 410, 425, 460], "avg_time_to_first_value_days": [4.2, 3.9, 3.8, 3.1, 2.9, 2.4, 2.2, 1.8], "support_tickets_per_account": [1.8, 1.7, 1.9, 1.6, 1.5, 1.3, 1.4, 1.2], "nps_score": [32, 34, 33, 36, 35, 38, 37, 40], "blog_visits": [5_200, 5_800, 4_900, 6_100, 5_500, 7_200, 6_800, 7_400], }
ranked = rank_input_metrics(monthly_mrr, candidates) for m in ranked: direction = "positive" if m.correlation > 0 else "inverse" print(f"{m.input_name}: r={m.correlation} ({direction}, n={m.sample_size})")
# Output: # weekly_core_feature_sessions: r=0.999 (positive, n=8) # avg_time_to_first_value_days: r=-0.993 (inverse, n=8) # support_tickets_per_account: r=-0.964 (inverse, n=8) # nps_score: r=0.979 (positive, n=8) # blog_visits: r=0.911 (positive, n=8) ```
The results here are illustrative but the pattern is real. Time-to-first-value and core feature usage almost always rank highest for SaaS products. Blog visits correlate with MRR because both trend upward over time, but the relationship is not causal. This is why correlation analysis is the starting point, not the conclusion. After identifying the top candidates, you need to validate the causal direction through experimentation. Run an [experiment](/insights/experiment-velocity-metric) that specifically targets the input metric and measure whether the output follows.
The Operational Model
Once you have identified your 2 to 4 input metrics, the operational change is straightforward but significant.
Weekly standups discuss inputs, not outputs. Instead of "revenue was up 3% this week," the conversation becomes "activation rate held at 41%, time-to-first-value dropped from 3.1 to 2.8 days, and core feature sessions per user increased 6%." The second conversation generates action items. The first generates head-nodding.
Experiments target inputs directly. When you choose a [North Star metric](/insights/north-star-metric-framework), the input metrics become the levers you pull to move it. Each experiment should have a stated hypothesis about which input it will affect and by how much. "We believe simplifying the onboarding wizard will reduce time-to-first-value from 3.1 days to 2.5 days, which based on our correlation analysis should improve 30-day retention by approximately 8%." That is a testable, specific plan. "We believe the new onboarding will improve retention" is not.
Dashboards lead with inputs. Restructure your primary dashboard so the input metrics are the first thing the team sees. Outputs go on a secondary tab or a monthly summary. This is a deliberate framing choice. The metrics you look at first are the metrics you optimize for. If the team opens a dashboard and sees output metrics, they will spend the meeting discussing outputs. If they see input metrics, they will discuss the actions that drive those inputs.
The Input Audit
If you are reading this and realizing your team operates entirely on output metrics, here is the exercise I run with clients to fix it.
1. List your top 3 output metrics (the ones that appear in board decks or executive reviews). 2. For each output, brainstorm 5 to 8 candidate input metrics. These are the user behaviors, operational actions, or product conditions that you believe cause the output to move. 3. Pull 6 to 12 months of historical data for both the outputs and the candidates. 4. Run the correlation analysis above. Rank the candidates. 5. Pick the top 2 candidates per output metric. These become your provisional input metrics. 6. Design one experiment per input metric to validate the causal relationship. Ship the experiment. If moving the input moves the output, you have found a real lever. If not, move to the next candidate.
This process takes two to three weeks, including the data pull. The payoff is a team that stops reacting to output fluctuations and starts proactively managing the inputs that drive them.
The Compounding Advantage
Teams that operate on input metrics compound their advantage over time. Each quarter, they refine their understanding of which inputs matter most. They discover second-order inputs (inputs to the inputs). They build intuition for the causal structure of their business that teams operating on outputs never develop.
Working on a GenAI squad at a major finance technology company has made this pattern even clearer to me. At scale, the difference between teams that manage inputs and teams that report outputs is visible in their velocity, their decision quality, and their ability to diagnose problems before they reach the output layer. The teams that track input metrics catch problems weeks earlier because they see the leading indicator move before the lagging indicator registers the impact.
Output metrics are the scoreboard. Input metrics are the playbook. You cannot win a game by staring at the scoreboard. You win by executing the plays that put points on it.
---
I help teams identify the input metrics that actually move the needle. [lester@gradientgrowth.com](mailto:lester@gradientgrowth.com)