When must a model actually read physical time — and when is template-matching enough?
Self-supervised encoders look strong on light-curve classification. But a simple diagnostic shows they get there by matching class templates, not by reading each source's period off its raw, irregularly-sampled brightness — its absolute time. This series traces that thread: how we measure it, why even continuous-time models still don't read time, when the shortcut breaks, and what would fix it.
The map. UMAP of ~25k ZTF periodic variables, color by class / period / Gaia / anomaly score; click any source for its light curve, HR position, and nearest neighbors.
What makes an embedding "good"? Overall R² vs ρ_within per encoder — high R² with tiny ρ_within is template-matching; only Lomb–Scargle reads the per-source period. The operational definition the rest of the series uses.
Why doesn't continuous time help — and should we just feed a power spectrum? ρ_within barely moves as you add time to the input (none → continuous → +Δt); it jumps only when the search is done explicitly — and Lomb–Scargle is that power-spectrum-plus-peak-pick.
Is reading time even important? Classification is fine → period regression breaks → quasiperiodic / period-changing sources break hard → time-structural anomalies become invisible.
Global top outliers plus the most anomalous member of each variability class and each embedding region — a window on the shape anomalies the embedding can find (and a setup for the time anomalies it can't).
Why the same star has many "periods": the P/2 harmonic and its diurnal aliases, with a live phase-fold slider.
Why gradient descent can't find a period: the dispersion landscape is flat with razor-thin spikes — period reading is a search, not a smooth readout.