How we know we're right

Datewise sells correctness, so "trust us" isn't an acceptable answer. This page describes where the data comes from, how it is checked, what is tested, and — just as important — what we don't cover. Every claim here is checkable: the dataset is downloadable, the hashes recompute, and the live API echoes its versions on every response.

The pipeline, in one paragraph

Holiday data is seeded from the python-holidays library (the vacanza project, MIT licensed — the license covers the data), normalized into a single frozen JSON dataset, content-hashed, and vendored into the API at build time. In CI the dataset is cross-checked against two independent oracles — Nager.Date and OpenHolidaysAPI — and a disagreement blocks the deploy until a human adjudicates it against the jurisdiction's source of record. The API never calls a holiday library or upstream service at request time: it serves only the frozen artifact, which is why answers are deterministic, cacheable, and auditable.

Three imperfect sources → one accountable dataset

1. Seed: python-holidays (vacanza)

A maintained, widely used, MIT-licensed library with per-jurisdiction rules, observed-day logic, and subdivision coverage. It is the seed of record — especially at the subdivision level, where cross-oracle coverage is sparse.

2. Cross-check: independent oracles in CI

Every pipeline run compares the dataset's national-level holidays against Nager.Date and OpenHolidaysAPI. Agreement is required to ship: a real disagreement fails the build (a transient oracle outage is tolerated but logged — third-party downtime can't wedge our pipeline, and it also can't sneak a change through). Subdivision-level data is not cross-checked this way, because oracle coverage there is sparse and divergent — which is exactly why the seed library is the subdivision source of record and why subdivision claims get extra test scrutiny instead.

3. Adjudication: the government source of record

When sources disagree, the tiebreaker is never a vote — it's the jurisdiction's own authority. For the US that is OPM's federal holiday schedule (5 U.S.C. §6103) and state statute for state holidays; for the UK, gov.uk; for Germany, the per-Land holiday statutes.

What "deterministic" means here, concretely

Verify it yourself

Download the exact artifact the API serves: datasets/2026.1.json (~3.7 MB) · all versions

Recompute the hash and compare it to the content_hash field, the /health endpoint, and the dataset version on any API response:

python3 - <<'EOF'
import json, hashlib, urllib.request
d = json.load(urllib.request.urlopen("https://datewise.dev/datasets/2026.1.json"))
declared = d.pop("content_hash")
canonical = json.dumps(d, sort_keys=True, separators=(",", ":"))
print("declared  ", declared)
print("recomputed", "sha256:" + hashlib.sha256(canonical.encode()).hexdigest())
EOF

If Datewise disappeared tomorrow, you'd keep the data — it's MIT-derived and redistributable with attribution. The paid product is the computation and the guarantee (versioning, DST-correct working-hours math, the audit trail), not the list.

How it's tested

What we don't cover — and won't invent

Open-source acknowledgements

Datewise is built on open-source software, and the holiday dataset it serves is derived from open-source data. The MIT license under which these are distributed requires that their copyright and permission notices travel with any copy or substantial portion — so we reproduce them here, and in the dataset manifest that ships with the downloadable artifact.

python-holidays (vacanza) — MIT

Seed of the holiday dataset. Our published dataset is a normalized derivative of this library's data; redistribute it under the same MIT terms, keeping this notice.

Copyright (c) Vacanza Team and individual contributors (see CONTRIBUTORS file)
Copyright (c) dr-prodigy <dr.prodigy.github@gmail.com>, 2017-2023
Copyright (c) ryanss <ryanssdev@icloud.com>, 2014-2017

github.com/vacanza/holidays

Luxon — MIT

The date/timezone engine behind the working-hours and DST arithmetic in the running Service.

Copyright 2019 JS Foundation and other contributors

github.com/moment/luxon

Hono — MIT

The web framework the API is served with on Cloudflare Workers.

Copyright (c) 2021 - present, Yusuke Wada and Hono contributors

github.com/honojs/hono

MIT License

Each component above is provided under the following permission notice:

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

The cross-check oracles — Nager.Date and OpenHolidaysAPI — are used only in CI to validate the dataset, not redistributed, but we're glad to name them too.

Current versions

Live values (recomputed on the serving runtime, not hardcoded here): /health. At the time this page was last updated: dataset 2026.1 covering 2015–2035, content hash sha256:c48e7c61…ba08536e.

Found a date we got wrong? That's exactly the kind of report we want: get in touch and we'll trace it against the source of record — and if we're wrong, the fix ships as a new, changelogged dataset version.