{
  "runtime": "Astronomy Engine 2.1.19 MIT",
  "supportedUtcYears": [
    1972,
    2100
  ],
  "positions": {
    "samples": 4510,
    "source": "Swiss Ephemeris 2.10.03 / Moshier, conventional Lahiri mode 1, independently calculated fixtures",
    "maximumArcseconds": {
      "meanAyanamsa": {
        "value": 0.0001629171038075583,
        "utc": "1972-01-01T00:00:00.000Z"
      },
      "sunTropical": {
        "value": 2.267332001201794,
        "utc": "2003-02-15T12:00:00.000Z"
      },
      "moonTropical": {
        "value": 3.618798837396753,
        "utc": "2027-06-10T10:24:06.000Z"
      },
      "moonSidereal": {
        "value": 3.540425966912153,
        "utc": "2027-06-10T10:24:06.000Z"
      }
    },
    "classifications": {
      "outsideBoundaryMargin": 13517,
      "within10ArcsecondsOfBoundary": 13,
      "disagreementsOutsideMargin": 0
    }
  },
  "transitions": {
    "endpoints": 3372,
    "source": "Swiss Ephemeris; 562 anchors across 1972–2100",
    "maximumSeconds": {
      "tithi": {
        "value": 7.75,
        "utc": "2089-04-01T09:21:58.080Z"
      },
      "nakshatra": {
        "value": 6.432,
        "utc": "2060-09-30T11:41:08.321Z"
      },
      "pada": {
        "value": 6.006,
        "utc": "2024-03-01T00:44:45.192Z"
      }
    }
  },
  "jpl": {
    "samples": 10,
    "source": "JPL Horizons quantity 45 apparent inertial RA/DEC, geocenter, 2026-10-15 to 2026-10-16",
    "maximumArcseconds": {
      "sun": {
        "value": 1.5357862236214714,
        "utc": "2026-10-15T12:00:00.000Z"
      },
      "moon": {
        "value": 2.2821301477051747,
        "utc": "2026-10-16T12:00:00.000Z"
      }
    }
  },
  "limitations": [
    "Observed finite-sample errors, not a global accuracy guarantee.",
    "Future dates after 2026 retain TAI−UTC=37 seconds; future leap seconds are not predicted.",
    "JPL comparison uses the same ecliptic rotation; it independently checks body directions, not the complete frame rotation.",
    "Official Panchang comparison covers only 14 published minute-level endpoints plus one ahoratra observation; it is not a full calendar/festival validation.",
    "No sunrise-based daily designation, observer parallax, refraction, festival rules or eclipse calculation."
  ],
  "officialPanchang": {
    "source": "IMD Positional Astronomy Centre, Rashtriya Panchang English, Saka Era 1948 (2026–27), published 2025",
    "url": "https://packolkata.imd.gov.in/download/EnglishRP2627.zip",
    "endpointSamples": 14,
    "printedPrecision": "one minute",
    "allMatchNearestMinute": true,
    "maximumDifferenceSeconds": 28.339,
    "comparisons": [
      {
        "date": "2026-04-02",
        "kind": "tithi",
        "printedHoursMinutes": "07:42",
        "index": 14,
        "printedPage": 4,
        "pdfPage": 24,
        "calculatedEndUtc": "2026-04-02T02:12:01.903Z",
        "differenceSeconds": 1.903,
        "matches": true
      },
      {
        "date": "2026-04-02",
        "kind": "nakshatra",
        "printedHoursMinutes": "17:39",
        "index": 12,
        "printedPage": 4,
        "pdfPage": 24,
        "calculatedEndUtc": "2026-04-02T12:08:56.795Z",
        "differenceSeconds": -3.205,
        "matches": true
      },
      {
        "date": "2026-06-15",
        "kind": "tithi",
        "printedHoursMinutes": "08:24",
        "index": 29,
        "printedPage": 23,
        "pdfPage": 43,
        "calculatedEndUtc": "2026-06-15T02:54:12.683Z",
        "differenceSeconds": 12.683,
        "matches": true
      },
      {
        "date": "2026-06-15",
        "kind": "tithi",
        "printedHoursMinutes": "28:31",
        "index": 0,
        "printedPage": 23,
        "pdfPage": 43,
        "calculatedEndUtc": "2026-06-15T23:01:24.754Z",
        "differenceSeconds": 24.754,
        "matches": true
      },
      {
        "date": "2026-06-15",
        "kind": "nakshatra",
        "printedHoursMinutes": "19:09",
        "index": 4,
        "printedPage": 23,
        "pdfPage": 43,
        "calculatedEndUtc": "2026-06-15T13:38:43.546Z",
        "differenceSeconds": -16.454,
        "matches": true
      },
      {
        "date": "2026-10-10",
        "kind": "tithi",
        "printedHoursMinutes": "21:20",
        "index": 29,
        "printedPage": 53,
        "pdfPage": 73,
        "calculatedEndUtc": "2026-10-10T15:50:03.498Z",
        "differenceSeconds": 3.498,
        "matches": true
      },
      {
        "date": "2026-10-10",
        "kind": "nakshatra",
        "printedHoursMinutes": "21:43",
        "index": 12,
        "printedPage": 53,
        "pdfPage": 73,
        "calculatedEndUtc": "2026-10-10T16:12:55.231Z",
        "differenceSeconds": -4.769,
        "matches": true
      },
      {
        "date": "2026-10-15",
        "kind": "tithi",
        "printedHoursMinutes": "27:26",
        "index": 4,
        "printedPage": 54,
        "pdfPage": 74,
        "calculatedEndUtc": "2026-10-15T21:55:41.067Z",
        "differenceSeconds": -18.933,
        "matches": true
      },
      {
        "date": "2026-10-16",
        "kind": "tithi",
        "printedHoursMinutes": "29:55",
        "index": 5,
        "printedPage": 54,
        "pdfPage": 74,
        "calculatedEndUtc": "2026-10-17T00:24:51.724Z",
        "differenceSeconds": -8.276,
        "matches": true
      },
      {
        "date": "2026-10-16",
        "kind": "nakshatra",
        "printedHoursMinutes": "06:48",
        "index": 17,
        "printedPage": 54,
        "pdfPage": 74,
        "calculatedEndUtc": "2026-10-16T01:17:51.924Z",
        "differenceSeconds": -8.076,
        "matches": true
      },
      {
        "date": "2026-10-26",
        "kind": "tithi",
        "printedHoursMinutes": "09:42",
        "index": 14,
        "printedPage": 58,
        "pdfPage": 78,
        "calculatedEndUtc": "2026-10-26T04:11:46.291Z",
        "differenceSeconds": -13.709,
        "matches": true
      },
      {
        "date": "2026-10-26",
        "kind": "nakshatra",
        "printedHoursMinutes": "17:41",
        "index": 0,
        "printedPage": 58,
        "pdfPage": 78,
        "calculatedEndUtc": "2026-10-26T12:11:28.339Z",
        "differenceSeconds": 28.339,
        "matches": true
      },
      {
        "date": "2026-11-01",
        "kind": "tithi",
        "printedHoursMinutes": "14:52",
        "index": 21,
        "printedPage": 60,
        "pdfPage": 80,
        "calculatedEndUtc": "2026-11-01T09:22:11.897Z",
        "differenceSeconds": 11.897,
        "matches": true
      },
      {
        "date": "2026-11-01",
        "kind": "nakshatra",
        "printedHoursMinutes": "28:31",
        "index": 7,
        "printedPage": 60,
        "pdfPage": 80,
        "calculatedEndUtc": "2026-11-01T23:00:55.546Z",
        "differenceSeconds": -4.454,
        "matches": true
      }
    ],
    "ahoratraMatches": true
  },
  "systematicCoverage": {
    "tests": {
      "total": 67,
      "passed": 67,
      "failed": 0,
      "skipped": 0,
      "uiTests": 33
    },
    "node": {
      "version": "v22.12.0",
      "icu": "76.1",
      "iana": "2024b",
      "listedZones": 417,
      "testedZones": 421,
      "instantZoneCases": 14314,
      "civilMonthCases": 10104,
      "offsetTransitions2026": 264,
      "independentOracle": "Python stdlib ZoneInfo + PyPI tzdata 2024.2 / IANA 2024b; independently calculated fixture"
    },
    "browser": {
      "status": "passed",
      "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/154.0.0.0 Safari/537.36",
      "listedZones": 418,
      "testedZones": 422,
      "instants": 34,
      "cases": 14348,
      "failures": [],
      "check": "Actual browser UTC/local roundtrip and astronomy/UTC-boundary invariants; not an independent timezone-rules oracle"
    },
    "math": {
      "referencePositionInstants": 4510,
      "referenceIntervalAnchors": 562,
      "referenceIntervals": 1686,
      "referenceEndpoints": 3372,
      "exactBeforeAtBoundaryChecks": 6744,
      "consecutive2026Intervals": {
        "tithi": 372,
        "nakshatra": 362,
        "pada": 1447
      },
      "majorZones": 24,
      "inverseMonthWindows": 192,
      "angleQueries": 6720,
      "dragPaths": 48,
      "dragMoves": 4320,
      "deviceZoneDefaults": 24,
      "uiZoneEditsAcrossCalendarEdges": 72
    },
    "initialFindings": [
      {
        "kind": "test expectation",
        "failure": "Device-zone assertion expected literal Asia/Kolkata; Intl correctly returned equivalent Asia/Calcutta.",
        "fix": "Assert the runtime canonical zone and equivalent UTC/local behavior, retaining alias roundtrip coverage."
      },
      {
        "kind": "performance",
        "finding": "Timezone validation constructed a new Intl formatter even when the requested formatter was cached.",
        "fix": "Validate only on cache miss. All independent timezone and application checks retain their results.",
        "beforeCoreLoopsSeconds": 64.788,
        "afterCoreLoopsSeconds": 6.01
      }
    ],
    "limits": [
      "Finite samples and invariants are not a proof of ephemeris accuracy at every instant.",
      "Independent timezone rules fixtures are pinned to IANA 2024b and Node 22.12.0 / ICU 76.1. Regenerate when changing rules versions.",
      "Chrome has 418 listed zones; its 14348 cases are runtime roundtrip/UTC invariants, not a second independent timezone-rules oracle.",
      "Future timezone policies and leap seconds can change. Physical touchscreen/full screen-reader certification remain unperformed."
    ]
  }
}
