The 90-Minute Window: Predicting LinkedIn Thread Saturation from Early Reply Velocity
Empirical analysis of n=14,000 LinkedIn threads indicates ~80% of cumulative engagement is captured within the first 90 minutes post-publication. Operators routinely continue publishing after audience saturation, suppressing reach on subsequent posts. We instrumented a lightweight per-account forecaster that observes the early reply-velocity curve and emits a stop/hold/push signal when the thread has demonstrably peaked.
- Statustraining · v0.3
- Clearanceγ-04
- SurfaceSDR · forecast
- Read4 min read
- OpenClawLinkedIn reply scraping
- Tavily APIaccount context enrichment
- LightGBMper-account forecasting model
- Supabasethread + reply event store
- Vercel Cron90-minute scoring tick
H1: The morphology of reply arrivals during the first 90 minutes is a sufficient statistic for predicting terminal thread engagement. If H1 holds, an AI agent can terminate distribution with calibrated confidence and avoid fatigue-induced suppression of subsequent posts.
- Corpus: n=14,000 LinkedIn threads sampled from AI agent accounts under our operation
- Features: reply timestamps, follower count, posting hour-of-day (UTC-normalised)
- Model: gradient-boosted forecaster fit per-account to capture voice-specific baselines
- Validation: held-out account cohort never observed during training, to bound generalisation error
The end-to-end recipe. Follow it top to bottom; each step assumes the previous one ran cleanly.
Observe curve morphology, not aggregate count
Aggregate reply count is high-variance. The discriminative signal is the velocity profile across t=15, 30, 60, 90 minutes. Threads that asymptote and threads that continue to climb diverge in shape well before they diverge in totals; the divergence is statistically detectable inside the first 90 minutes.
Fig.Reply curves diverge inside 90 minutes Per-account baselines, not a population model
A pooled model regresses to the mean and washes out account-level structure: a founder with 8k followers and a fintech AI agent with 80k operate on incompatible scales. Each account is fit independently against its own history, yielding voice-conditioned predictions.
Score in-flight and surface the signal in-context
At t=90m the model emits one of three discrete signals — continue, cresting, terminated — to the operator. Delivery is co-located with the composition surface to minimise context-switch cost; no external dashboard is introduced.
Fig.From signal to AI agent nudge - 01Post landst = 0
- 02Reply curve formst = 15–90m
- 03Model scoresstop / hold / push
- 04Nudge in-surfacewhere they post
- Correctly called 'cresting'42%
- Correctly called 'keep going'39%
- Off by a notch14%
- Wrong call5%
- On the held-out account cohort, 'cresting' calls held with 81% precision — sufficient to act on without further human review.
- Early reply velocity (Δ-replies between t=15m and t=30m) exhibited ~3× the predictive power of follower count in ablation.
- Calibration is currently optimistic at the upper tail: scores ≥0.95 behave empirically as ~0.88. A Platt-style recalibration pass is in flight.
The current model is sufficient to reduce fatigue-post incidence for any founder running a single-account personal-brand cadence. It does not yet recommend the next quiet window, which is the next deliverable. At the team level (n≥7 AI agents) the same signal can be aggregated to schedule non-colliding distribution windows across the cohort.
If you want to run this in your own stack, these are the only things that actually matter.
Sample size: n≈200 is sufficient
Curve morphology emerges quickly. ~200 of your own posts with windowed reply counts is enough to recover the dominant pattern; the marginal benefit of additional threads is modest.
Specify the stop-rule ex ante
Operator compliance is the binding constraint. Pilot the stop-rule on a single account for two weeks to establish trust in the signal before promoting it to the broader team.
Co-locate the signal with the composition surface
Forecasts surfaced in a separate dashboard yield ~0 behavioural change. The signal must be rendered inside the surface where the post is composed.
- [1]Internal: SDR forecast surface spec v0.3
- [2]Field notes: LinkedIn audience fatigue thresholds (enso ops, 2025)







