Shift

Shift shows what the model changed in your data since you last looked. Each change lands with one pulse, wears pigment, keeps the old value struck beneath it, and waits until you keep or revert it.

Live specimen

Tap “Refresh from register”. Four values change. Tap one to see why, then keep or revert it, or acknowledge them all.

Anatomy

When to use

  • Tables and records the model refreshes from another source: rent rolls, cash forecasts, schedules, registers.
  • Any value people make decisions from, where a silent change would mislead.
  • Not for live data that changes every second, such as prices. Those need a timestamp, not a review.

Behaviour

StepWhat happens
RefreshThe status shows the model reading its source, with a thinking caret.
LandEach changed cell pulses once in tyrian, then rests. The new value flows in pigment.
InspectTapping a change shows its reason and source in the review bar.
KeepThe value settles into still pigment. The struck value goes.
RevertThe old value returns in ink. The change leaves no trace.

Best practices

  • Give every change a reason with a source and a date: “Renewal signed 2 Oct at S$9.20 psf”.
  • Keep column widths stable. Use tabular figures so changed numbers don’t shift their neighbours.
  • After each decision, move to the next pending change.
  • Offer “Acknowledge all” only alongside per-change review, never instead of it.
DoKeep the old value visible until a person decides.
Don’tDon’t show only an arrow. People can’t tell what changed, by how much, or who changed it.

Accessibility

  • Changed cells are focusable buttons named in full: “L09 rent changed from 8.90 to 9.20. Renewal signed 2 Oct.”
  • Old values carry a hidden “was” for screen readers.
  • One announcement sums up the refresh: “The model changed 4 values in the rent roll.”

Specifications

Landing pulse
One beat, once, in tyrian
Between changes
420 ms
Old value
Ink 3, struck in madder at 70%
Figures
Tabular