Separated windows and held-out clients

Signals

Pre-outcome measures include trailing average position, 90-day position volatility, a linear position slope, impressions, clicks, CTR, and CTR relative to the median for five position buckets. Content length, content type, stated intent, competition measures, and client tenure enter as controls.

Median click-through rate by average organic position bucket
Figure 1. Median content-level CTR by trailing average-position bucket. Zero medians in the lower buckets reflect sparse clicks in the sample. Figure data

Outcome and baseline

The outcome is following-28-day average position minus trailing-28-day average position. Positive values indicate numerical position deterioration. The baseline is a linear model using trailing position, position volatility, and position trend. Ridge adds the full control set; a random forest supplies a nonlinear comparison.

Validation and leakage checks

A deterministic client-group split assigns 39 clients to training and nine to evaluation. A row-random split would place content from the same client on both sides, allowing client-specific measurement patterns to cross the boundary. All modeled performance features end before the outcome begins. The fixed query snapshot ends on 30 June and overlaps the primary outcome, so query entropy and momentum are retained only for descriptive analysis. The same split rule is applied at the earlier cutoff. Random seeds are fixed at 42 for sampling and model fitting. Model and leakage record