Guth
NewsDocs
Page actions
View as Markdown ↗
Explore MCP tools ↗

instrument / verified-with-binding-errata

Age Calculator

The current ledger marks this instrument verified with errata that must be applied at binding time.

Status: VERIFIED_WITH_ERRATALifecycle: verified-with-binding-errata

Inspectable records

Ledger state

The current ledger marks this instrument verified with errata that must be applied at binding time.

Area
Everyday & Life
Tranche
tranche-5
Evidence ID
t5-007
Ledger rows
1

No ledger note is attached.

Review findings

The underlying calendar-subtraction concept is standard, but the specification is not deterministic enough to verify as an implementation-ready formula. The exact month-end and February-29 policies must be selected and documented.

Formula and scope findings

  • The phrase "calendar-aware subtraction" is conceptually correct but does not specify the actual borrowing and month-end algorithm needed to produce a unique years/months/days result.
  • The next-birthday formula is underspecified for birthdays on February 29 in non-leap years.
  • It is not specified whether a birthday occurring on the reference date yields 0 days or the interval to the following year's birthday.
  • It is not specified whether dates use the proleptic Gregorian calendar, how invalid dates are rejected, or how future birth dates and reference dates earlier than the birth date are handled.

Unit assumptions

  • Dates are valid ISO-8601 Gregorian calendar dates in YYYY-MM-DD format; age components are calendar years, calendar months, and calendar days, not fixed-duration conversions.
  • Days until the birthday means elapsed calendar days from the reference date to the next selected birthday, excluding the start date and including the target date; a birthday on the reference date therefore returns 0.
  • For these vectors, February 29 birthdays recur only on February 29 in leap years; an explicit product policy is still required for non-leap years.
  • The reference date is interpreted in the user's local calendar/time zone when the default "today" is used.

Boundary hardening

BREAK_CLAIMED · SELF_FLAGGED

The specification leaves two important hazards unresolved: invalid calendar dates must be rejected, and the leap-day birthday rule is unspecified. A permissive parser could normalize 2024-02-30 incorrectly, while Feb-29 birthdays produce different ages and countdowns under the February-28 and March-1 conventions. Future birth dates also have an unspecified signed-versus-reject behavior.

Errata and corrections

Tranche errata

days_until_next_birthday · vector 2

1461

0

convention contradiction with her own v4 (same-day birthday counts as 0)

Inspectable example

4 review vectors are recorded. One source-bound sample is shown below.

{
  "inputs": {
    "birth_date": "1990-04-15",
    "reference_date": "2025-06-20"
  },
  "expected_outputs": {
    "age_years": 35,
    "age_months": 2,
    "age_days": 5,
    "days_until_next_birthday": 299
  },
  "working": "Age: 1990-04-15 + 35 years = 2025-04-15; + 2 months = 2025-06-15; + 5 days = 2025-06-20, so age = 35 years, 2 months, 5 days. Next birthday = 2026-04-15. Days remaining in 2025 after 2025-06-20 = 10 (June) + 31 (July) + 31 (August) + 30 (September) + 31 (October) + 30 (November) + 31 (December) = 194. Days from 2026-01-01 through 2026-04-15 = 31 + 28 + 31 + 15 = 105. Total = 194 + 105 = 299 days."
}

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_WITH_ERRATA
  • evidence-tranche5/tranche5-results.json
  • BOUNDARY_HAZARD_CATALOG.json