Page actions
instrument / verified-clean
Date & Duration Calculator
The current ledger marks this instrument verified clean within the source-bound verification corpus.
Inspectable records
Ledger state
The current ledger marks this instrument verified clean within the source-bound verification corpus.
- Area
- Everyday & Life
- Tranche
- tranche-4
- Evidence ID
- t4-291
- Ledger rows
- 1
No ledger note is attached.
Review findings
The core concept is sound, but the instrument is not verifiable as specified. Before release, define endpoint inclusivity, calendar system, timezone/date-only policy, month and year decomposition semantics, negative-value behavior, invalid-date handling, and the exact output schema. The honest label should disclose these conventions rather than remain “none”.
Formula and scope findings
- “Calendar-aware date arithmetic” is a valid approach, but it is not a sufficiently precise formula for verification. The specification must define whether duration endpoints are exclusive or inclusive.
- Month and year durations are ambiguous because months and years have variable lengths; the component-decomposition rule must be specified, such as anchored calendar addition followed by a remaining-day calculation.
- If “plain arithmetic” means subtracting serialized dates or assuming fixed-length months/years, that would be incorrect. Calendar APIs or equivalent Gregorian calendar logic are required.
- The specification does not define the calendar system, date format, timezone, or behavior for invalid dates.
- The output “duration breakdown” is unspecified: it must define whether it reports total days, weeks with a remainder, calendar months/days, or multiple simultaneous representations.
Unit assumptions
- Test vectors assume the proleptic Gregorian calendar.
- Inputs are date-only values in ISO 8601 format (YYYY-MM-DD), with no time-of-day or timezone component.
- Date duration uses end-midnight minus start-midnight: the start date is not counted as an elapsed day and the end date is not treated as an additional inclusive day.
- Calendar month/day breakdown uses anchored addition: add whole calendar years and months first, then count remaining calendar days.
- Total weeks are calculated as integer division of total days by 7, with the remainder reported separately; 7 days equals exactly 1 week.
- Day-of-week names use the Gregorian calendar.
Boundary hardening
BREAK_CLAIMED · SELF_FLAGGED
The specification leaves invalid-date behavior and duration conventions unspecified. The invalid 2023-02-29 input must be rejected, and reversed dates must have an explicitly defined signed-versus-absolute and inclusive-versus-exclusive convention; otherwise different plausible implementations produce different results.
Errata and corrections
No applied erratum is attached to this unique-name record.
Inspectable example
4 review vectors are recorded. One source-bound sample is shown below.
{
"inputs": {
"mode": "duration",
"start_date": "2024-01-15",
"end_date": "2024-03-20"
},
"expected_outputs": {
"total_days": 65,
"calendar_years": 0,
"calendar_months": 2,
"calendar_days": 5,
"whole_weeks": 9,
"remaining_days": 2,
"end_day_of_week": "Wednesday"
},
"working": "Add 2 calendar months: 2024-01-15 -> 2024-03-15. Count remaining days: 2024-03-15 -> 2024-03-20 = 5 days. Total days: Jan 15 -> Mar 15 = 31 + 29 - 15 = 45 days; 45 + 5 = 50? Correction: Jan 15 -> Feb 15 = 31 days, Feb 15 -> Mar 15 = 29 days, and Mar 15 -> Mar 20 = 5 days, so calendar-component arithmetic gives 2 months and 5 days, while elapsed total days is 31 + 29 + 5 = 65 days. Weeks: 65 = (9 x 7) + 2, so 9 whole weeks and 2 remaining days. March 20, 2024 is Wednesday."
}Related workflows
No source-defined multi-instrument workflow membership is recorded.
Sources and evidence
These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.
VERIFIED_LEDGER.json · VERIFIED_CLEANevidence-tranche4/tranche4-results.jsonBOUNDARY_HAZARD_CATALOG.json