Chapter 3 · Resolve and operate

Serving freshness, diversity, and experiments

A recommendation ships only when relevance, freshness, diversity, and system guardrails succeed together.

65–90 min2 key conceptsReviewed 26 Aug 2026
01 · Production proposition

Marketplace ranking learns from biased clicks and reinforces its own mistakes.

This chapter moves from declare freshness budgets to experiment with guardrails. We will make the idea concrete in a small code example before placing it back inside a production system with 80 ms ranking budget.

Decision

Pre-register the randomization unit, primary outcome, minimum duration, slice checks, stopping rule, and rollback thresholds.

Evidence

Verify the behavior illustrated in fresh_diverse_slate.py, then measure decision utility, slice reliability, and system latency.

Failure consequence

A random interaction split and click-only labels improve offline NDCG while amplifying already-prominent items. An unsafe release must degrade to a named baseline or the last known-good version.

02 · Guided chapter

Build the idea one layer at a time.

A brilliant offline ranker can still show sold-out, repetitive, or stale results. Serving quality is the behavior of the whole slate under a changing catalog, not just the model score stored in an experiment table.

Freshness has several clocks: catalog availability, feature age, item embedding age, index publication, and cached response age. A version mismatch can silently exclude new inventory or score it with incompatible features. Hard eligibility filters should happen before display, with deterministic fallbacks when dependencies are stale.

Diversity is a slate property, so it belongs in re-ranking and evaluation rather than as an item-only label. Online experiments should randomize at a stable unit, log exposures, check assignment balance, and protect latency, complaints, seller coverage, and conversion guardrails. Offline NDCG is evidence for launch—not proof of user impact.

Keep in view
  • cold start
  • diversity
WORKED PATH

Follow the reasoning before touching the code.

  1. 01

    Declare freshness budgets

    Set maximum ages for catalog, features, embeddings, and caches, then expose those ages in every served-response trace.

  2. 02

    Build a valid, varied slate

    Remove ineligible items before applying category, creator, or novelty constraints; log every rejection and fallback reason.

  3. 03

    Experiment with guardrails

    Pre-register the randomization unit, primary outcome, minimum duration, slice checks, stopping rule, and rollback thresholds.

pythonfresh_diverse_slate.py
items = [
    {'id': 'a', 'score': .95, 'creator': 'x', 'in_stock': True},
    {'id': 'b', 'score': .91, 'creator': 'x', 'in_stock': True},
    {'id': 'c', 'score': .84, 'creator': 'y', 'in_stock': False},
    {'id': 'd', 'score': .80, 'creator': 'z', 'in_stock': True},
]
slate, seen = [], set()
for row in sorted(items, key=lambda item: -item['score']):
    if row['in_stock'] and row['creator'] not in seen:
        slate.append(row['id']); seen.add(row['creator'])
print(slate)

Filter stale inventory and limit repeated creators in the final slate.

READ THE EXAMPLE

What to notice

  • Item b loses to the creator cap and item c loses to availability, so d is correctly promoted despite its lower model score.
  • Logging only the final IDs would hide whether missing items were filtered, stale, or never retrieved.
YOUR TURN Pause and predict before revealing the answer.

If treatment increases clicks but doubles p99 latency beyond the SLO, what should the experiment decision use?

Need a hint?

A launch contract contains both a primary outcome and non-negotiable guardrails.

Check your reasoning

Do not ship the treatment as tested; the click gain does not override a breached latency guardrail. Diagnose or redesign, then rerun the controlled test.

Bring forward

Lessons 1, 2, 3, 4 in this course.

03 · Formal treatment

Connect the chapter to the course’s quantitative spine.

A recommendation ships only when relevance, freshness, diversity, and system guardrails succeed together. The discounted cumulative gain below is the shared course-level lens that helps quantify the surrounding system. Name each symbol, check its units or shape, and use only values that were available at the production cutoff.

Formal treatment
DCG@K=∑r=1K2relr−1log⁡2(r+1)\mathrm{DCG}@K = \sum_{r=1}^{K} \frac{2^{\mathrm{rel}_r}-1}{\log_2(r+1)}

Discounted cumulative gain

Symbol, shape or unit contract
SymbolMeaning / shape / unit
rel_rrelevance at rank r
rone-indexed rank
Kslate cutoff
Open derivation and numerical substitution

Start from the production quantity being optimized, substitute the observed values with their declared units, then isolate the model-controlled term. Preserve shape annotations at each step so broadcasting or aggregation cannot silently change the result.

  1. Write the named inputs: rel_r, r, K.
  2. Substitute one small, hand-checkable batch before vectorizing.
  3. Calculate an independent reference value and compare within a declared tolerance.
# equation → code contract
inputs = validate_shapes_and_units(batch)
value = compute_c08(inputs)
assert is_finite(value)
04 · Deterministic lab

Change one assumption and make the tradeoff visible.

Use the worked chapter as your prediction, then change one input in the lab and explain why the output moves. The lab runs predefined TypeScript and never executes learner code, so the focus stays on the concept rather than setup.

Estimate

Exploration feedback loop

Allocate unbiased exploration and observe learning coverage versus short-term utility.

%
Primary58.0%
Secondary96.6%
DiagnosisLearnable

Assumption: Simplified marketplace with position-biased clicks and fixed demand.

Open nonvisual data table
ItemComputed stateInterpretation
rank 135.0%6.2%
rank 230.3%6.9%
rank 325.6%7.5%
rank 420.8%8.2%
rank 516.1%8.8%
05 · Production implications

Trace the complete operating path.

Carry the chapter’s central idea into the system: A recommendation ships only when relevance, freshness, diversity, and system guardrails succeed together. The path below shows where that reasoning needs an artifact, a test, an owner, or a fallback.

  1. 01

    Turn “Declare freshness budgets” into a written invariant and a failing test.

  2. 02

    Promote fresh_diverse_slate.py from illustration to a versioned implementation with representative fixtures.

  3. 03

    Use “Experiment with guardrails” as the release checkpoint: Pre-register the randomization unit, primary outcome, minimum duration, slice checks, stopping rule, and rollback thresholds.

  4. 04

    Serve or materialize behind explicit 80 ms ranking budget.

  5. 05

    Join telemetry to mature outcomes and retain a rollback path.

Observability

Join service health, input quality, prediction distributions, slice behavior, and mature outcomes by exact version.

Cost

Measure storage, preprocessing, compute, queueing, and human review under a representative arrival pattern.

Failure modes

A random interaction split and click-only labels improve offline NDCG while amplifying already-prominent items. Add a detector, owner, mitigation, and stop condition for this class of failure.

Alternatives

Compare a rule, a simpler statistical baseline, and a different system boundary before adding model complexity.

06 · Check understanding

Explain the contract, not just the vocabulary.

Browser-graded checkpointPass ≥ 80%
01Why can dot product favor popular items?
02Why use chronological interaction splits?
03Why not use retrieval score as final rank?
07 · Apply in production

Hybrid catalog ranker

Specify BM25 plus learned retrieval, ranking, re-ranking, temporal evaluation, and a versioned online path.

  • Exposure-aware data contract
  • Candidate recall analysis
  • Ranker and NDCG report
  • Diversity/fallback/latency plan
Open assignment and rubric
08 · Sources & next depth

Read primary material with a purpose.

09 · Production resolution

Return to the opening failure.

Version index, ranker, features, and catalog together; log exposures and measure each stage separately.

For this lesson, the release evidence is the worked code example, a hand-checked formal result, deterministic simulation output, a ≥80% checkpoint, the production rubric, and a named fallback. The course resolves when the system can produce candidate generation, ranking metrics, debiasing, and online experiment design.

Course production assignmentHybrid catalog ranker