L06

W07 & W13 · 8 hours · complete online handout

Cross-surface & repeated-run measurement

Research question

Is an observed difference larger than repeated-sampling variation and time drift?
Download offline package
01

Contract

What this lab must demonstrate

  • Analyze a repeated panel.
  • Keep stage metrics and missing states separate.
  • Report uncertainty, sensitivity, incidents, and validity.

Prerequisites

  • W07 metric card.
  • W13 event and incident schema.
Equivalent low-compute route

Analyze the compact supplied CSV with standard-library/Python dependencies.

02

Milestones

Four reviewable checkpoints

The windows are planning budgets, not hidden grading criteria. Pause at every gate; do not compress a failed check into the final submission.

  1. 01

    Validate the panel design

    Work
    Verify query, surface, repetition, time-block keys, timestamps, configuration, missing-state codes, and the external system card.
    Checkpoint evidence
    Panel validation record and locked metric/denominator card.
    Advance only when
    Every designed combination exists, including missing and refused responses.
  2. 02

    Estimate stage-specific outcomes

    Work
    Compute mention, citation, entailment, absorption, and referral separately with declared numerators, denominators, and intervals.
    Checkpoint evidence
    Metric estimates with response-state and denominator audit.
    Advance only when
    No outcome substitutes for another and no failed event silently leaves the denominator.
  3. 03

    Test drift and sensitivity

    Work
    Compare within-block repetition with between-block drift; stratify by query intent and test alternative query weights and missingness rules.
    Checkpoint evidence
    Time-drift, query-mix, missingness, and sensitivity tables.
    Advance only when
    Pooled estimates are not interpreted without their stratified and missingness counterparts.
  4. 04

    Process incidents and set validity

    Work
    Review simulated outage/drift incidents, preserve collection deviations and cost/terms limits, and update the external-validity boundary.
    Checkpoint evidence
    Incident log, uncertainty report, and validity-boundary release.
    Advance only when
    Synthetic or observational differences are not described as live cross-engine or causal effects.
03

Validation

Checks, pass gate, and assessment

Unique observation keys and valid state codes.

Metric denominators and missingness rules are explicit.

Repeated and time-block structure is preserved.

Sensitivity table rebuilds.

No single screenshot is used as effect evidence.

Pass gate

Stage metrics remain separate, denominators/missingness are explicit, and the conclusion is supported by repeated observations rather than a screenshot.

L06 Rubric — 100 points

Rendered from the canonical package rubric. Source SHA-256: ff4621c194dabe1262ca1d4d1c7574f2d1b1e97b5cdfc4d3dffe55928f7204dc.

L06 canonical 100-point assessment rubric
CriterionPointsFull-credit evidence
Frozen panel design15Query universe, surfaces, repetitions, time blocks, versions, and event IDs are fixed before comparison.
Tidy event and missingness integrity20Every designed event is retained; missing/refused outcomes and denominator rules are explicit.
Stage-specific measurement20Mention, citation, entailment, absorption, and referral remain distinct and correctly typed.
Uncertainty and drift20Intervals, within-block repetition, between-block drift, and dependence limits are correctly interpreted.
Query-mix sensitivity15Pooled claims are checked by prespecified strata and difficult/negative cases remain visible.
Ethics, cost, and validity10Collection authorization, rate/cost/privacy rules and non-causal evidence ceiling are explicit.

Hard fail pending remediation: deleted failures, denominator switching after results, single-run effect claim, paid-account requirement, hidden automation, personal data exposure, or collapsing different outcomes.

Pass threshold: 70/100 and no hard-fail condition.

04

Handout

Complete browser-readable lab handout

Generated from the same controlled README shipped in the offline package. Source SHA-256: b297f0c960a3edcafe685fb8f4b976c7209773e655438d1fb9d5b9a534553c13.

On this page 10 sections

Linked course weeks: W07 and W13
Expected effort for the full assignment: 8 hours
Core path: frozen synthetic panel, offline, deterministic, Python standard library only

Research question

Is an observed difference larger than repeated-sampling variation and time drift?

Learning objectives

You will learn to:

  1. model query, surface, repetition, and time as separate panel dimensions;
  2. preserve missing/refused responses rather than silently changing denominators;
  3. estimate mention, citation, entailment, absorption, and referral as distinct outcomes;
  4. compute transparent binomial intervals and time-block deltas;
  5. inspect sensitivity to query intent mix; and
  6. state why a frozen synthetic panel cannot prove a live cross-engine or causal effect.

Input contract

data/panel.csv follows ../shared/schemas/measurement-event.schema.json and contains exactly 360 frozen synthetic events: 20 queries × 2 teaching surfaces × 3 repetitions × 3 time blocks.

  • One row exists for every designed combination, even when response_status is missing or refused.
  • The five outcome fields are independent columns with values 0 or 1 only for complete responses.
  • All outcome cells are empty for missing/refused responses.
  • captured_at is an ISO-8601 timestamp with offset; event and combination keys are unique.
  • synthetic=true is mandatory for the bundled path.

The values were deterministically authored to exercise interval, drift, missingness, and query-mix logic. They are not observations of named products.

Run

python3 scripts/analyze_panel.py \
  --panel data/panel.csv \
  --output /tmp/geo-l06 \
  --minimum-queries 20

Intervals are 95% Wilson score intervals. They summarize binary variation under the declared denominator; they do not correct dependence among repeated observations or justify causal comparisons.

Output contract

Table from the controlled L06 lab handout
ArtifactContract
tidy_panel.csvnormalized full panel including explicit missing rows
metric_estimates.csvsurface × time × metric numerator, denominator, rate, and Wilson interval
time_drift.csvlast-minus-first block rate by surface and metric
query_mix_sensitivity.csvestimates by intent stratum, surface, and metric
missingness.csvdesigned event, complete, missing/refused counts and response rate
data_dictionary.jsontypes, allowed values, and outcome-specific denominator policy
validity_boundary.jsondesign coverage, dependence warning, synthetic ceiling, and excluded causal claims
run_manifest.jsoninput hash and declared minimum design

Full assignment procedure

  1. Freeze at least 20 queries, two surfaces, three repetitions, and three time blocks—or justify an information-equivalent panel before collection.
  2. Record product/surface version, locale, account state, time, and collection mode in an external system card.
  3. Preserve failures, refusals, unavailable citations, and collection interruptions as explicit event states.
  4. Lock metric definitions and outcome-specific denominators before viewing comparisons.
  5. Estimate surface/time outcomes with intervals and inspect individual query trajectories.
  6. Repeat estimates by query stratum; compare pooled and stratified interpretation.
  7. Distinguish within-block repetition variation from between-block drift.
  8. Report collection deviations, cost, terms/rate constraints, and every missingness decision.

Low-compute and no-network route

The bundled 360-row panel is already frozen. Analysis uses CSV, arithmetic, and the standard-library normal distribution only. No account, paid API, browser automation, model call, notebook service, or network connection is required.

Negative results and interpretation

  • Overlapping intervals do not prove equality; non-overlap is not a substitute for a prespecified statistical model.
  • A larger surface difference than time drift can still be confounded by product version, session, or query composition.
  • Missingness can be outcome-related; complete-case rates may be biased.
  • Mention, citation, entailment, absorption, and referral must not be substituted for one another.
  • One screenshot or one run cannot support a repeatability claim.
  • Synthetic panel effects are known fixture patterns, not empirical findings.

Ethics, cost, and stop conditions

Core completion never requires a paid account. Optional collection requires authorization, terms/rate review, a budget cap, privacy review, and manual/API provenance. Stop on personal data, hidden automation, uncontrolled cost, account-risk signals, product-policy conflict, or inability to preserve missing events.

Acceptance

python3 scripts/analyze_panel.py --panel data/panel.csv --output /tmp/geo-l06 --minimum-queries 20
python3 -c 'import json; b=json.load(open("/tmp/geo-l06/validity_boundary.json")); assert b["event_count"] == 360 and b["design"]["query_count"] == 20'

See RUBRIC.md.

05

Execute

Use one source of executable truth

Ethics and stop condition

The core path uses supplied data. Optional collection must be permitted, manual or approved, rate-limited, cost-capped, and free of personal data.

Optional extension

Add a preregistered fourth time block or locale and report whether pooling remains defensible.

The page is the complete reading and planning surface. The versioned package README and scripts remain authoritative for exact local commands, filenames, fixtures, and validation behavior.