Direct answer: Paste two HTML snapshots of the same page and the tool compares date strings locally: which dates were added, which were removed, which changed class from publish to update, and which stayed the same. It compares date text, not the DOM, and does not decide which snapshot is true. No network, no upload.
Studies 24 and 30 both stress that two observations must be comparable. This tool reduces that to the smallest step: one URL, two HTML files, one difference table. It fits pre/post acceptance, redesigns, or a recheck of whether a date field actually moved.
Added, removed and reclassified are recorded separately.
The same date with a new label is still a change.
Only the two pasted HTML blocks are analysed.
Tool: two snapshots → difference
The default sample yields two added dates (2026-11-02 appears twice), one removed date (2026-11-01) and one unchanged date (2026-10-30). Nothing is reclassified because 2026-11-01 was removed rather than relabelled. Change B's “Last updated” to “Published” and the same date moves into the reclassified list.
How the difference is computed
| Class | Rule | Note |
|---|---|---|
| Added | A date text appears more often in B than in A | Counted by text; duplicates count separately |
| Removed | A date text appears more often in A than in B | Disappeared or fewer occurrences |
| Reclassified | The same date has a different label class in A and B | publish ↔ update ↔ unlabelled |
| Unchanged | Same text and same class | Count is the smaller of the two sides |
Label classes follow the visible date checker: update (updated / last updated), publish (published / posted / date), unlabelled. The classifier cuts a preceding date first so labels do not bleed.
Three common uses
- Publish → update. A redesign changes “Published” to “Last updated”; the same date shows as reclassified, not added.
- Date replaced. 2026-11-01 becomes 2026-11-02, producing one removed and one added entry.
- List changes. A news list with one more item adds one date string; that is not a body update and needs context.
Boundaries
- Not a DOM diff: only date text and label class are compared.
- Does not know which is newer: A/B are your labels; the tool has no timestamps.
- No JavaScript execution: script-injected dates need rendered HTML.
- Numeric dates only: worded dates are not recognised.
- Duplicates count: the same date going from 3 to 4 occurrences counts as one addition.
Tests and reproduction
Logic lives in js/date-snapshot-diff.js (no dependencies, no network); scripts/test_date_snapshot_diff.js covers 40 assertions: three label classes, script stripping, previous-date cut, added/removed/reclassified/unchanged, duplicate counts, empty snapshots and the summary. Run:
node scripts/test_date_snapshot_diff.js
Related: the visible article dates pilot (41 pages: 32 with dates, 0 update labels), the visible date checker (single snapshot), and the expanded article-page dates study (8 dateModified).
Sources and definitions
- Date and label rules: study 30's visible-date pilot and the study-31 checker.
- Difference definition: count by date text; label-class changes are recorded separately.
- Date formats: numeric dates starting with 20xx; relative times are not parsed.