OcalEN Validation Report

Scientific lunar calculator - current measured state.

Generated . Page rendered live from on-disk fixtures and the test catalogue. No synthetic numbers. Methodology: https://www.ocalendario.com.br/calculadora-lunar-cientifica/methodology.

1. Honest framing

OcalEN's scientific lunar calculator is a new tool. The standards it implements (IAU 2006, IERS 2010, DE440, IAU 2000A, GUM 100:2008, CCSDS 502.0-B-3) are the same standards used by operational reference services. What is currently measured against those services is summarised below; what is pending is listed under "pending baselines" with the planned coverage and the procedure to populate.

This page never invents numbers. If a baseline has zero samples, that is what the page says.

2. Test suite results (static catalogue)

The static catalogue mirrors the methodology Section 12.8 table. The catalogue is updated when the underlying tests change; it is not re-executed at page render. To re-run any test locally, invoke the file shown in the second column:

php /lua/calculadora-lunar/<file>
Test categoryFileCoverageStatusWhat it proves
Parameter audit test_param_audit.php 17 / 17 documented inputs PASS every documented input affects the output
Phase regression (clip-level) test_phase0_regression.php 3 / 3 known events PASS principal-phase identification at clip-level epochs
Toggle matrix test_phase11_toggle_matrix.php 30 / 30 model toggles PASS each engine toggle produces a distinct numerical output
Engine extension test_phase24_engine_extension.php 67 / 67 internal contracts PASS NPB matrix, state vectors, uncertainty propagation, monthly ephemeris
JPL Horizons smoke test_phase11_jpl_horizons.php 2 samples (Phase 11 smoke fixture) PASS (wide tolerance) smoke comparison only; not a precision baseline
JPL Horizons regression baseline test_phase26_horizons_baseline.php 0 / planned 200 to 1000 SKIPPED (no samples yet) sub-arcsec precision when populated

3. Numerical residuals

Aggregated p50 / p95 / max residuals against external references are produced by the consumer test runners. They appear in this section once the underlying baseline has at least one sample. Until then, the relevant rows say "not yet measured" and refer to the schema document for the planned tolerance.

JPL Horizons regression not yet measured

Planned coverage: 200 to 1000 samples. Consumer: test_phase26_horizons_baseline.php.

Why empty. The calculator is a new tool. The broader baseline is built incrementally as samples are fetched and audited; the schema and the procedure are committed first, the data is committed batch by batch.

Schema and procedure: see _big_files/fixtures/horizons/BASELINE_SCHEMA.md.

USNO Astronomical Almanac cross-check not yet measured

Planned coverage: 120 to 360 samples. Consumer: pending (test runner lands when first batch is committed).

Why empty. The calculator is a new tool. The broader baseline is built incrementally as samples are fetched and audited; the schema and the procedure are committed first, the data is committed batch by batch.

Schema and procedure: see _big_files/fixtures/usno/BASELINE_SCHEMA.md.

IMCCE / INPOP21a cross-check not yet measured

Planned coverage: 100 to 300 samples. Consumer: pending (test runner lands when first batch is committed).

Why empty. The calculator is a new tool. The broader baseline is built incrementally as samples are fetched and audited; the schema and the procedure are committed first, the data is committed batch by batch.

Schema and procedure: see _big_files/fixtures/imcce/BASELINE_SCHEMA.md.

4. Pending baselines

The following extensions are required before the methodology can defend any sub-arcsecond precision claim. They are listed here so the gap is visible to the reader and to any reviewer:

5. Source of truth

6. Test files in this build

The directory lua/calculadora-lunar/ contains 32 test files. Each file is a standalone PHP script runnable from CLI. The list below is enumerated from the filesystem at page render time:

FileSize (KB)
test_phase0_regression.php 4.1
test_phase10_helpers.php 8.2
test_phase11_jpl_horizons.php 3.6
test_phase11_refraction.php 3.4
test_phase11_schema_validation.php 8.3
test_phase11_services.php 12.6
test_phase11_state_vectors.php 4.2
test_phase11_time_scales.php 4.2
test_phase11_toggle_matrix.php 8.9
test_phase11_uncertainty_budget.php 5.5
test_phase12_iau2006_frames.php 5.8
test_phase14_charts.php 2.7
test_phase15_besselian.php 4.1
test_phase16_planets.php 5.9
test_phase17_de440.php 13.5
test_phase18_eclipse_path.php 14.3
test_phase19_hipparcos.php 12.5
test_phase1_meeus_example.php 2.2
test_phase20_sbdb.php 9.9
test_phase21_search.php 11.9
test_phase21_search_ui.php 10.1
test_phase24_engine_extension.php 12.2
test_phase25_popular_view.php 5.1
test_phase25_unit_roundtrip.php 17.2
test_phase26_horizons_baseline.php 9.8
test_phase3_sun.php 1.6
test_phase5_apsides.php 1.6
test_phase6_eclipses.php 1.1
test_phase8_seasons.php 1.2
test_phase9_libration_topo.php 4.2
test_phase9_nutation.php 2.9
test_phase9_saros.php 1.8