← Back to Insights
Lester Leong

Lester Leong

·9 min read

Time to Value: The Onboarding Metric That Predicts Everything

The Metric Nobody Measures Correctly

Every product team tracks signups, activation, and retention. Almost none of them track the thing that connects all three: time to value (TTV), the elapsed time between a user's first interaction and the moment they experience the product's core value.

TTV is not a vanity metric. It is a leading indicator with a direct, measurable relationship to retention. In every product I have worked on and every client engagement I have run through Gradient Growth, the same pattern holds: the faster a user reaches their first genuine value moment, the higher their probability of long-term retention. The relationship is not linear. It is exponential. Users who reach value in the first session retain at rates 2x to 5x higher than users who take multiple days.

This article covers how to define the value moment (it is not what most teams think), how to measure TTV, how to correlate it with retention, and how to reduce it. I also cover why AI products make TTV significantly harder to define, which is a problem I am living through right now.

The Value Moment Is Not Signup Completion

The most common mistake I see is defining the value moment as the end of onboarding. User created account, completed profile, connected a data source: "activated." This conflates setup completion with value delivery. They are not the same thing.

The value moment is the first time the user receives something from the product that they could not easily get elsewhere. It is the first output that justifies the effort of signing up.

At a financial social media startup I worked at before its acquisition by a major fintech company, we initially defined the value moment as "user completed profile setup." By that metric, our activation rate looked healthy. But D14 retention was weak. When we redefined the value moment as "user shared their first portfolio and received their first piece of social feedback," the correlation with retention jumped dramatically. The profile setup was a prerequisite, not the value. The social validation was.

For a B2B SaaS client I consulted (analytics tool for e-commerce), the team had defined activation as "user connected their Shopify store." Connection is plumbing. The actual value moment was "user saw their first automated insight that surfaced something they did not already know." Users who reached that insight within 2 hours of signup had 3x the 90-day retention of users who took more than 24 hours. The insight was the value. The connection was just a toll booth on the way there.

Time to value is closely related to [activation metrics](/insights/ai-startup-activation-metric). The distinction is that activation is a binary (did the user reach the value moment or not), while TTV measures how long it took. Both matter. TTV tells you more about the quality of the path.

How to Measure Time to Value

The formula is simple:

``` TTV = timestamp(value_moment) - timestamp(first_interaction) ```

The hard part is choosing the right value moment event, not the math. Once you have defined the event, the aggregation is straightforward:

``` Median TTV = median of TTV across all users who reached the value moment TTV by Cohort = median TTV grouped by signup week/month TTV Completion Rate = users who reached value moment / total signups ```

Median is better than mean here because TTV distributions are heavily right-skewed. A handful of users who take 30 days to reach value will inflate the mean and obscure the experience of the majority. Report the median, but also look at the 75th and 90th percentiles. The tail tells you how broken the worst-case onboarding path is.

The metric I track most closely with clients is the TTV-to-retention correlation: the Pearson correlation between a user's individual TTV and their retention outcome (retained at day N, yes or no). This single number tells you how predictive TTV is for your specific product. If the correlation is strong (r below -0.4, since lower TTV should correlate with higher retention), then reducing TTV is one of the highest-leverage things you can do. If it is weak, your value moment definition is probably wrong.

TTV predicts [retention curves](/insights/retention-curve-analysis-guide) better than almost any other leading indicator. It is upstream of everything.

Python: Calculating TTV and Correlating with Retention

Here is a practical implementation. This assumes you have event-level data with user IDs, event names, and timestamps.

```python import pandas as pd import numpy as np from scipy import stats

def compute_ttv(events: pd.DataFrame, first_event: str = "signup", value_event: str = "first_value_moment", user_col: str = "user_id", event_col: str = "event_name", time_col: str = "timestamp") -> pd.DataFrame: """ Calculate time to value for each user who reached the value moment. Returns a DataFrame with user_id, ttv_hours, and ttv_days. """ events = events.copy() events[time_col] = pd.to_datetime(events[time_col])

# get first occurrence of each relevant event per user first_touch = (events[events[event_col] == first_event] .groupby(user_col)[time_col].min() .rename("first_touch"))

value_touch = (events[events[event_col] == value_event] .groupby(user_col)[time_col].min() .rename("value_touch"))

ttv = pd.merge(first_touch, value_touch, on=user_col, how="inner") ttv["ttv_hours"] = ( (ttv["value_touch"] - ttv["first_touch"]).dt.total_seconds() / 3600 ) ttv["ttv_days"] = ttv["ttv_hours"] / 24

return ttv.reset_index()

def ttv_retention_correlation(ttv_df: pd.DataFrame, retention_df: pd.DataFrame, retention_col: str = "retained_d14", user_col: str = "user_id") -> dict: """ Correlate TTV with a binary retention outcome. retention_df must have user_id and a boolean retention column. Returns correlation coefficient, p-value, and cohort summary. """ merged = ttv_df.merge(retention_df[[user_col, retention_col]], on=user_col)

# point-biserial correlation (TTV continuous, retention binary) r, p = stats.pointbiserialr(merged[retention_col], merged["ttv_hours"])

# bucket TTV into ranges for a summary table bins = [0, 1, 6, 24, 72, float("inf")] labels = ["<1h", "1-6h", "6-24h", "1-3d", "3d+"] merged["ttv_bucket"] = pd.cut(merged["ttv_hours"], bins=bins, labels=labels)

summary = (merged.groupby("ttv_bucket", observed=True) .agg(users=(user_col, "count"), retained=(retention_col, "sum"), retention_rate=(retention_col, "mean")) .round(3))

return { "correlation_r": round(r, 4), "p_value": round(p, 6), "median_ttv_hours": round(merged["ttv_hours"].median(), 2), "p75_ttv_hours": round(merged["ttv_hours"].quantile(0.75), 2), "p90_ttv_hours": round(merged["ttv_hours"].quantile(0.90), 2), "bucket_summary": summary, }

# Example usage # ttv = compute_ttv(events_df, first_event="signup", # value_event="first_portfolio_share") # results = ttv_retention_correlation(ttv, retention_df) # print(results["bucket_summary"]) # # Output: # users retained retention_rate # <1h 412 289 0.701 # 1-6h 287 168 0.586 # 6-24h 194 78 0.402 # 1-3d 156 39 0.250 # 3d+ 98 11 0.112 ```

The bucket summary is the artifact that changes minds in a product review. When a PM sees that users who reach value in under an hour retain at 70% while users who take three or more days retain at 11%, the prioritization conversation is over. Reducing TTV becomes the top-of-backlog item.

The Case Study: Reducing TTV From 4.2 Days to 1.1 Days

At the financial social media startup, our initial TTV (measured as time from signup to first portfolio share) was 4.2 days. That was the median. The 90th percentile was over 14 days. Most users never reached the value moment at all; only 34% of signups ever shared a portfolio.

We ran a sequence of changes over three months:

1. Moved portfolio import earlier in onboarding. Previously, the app guided users through profile setup, social follows, and feed exploration before prompting a portfolio connection. We moved the brokerage connection to step 2, right after account creation. This alone dropped median TTV from 4.2 days to 2.8 days.

2. Added a manual portfolio option. Not everyone wanted to connect their brokerage. We added a quick-entry flow where users could type in 3 to 5 ticker symbols and approximate share counts. This increased the value moment completion rate from 34% to 51%.

3. Triggered the first social interaction. After a user shared their portfolio, we surfaced it to a curated set of active users who were likely to engage. The user received their first comment or reaction within minutes, not hours. This compressed the feedback loop and pulled forward the emotional payoff of the value moment.

The result: median TTV dropped from 4.2 days to 1.1 days. Value moment completion rate rose from 34% to 58%. D14 retention doubled, from 16% to 31%. That retention improvement was the headline metric in the acquisition data room.

Reducing TTV is one of the highest-ROI [experiments](/insights/experiment-velocity-metric) a product team can run. The onboarding work at the startup was three months of effort across two engineers and one PM. The retention impact was larger than any feature we shipped in the preceding year.

TTV by Cohort: Tracking Progress Over Time

Once you are actively working on reducing TTV, you need a tracking mechanism. The most useful view is median TTV by signup cohort, plotted weekly.

``` Median TTV by Cohort: Week of Jan 6: 3.1 days Week of Jan 13: 2.8 days Week of Jan 20: 2.4 days (portfolio import moved to step 2) Week of Jan 27: 2.1 days Week of Feb 3: 1.8 days (manual portfolio option launched) Week of Feb 10: 1.4 days Week of Feb 17: 1.1 days (social trigger deployed) ```

This view does two things. First, it shows whether your onboarding changes are actually working at the cohort level (not just in aggregate, where older cohorts with higher TTV dilute the improvement). Second, it creates accountability. When TTV ticks upward for a cohort, you investigate immediately. Something changed in the onboarding path, the user mix, or the product itself.

Why AI Products Make TTV Harder

I work on a GenAI squad at a major finance technology company, and TTV for AI features is a genuinely different problem.

In traditional SaaS, value is deterministic. The user takes an action, the product delivers a predictable result, and the user can immediately judge whether it was valuable. In AI products, value is probabilistic and subjective. Two users can give the same input, receive the same output, and disagree about whether it was useful. One user's "value moment" is another user's "that was not helpful."

This creates three measurement challenges for TTV in AI products:

The value moment is user-specific. In a traditional product, you can define a single event as the value moment for all users. In AI products, some users find value on the first query. Others need five or six iterations before the output matches their expectations. Using a single event as the proxy for value (like "first AI-generated summary viewed") overstates activation because viewing is not the same as finding value.

Perceived value degrades over time. AI products often produce a "wow" effect on first use that fades as users develop more nuanced expectations. The first AI-generated analysis might feel magical. The fifth one, which has the same quality, feels mediocre because the user's baseline has shifted. TTV measured at the point of initial "wow" does not predict long-term retention because the initial value perception is inflated.

The feedback signal is ambiguous. In the financial social media product, we could observe clear behavioral signals of value: the user shared, someone reacted, the user came back. In AI features, a user might read an AI-generated summary, find it useful, and leave. There is no observable behavior that distinguishes "read and found valuable" from "read and was unimpressed." You need explicit feedback mechanisms (thumbs up/down, save actions, share actions) layered on top of the core experience to create observable proxies for perceived value.

The approach that has worked best in our AI features is to define the value moment as a composite: the user used the feature, took a downstream action that implies the output was useful (saved it, shared it, or made a decision based on it), and returned to use the feature again within 7 days. This is a higher bar than traditional TTV, but it is a more honest one.

The Playbook for Reducing TTV

Based on consulting work across 20+ SMBs and startups, plus my own product roles, here is the pattern that consistently works:

Step 1: Instrument the value moment. You cannot reduce what you do not measure. Define the event, log it, and compute median TTV for your current user base. This is week one.

Step 2: Map the critical path. List every step between signup and the value moment. Time each step. Identify the steps that take the longest and the steps where the most users drop off. These are different problems (friction versus duration), and they require different interventions.

Step 3: Remove steps that are not prerequisites. Profile customization, tutorial walkthroughs, feature tours: if they are not strictly required for the user to reach the value moment, move them to after the value moment. Every step you remove from the pre-value path compresses TTV.

Step 4: Accelerate the remaining steps. For steps that cannot be removed, reduce the effort required. Pre-fill fields with defaults. Offer a quick-start path alongside the comprehensive path. Use progressive disclosure so users see only what they need to see at each stage.

Step 5: Engineer the payoff. The value moment is not just reaching a state. It is feeling the value. At the financial social media startup, sharing a portfolio was mechanical. Receiving a reaction was emotional. We engineered the emotional payoff by ensuring it happened quickly after the mechanical action. This is the most underrated lever in onboarding optimization.

Step 6: Measure by cohort and iterate. Ship changes, measure TTV for the new cohort, compare against the previous cohort. Repeat. This is not a one-time project. It is a continuous optimization loop.

The Bottom Line

TTV is the metric that sits between activation and retention. It tells you not just whether users found value, but how efficiently your product delivered it. A high TTV means your product is making users work too hard before rewarding them. A low TTV means the path from curiosity to value is short, and short paths produce long-term users.

Measure it. Reduce it. Track it by cohort. Correlate it with retention. If the correlation is strong (and in my experience it almost always is), then every hour you shave off TTV translates directly into retention points and, eventually, revenue.

I help teams identify their true value moment and build onboarding systems that get users there faster. [lester@gradientgrowth.com](mailto:lester@gradientgrowth.com)

Want frameworks like this for your company?

I work with 3 to 4 AI-era companies at a time, building the analytics systems that turn data into decisions. If that sounds like what you need, let’s talk.

Get Your Free Diagnosis

Keep Reading