How Trikona's calculation engine is held to classical fidelity — the evidence, in the open.
The engine is exercised against an independently-assembled corpus of birth charts spanning known celebrity nativities, deliberate edge cases (high latitude, day boundaries, ayanamsa extremes), and synthetic seeds.
Cross-validatable positional fields are checked against 100 deterministic fixtures generated independently with PyJHora. PyJHora is a separately authored Python library inspired by Jagannatha Hora; it is not the official Jagannatha Hora desktop application, and these fixtures are not JHora exports. The corpus currently contains 0 official JHora exports. Formulation differences and circularity limits are recorded in the classical audit log rather than hidden.
100 PyJHora oracle fixtures
Hand-computed goldens derived directly from Brihat Parashara Hora Shastra verses, plus canonical-snapshot and randomized regression goldens, guard against silent drift:
test_bphs_canonical_snapshot.pytest_bphs_hand_computed_goldens.pytest_bphs_random_goldens.pyEvery layer's verification validator, re-run in the final engine state and pinned by a deterministic
RESULT_SHA256 so the result is reproducible:
36/36 PASS
| Validator | Verdict | RESULT_SHA256 |
|---|---|---|
validate_cp2l1_crossval | PASS | 48d35fb1 |
validate_cp2l2_aspects | PASS | 9c98489c |
validate_cp2l2_divisional | PASS | ef01885b |
validate_cp2l2_karakas | PASS | 7eb69cbc |
validate_cp2l2_transits | PASS | 23d1af57 |
validate_cp2l2_vimshottari | PASS | a78ee523 |
validate_cp2l3_argala | PASS | 7eb2e105 |
validate_cp2l3_dasha_systems_extended | PASS | 43d734e1 |
validate_cp2l3_dispositor | PASS | dfd40317 |
validate_cp2l3_jaimini_dashas | PASS | d43c8a93 |
validate_cp2l3_narayana | PASS | ab6d5fe8 |
validate_cp2l4_ashtakavarga | PASS | a3597f2f |
validate_cp2l4_ashtakavarga_extensions | PASS | 55b7f498 |
validate_cp2l4_functional_status | PASS | 4bc5ff3d |
validate_cp2l4_house_strength | PASS | 5be7ea3f |
validate_cp2l4_planetary_state | PASS | bc492dea |
validate_cp2l4_shadbala | PASS | 4dfddb9d |
validate_cp2l4_transit_aggregator | PASS | 68baa02c |
validate_cp2l4_transit_overlay | PASS | ea77a72e |
validate_cp2l4_transits | PASS | 82f0e1e6 |
validate_cp2l4_vimshopaka_bala | PASS | c75e00c9 |
validate_cp2l4_yoga_catalog_expanded | PASS | 37bcdccc |
validate_cp2l4_yoga_engine | PASS | c308e894 |
validate_cp2l4_yoga_extensions | PASS | 812f518f |
validate_cp2l5_compatibility | PASS | ebae76a9 |
validate_cp2l5_muhurta_choghadiya | PASS | 184fe20e |
validate_cp2l5_muhurta_panchang | PASS | f674236a |
validate_cp2l5_muhurta_scoring | PASS | abe66a07 |
validate_cp2l5_muhurta_sunrise | PASS | 17e2bf85 |
validate_cp2l5_muhurta_tarabala | PASS | c8232f52 |
validate_cp2l5_prashna | PASS | fc569dcf |
validate_cp2l5_special_points_lagnas | PASS | 87034da3 |
validate_cp2l5_special_points_upagrahas | PASS | b4ac6f52 |
validate_cp2l5_varshaphala | PASS | 53bca7b3 |
validate_cp2s_relationships | PASS | 8331b491 |
validate_cp2s_yoga_crosslayer | PASS | 7e089869 |
| ID | Logged | Question |
|---|---|---|
CQ-0001 | 2026-05-29 | Shadbala/Bhava Bala authoritative values come from PyJHora, not independently classically derived in Hora |
CQ-0002 | 2026-05-29 | D60 (Shashtiamsa) formulation differs from JHora; no PyJHora method matches |
CQ-0003 | 2026-05-29 | Vimshottari year-length (and dasha-epoch) convention differs from JHora |
CQ-0004 | 2026-05-29 | 8-karaka diagnostic: Rahu degree convention (plain vs reverse) |
CQ-0005 | 2026-05-29 | Arudha pada: ~7% divergence from JHora (exception/edge-rule variant) |
CQ-0006 | 2026-05-29 | Yogini dasha: starting-yogini convention differs from JHora |
CQ-0007 | 2026-05-30 | Narayana dasha: progression + period-years formulation differs from PyJHora |
CQ-0008 | 2026-05-30 | Sthira dasha: seed sign + per-sign duration table differ from PyJHora |
CQ-0009 | 2026-05-30 | Niryana Shoola dasha: seed/direction + duration table differ from PyJHora |
CQ-0010 | 2026-05-30 | dasha_systems_extended ships only Tier-4 / placeholder / deferred dashas |
CQ-0011 | 2026-05-30 | Ekadhipatya Shodhana: scope-of-application methodology differs from PyJHora |
CQ-0012 | 2026-05-30 | Cheshta Bala reading: BPHS Ch 27 vv. 24-25 (sheeghra-kendra) vs vv. 21-23 (8-motion table) |
CQ-0013 | 2026-05-30 | Bhava Digbala is a PyJHora-port (Tier-5 impl of the sign-class verse) + Sripati-midpoint choice |
CQ-0014 | 2026-05-30 | Yoga synthesis GATES are documented modern (Raman/Rao) interpretive overlays, not pure BPHS |
CQ-0013 | 2026-06-01 | Graha drishti: engine models all aspects as FULL; the graded 1/4–1/2–3/4 (Sphuta) drishti is not implemented |
CQ-0015 | 2026-06-02 | Śrīpati vs Bhāva-Chalit bhāva semantics + the quadrant-cusp method (CP8.E.1) |
CQ-0016 | 2026-06-02 | interpretive_school factor-weighting multipliers (CP8.E.3) |
CQ-0017 | 2026-06-02 | Graha-Yuddha basis for the canonical Shadbala total (CP8.F.2) |
CQ-0018 | 2026-06-02 | Interpretive strength-gating onto the canonical Shadbala tier (CP8.F.7) |
CQ-0019 | 2026-06-14 | Jaimini rasi-strength ladder (shared primitive) + Brahma seed resolution |
CQ-0020 | 2026-06-14 | Sthira Dasha: two schools (seed + year-table) — PVR/PyJHora shipped as opt-in |
CQ-0021 | 2026-06-15 | Sudasa (Sri-Lagna rasi-dasha): NEW build; logic exact, divergence inherited |
CQ-0022 | 2026-06-15 | Drig (Dṛg) Daśā: equal-10y placeholder REBUILT to real PVR algorithm; logic exact |
CQ-0023 | 2026-06-15 | Trikoṇa (Lagna-trine) rāśi-dasha: NEW build; logic exact, durations inherited |
CQ-0024 | 2026-06-15 | Maṇḍūka (frog-leap) rāśi-dasha: NEW build; sequence AND durations byte-exact |
CQ-0025 | 2026-06-15 | Lagna-Kendrādhi (Kendrādhi) rāśi-dasha: NEW build; logic exact, durations inherited |
CQ-0026 | 2026-06-15 | Kāraka-Kendrādhi rāśi-dasha: NEW build; logic exact, divergence = OQ-0005 + CQ-0007 |
CQ-0027 | 2026-06-15 | Shashṭihāyani (60y conditional nakṣatra dasha): NEW build; the nakṣatra-dasha pattern, byte-exact |
CQ-0028 | 2026-06-15 | Phase 3 nakṣatra-dasha batch (7 NEW conditional dashas): byte-exact |
CQ-0029 | 2026-06-15 | Tāra Daśā (kendra-strength nakṣatra dasha): NEW build → Phase 3 COMPLETE (9/9) |
CQ-0030 | 2026-06-15 | KP (Krishnamurti Paddhati) sub-lord engine: Phase 4 foundation, byte-exact |
CQ-0031 | 2026-06-15 | KP cuspal sub-lords (CSL): byte-exact, two PyJHora sources |
CQ-0032 | 2026-06-15 | KP four-fold significators: core is unambiguous canon; node agency flagged |
CQ-0033 | 2026-06-15 | KP Ruling Planets (RP): assembly of validated primitives; byte-exact |
CQ-0034 | 2026-06-15 | KP horary (1..249): byte-identical to PyJHora's published KP-249 table |
CQ-0035 | 2026-06-15 | Nābhasa (Āśraya + Saṅkhyā): planet set = 7 (Sun–Saturn), nodes excluded |
CQ-0036 | 2026-06-15 | Nābhasa Ākṛti: 18 purely-positional shape yogas (3 occupancy regimes) |
CQ-0037 | 2026-06-15 | Nābhasa Dala + Vajra/Yava: natural benefic/malefic classifier (completes the family 32/32) |
CQ-0038 | 2026-06-15 | Mālikā (garland) Rāja yogas = the start-house naming of the Nābhasa 7-span geometry |
CQ-0039 | 2026-06-15 | Named Rāja yogas, positional sub-batch (Chatussāgara, Rājalakṣaṇa, Trilochana) |
CQ-0040 | 2026-06-15 | Lord-based named Rāja yogas (Devendra, Indra): Sc/Aq lordship = classical single lord, NOT PyJHora's strength-resolved node co-lordship |
CQ-0041 | 2026-06-15 | Named-yoga backlog coverage triage is UNRELIABLE; Vipareeta was already covered (caught + reverted) |
CQ-0042 | 2026-06-15 | Parvata Yoga (BVR #14): classical 6th+8th (not PyJHora's 7th), waxing Moon counts, kendras must hold a benefic |
CQ-0043 | 2026-06-16 | Chamara Yoga (BPHS Ch.36, NOT a Raman number): three corrections of PyJHora (lagna-inclusion, whole-sign exaltation, conditional benefics) |
CQ-0044 | 2026-06-16 | Sankha Yoga (B.V. Raman #44): PyJHora has a genuine Path-B coding bug; Hora corrects it |
CQ-0045 | 2026-06-16 | "Strong" planet = classical BPHS naisargika dignity, NOT PyJHora's strength table (Jupiter→Mercury is an ENEMY) |
CQ-0046 | 2026-06-16 | Qualitative Rāja batch 2 (Kusuma #54, Makuta #58, Kahala #15): independent sourcing corrected three PyJHora combination numbers; Kusuma rule corrected |
CQ-0047 | 2026-06-16 | Qualitative Rāja batch 3 (Jaya #73, Kalanidhi #51): another PyJHora bug (Kalanidhi venus-join tautology); Jaya deep-vs-sign exaltation |
CQ-0048 | 2026-06-16 | Gaja Yoga (#50, ≠ Gajakesari #1): "aspected" = graha-dṛṣṭi (classical), PyJHora also admits rasi-dṛṣṭi |
CQ-0049 | 2026-06-16 | Lord-placement Rāja yogas (Siva #63, Khadga); Sreenatha #32 DEFERRED (self-contradictory); more PyJHora number errors |
CQ-0050 | 2026-06-16 | Module split (raja_yoga_helpers.py) + Matsya #47 |
CQ-0051 | 2026-06-16 | Brahma #65 (the LORD-KENDRA one); trio Brahma/Hari/Hara + Koorma/Vishnu DEFERRED (contested / need D9) |
CQ-0052 | 2026-06-16 | Structural Dhana yogas (Bahudravyārjana #129, Amaranantha #142, Ayatnadhanalābha #143); loose Vayasi-Dhana EXCLUDED |
CQ-0053 | 2026-06-16 | Phase 7 convergence sweep BEGUN (iteration 1: newest yoga modules → zero Medium+) |
CQ-0054 | 2026-06-16 | Phase 7 sweep iter 4: real MEDIUM bug found+fixed — nakṣatra-dasha boundary inconsistency (index vs spent-fraction floor) |
CQ-0055 | 2026-06-16 | Phase 7 sweep iter 5: real MEDIUM bug found+fixed — Kalachakra (nakṣatra,pada) boundary inconsistency |
CQ-0056 | 2026-06-16 | Phase 7 sweep iter 6: divisional-chart boundary flag → VERIFIED FALSE POSITIVE (byte-faithful to PyJHora's canonical varga formula) |
CQ-0057 | 2026-06-16 | Phase 7 sweep iter 7: orchestration + robustness deep-review → ALL findings traced to non-bugs (zero Medium+) |
CQ-0058 | 2026-06-16 | Phase 7 sweep iter 8: REAL MEDIUM bug — Yogi Pravrajya Yoga broken fire condition (+ circular validator) |
CQ-0059 | 2026-06-16 | Phase 7 sweep iter 9: FOUR real bugs in the Phase-6 yoga catalog/extension modules + a gate-coverage gap |
CQ-0060 | 2026-06-16 | Phase 7 sweep iter 10: orphaned-validator sweep → gate-coverage gap closed; planetary_state ENGINE verified CORRECT (a CHURN false-alarm the safety-net caught) |
CQ-0061 | 2026-06-16 | Phase 7 sweep iter 11: REAL MEDIUM bug — Deeptadi "Shakta" avastha INVERTED (direct vs retrograde) |
CQ-0062 | 2026-06-16 | Phase 7 sweep iter 12: Jagradadi avastha dropped classical debilitation→Sushupta (JHora-alignment hierarchy violation) — REVERTED to classical |
The public accuracy-bounty program is planned, not yet open (parked until 1,000 paid users). There is no live intake and no payout path today. When it opens, reports will include your chart, the output you expected (with its classical/JHora source), and what Trikona produced; confirmed defects will be fixed and rewarded through an internal triage queue.
Planned, not yet open