Page actions
instrument mechanism / verified-clean
Moon Phase Calculator mechanism
The inspectable method record for Moon Phase Calculator, kept separate from implementation and qualification.
Model scope
The concept is scientifically standard as an approximate lunar-phase calculator, but the specification does not state the complete phase-angle formula, illumination formula, phase-name boundaries, reference epoch, or timezone/date precision. Verdict is NEEDS_REVIEW until those ambiguities are resolved.
- The stated formula is incomplete: phase angle should be explicitly defined as theta = 2*pi*(age_days mod 29.53059)/29.53059, in radians.
- Illumination fraction is not specified; the standard geocentric approximation is (1 - cos(theta))/2, or illumination_percent = 100*(1 - cos(theta))/2.
- Phase-name classification boundaries are not specified, including whether exact quarter phases are labeled First Quarter and Last Quarter and how near-boundary values are handled.
- The reference new-moon epoch is required but no epoch value or required timestamp precision is supplied.
- A fixed synodic-month calculation does not by itself provide an astronomical current phase with the stated accuracy unless the epoch and date/time handling are defined precisely.
Units and conventions
- The synodic month is exactly 29.53059 mean solar days for this approximation.
- Input date/time differences are converted to elapsed mean solar days; 1 day = 24 hours = 86400 seconds.
- Date/time values should be interpreted in a specified timezone, preferably UTC, before calculating elapsed time.
- Phase angle is measured in radians when used with standard trigonometric functions.
- Illumination fraction is dimensionless and is converted to percent by multiplying by 100.
- Age is normalized with modulo 29.53059 so that it lies in the interval [0, 29.53059).
Inspectable vector
One of 4 source-bound review vectors:
{
"inputs": {
"days_since_reference_new_moon": 0,
"synodic_month_days": 29.53059
},
"expected_outputs": {
"phase_name": "New Moon",
"illumination_percent": 0,
"age_days": 0
},
"working": "age = 0 mod 29.53059 = 0 days. theta = 2*pi*(0/29.53059) = 0. cos(theta) = cos(0) = 1. illumination_percent = 100*(1 - 1)/2 = 0%. Age 0 days is New Moon."
}Failure boundary
BREAK_CLAIMED · SELF_FLAGGED
The specification does not define the reference epoch's exact timestamp or the timezone interpretation of date-only inputs. The convention probe produces approximately 48.49% versus 43.19% illumination for the same textual date under two plausible timezone conventions. Very large date intervals also expose precision risk if the implementation subtracts timestamps or reduces phase using insufficient numeric precision.
Other records
Sources and evidence
These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.
VERIFIED_LEDGER.jsonevidence-tranche4/tranche4-results.jsonBOUNDARY_HAZARD_CATALOG.json