← AstroMatrix Reports — all pages Correspondence Audit Data audit · club.astromatrix.org · updated after backend response Correspondence trait data had four reproducible gaps Auditing the trait correspondences (crystals, decans, elements, cross-references) that power the astromatrix-public detail pages, after a frontend fix attempt turned out to be papering over bad upstream data instead of a display bug. Four issues were reproduced against the live API — three are now resolved (one of those by explanation rather than a code change), one is a confirmed engine-level bug still open. Source club.astromatrix.org /tarot/get & /component/GetComponent Scope 78 tarot cards, 7 aspect/placement components Findings 4 §01 Suit Element missing Fixed — 63 rows backfilled §02 Decan/sign mismatch Resolved by design change §03 Modalities/Elements incomplete Partial — 1 engine bug open §04 Court card backlink asymmetry Working as designed 01 Suit Element is missing on 48 of 56 minor arcana Fixed Every minor arcana card has a Suits trait (Wands / Cups / Swords / Pentacles), which maps to an element with zero ambiguity: Wands→Fire, Cups→Water, Swords→Air, Pentacles→Earth. The Suit Element trait that's supposed to carry this is only populated for Kings and Queens — every Ace through 10, every Page, and every Knight comes back empty. 8 / 56cards with Suit Element set 0mismatches where it is set 48cards missing it entirely | Rank | Wands | Cups | Swords | Pentacles | Ace – 10 | missing | missing | missing | missing | Page | missing | missing | missing | missing | Knight | missing | missing | missing | missing | Queen | Fire ✓ | Water ✓ | Air ✓ | Earth ✓ | King | Fire ✓ | Water ✓ | Air ✓ | Earth ✓ Fix This is the cleanest of the four to backfill — Suit Element is a pure function of Suits, so it can be generated for the missing 48 records directly from the existing Suits→Element table (Wands→Fire, Cups→Water, Swords→Air, Pentacles→Earth), no judgment calls required. Resolved Confirmed — full re-sweep of all 56 minor arcana now shows Suit Element populated with zero mismatches. It was hand-authored in the schema and the generation engine deliberately won't overwrite hand-authored fields, which is correct as a rule but left the 48 pip/page/ knight rows permanently empty since no one had filled them by hand. Backfilled as 63 rows (the extra 7 beyond the 48 found here are the Spanish/Thoth suit variants — e.g. "10 De Bastos", "7 of Disks" — this audit's tarot-card sample didn't cover those decks). Added as a standing db-audit check rather than a one-off migration, so it stays enforced going forward. 02 Decans imply a sign the card's Zodiac Signs trait doesn't have Resolved A decan is a literal ten-degree slice of a zodiac sign, so if a card's Decans trait says Pisces 3rd, that card touches Pisces — mechanically, not by interpretation. 11 of 22 major arcana have a decan whose sign doesn't show up in that same card's Zodiac Signs trait. Five of those look like real gaps; the rest are explained by Zodiac Signs also carrying the card's own traditional ruling sign, a separate fact layered into the same field — worth a look either way. | Card | Decans | Zodiac Signs | Read | The Hierophant | Virgo 2nd, Taurus 1st | Taurus | Virgo missing | Death | Pisces 3rd, Scorpio 1st | Scorpio | Pisces missing | The Tower | Aries 1st, Scorpio 1st | Aries | Scorpio missing | The Star | Gemini 2nd, Aquarius 2nd | Aquarius | Gemini missing | The Sun | Aries 2nd | Leo | Aries missing | The Fool | — | Aquarius | no decan · own sign only | The Magician | Virgo 3rd | Gemini, Virgo | own sign (Gemini) layered in | The Empress | — | Libra, Taurus | no decan · own signs (Venus) only | Wheel of Fortune | Pisces 2nd | Pisces, Sagittarius | own sign (Sagittarius) layered in | Justice | Libra 2nd, Libra 1st | Aquarius, Libra | own sign (Aquarius) layered in | Judgement | — | Scorpio | no decan · own sign only Fix The five rows marked missing are unambiguous — a decan can't exist without its sign, so add the sign to Zodiac Signs wherever it's absent. The own sign layered in rows aren't necessarily bugs, but confirm that's the intended design (card's ruling sign + decan-derived signs sharing one field) — if not, it's worth splitting into two distinct trait categories so a page can render "ruling sign" and "decan sign" separately instead of guessing which is which. Resolved — not data loss, the actual fix for this finding My first re-check after the update read this as a regression (Decans had vanished from every major arcana) — that reading was wrong. Decans are now restricted by source to Sabian Symbols | Tarot Minor Arcana | I Ching Hexagrams | Zodiac Signs; Major Arcana is excluded on purpose. The original complaint — Death → Pisces 3rd implying a sign the card doesn't have — was itself the bug: that link went through the decan's planetary ruler (Pisces 3rd and Scorpio are both Mars-ruled), not the sign, which is exactly the spurious correspondence flagged here. Removing majors from Decans resolves it at the source rather than papering over it downstream. Pip→decan attribution (the actual Golden Dawn mapping) is intact and verifies 36/36 — confirmed independently on 5 of Cups → Scorpio 3rd, Scorpio 1st. 03 Modalities / Elements are incomplete on aspects & placements Partial — 1 engine bug confirmed open Checked 7 Planet Aspects / Planets in Signs components. Every single one had Modalities or Elements arrays with the wrong count for the signs involved — usually too few, sometimes empty. I initially tried fixing this in the frontend by deriving Modality/Element from the Zodiac Signs trait instead — don't do that, see the callout below for why it doesn't work. | Component | Category | Zodiac Signs | Modalities | Elements | Sun Conjunct Moon | Planet Aspects | Cancer, Leo | Fixed, Mutable | empty | Venus Conjunct Mars | Planet Aspects | Aries, Taurus | Cardinal 1 of 2 | Fire 1 of 2 | Mercury Trine Jupiter | Planet Aspects | Gemini, Virgo | empty | Air 1 of 2 | Sun Square Saturn | Planet Aspects | Capricorn, Leo | Mutable wrong | empty | Mercury in Gemini | Planets in Signs | Gemini, Virgo | empty | Air 1 of 2 | Venus in Taurus | Planets in Signs | Taurus, Libra | empty | empty | Mars in Scorpio | Planets in Signs | Scorpio, Aries | Cardinal 1 of 2 | Fire 1 of 2 Why not just derive it from Zodiac Signs Zodiac Signs doesn't mean "the sign in this page's title" — on Planets in Signs components it holds the planet's own ruling sign(s). "Venus in Taurus" reports [Taurus, Libra] (Venus rules both), and "Mars in Scorpio" reports [Scorpio, Aries]. On Planet Aspects it's inconsistent again — "Venus Conjunct Mars" reports only one domicile per planet, not both. A frontend fix that trusts this field will look right on some pages and wrong on others, for reasons that have nothing to do with modality or element. This needs to be corrected at the source, where whatever process populates these traits can be told the actual rule instead of guessed at from the outside. Fix Regenerate Modalities and Elements for the Planet Aspects and Planets in Signs categories from whatever the DB considers each component's actual sign(s) to be — and settle what Zodiac Signs is supposed to represent for a given category before trusting it as an input to anything else. Mostly fixed — re-swept 5 of 7 sampled components clean Zodiac Signs on Planets in Signs is now a single sign instead of the confusing dual-domicile list, which resolved the ambiguity this section's callout warned about. Two components still don't check out, and the cause turned out to be more specific than "missing data" in both cases: Mars in Scorpio — genuine bug. The component carries p:Cardinal (from Mars) and p:Fixed (from Scorpio) at equal weight — a 51%/51% tie that gets broken arbitrarily. For a placement, the sign should determine modality, not the planet, but nothing in the current model enforces that precedence. Elements landed on the right answer (Water) by the same coin flip, not by rule. Mercury Trine Jupiter — not actually a lookup error. Air and Fire are both correct (Air from Gemini/Mercury, Fire from Sagittarius/Jupiter) — a planet contributes its own element, not every element of every sign it rules. Earth was "missing" because Zodiac Signs lists Virgo while nothing derives an element from it — an internal inconsistency between two fields, not a wrong value in the one that matters. Both need the same underlying fix — sign-derived qualities should outrank planet-derived ones on placement components — which is engine work, not a table edit. Left open rather than patched with a tie-break. 04 Major Arcana → Court Card cross-references aren't always symmetric Working as designed Checked all 20 Tarot Court Cards references made by the 22 major arcana. Most court cards reference every major arcana that points to them ("double hop" — follow the link, check it points back). 4 references don't: | Major Arcana | References | That card's own Major Arcana refs | The Magician | Page of Swords | Justice no backlink | Strength | Knight of Pentacles | The Devil no backlink | The World | Page of Pentacles | The Devil, Magician no backlink | The World | Princess of Pentacles | The Devil, Magician no backlink This may be intentional — correspondence systems aren't always meant to be symmetric, and a court card legitimately pointing to a different (but related) major arcana isn't wrong by itself. Flagging it because it's the kind of thing that's easy to verify once and hard to notice by browsing. Confirmed intentional, at the data owner's request Court cards were capped to 1 reference per component, explicitly ("we only want max 1 court card"). Justice keeping King of Swords and dropping Page of Swords is that cap, not pruning — 12 majors now hold exactly 1 court-card reference each. The asymmetry itself is also by design: scoring measures each side's coverage of the candidate, so A→B and B→A are allowed to genuinely differ, and per-category caps then truncate each side independently. No fix needed here. Methodology All findings queried live against club.astromatrix.org: tarot cards via /tarot/get?key={name}&type=astrotarot, everything else via /component/GetComponent?ComponentName={name}&Category={category}. §01 — full sweep, all 56 minor arcana (4 suits × 14 ranks). §02 — full sweep, all 22 major arcana. §03 — targeted sample of 7 components (4 Planet Aspects, 3 Planets in Signs) chosen to cover different planet pairs/placements, not exhaustive — the pattern held on every one tried. §04 — full sweep of the 20 Major Arcana → Court Card references that exist across all 22 major arcana. Re-audit All four findings were re-checked live after the backend update. §01 re-swept clean at 56/56. §02's "regression" reading was corrected by the data owner's explanation and verified against the new source-restriction rule. §03 re-swept 5/7 clean; the 2 remaining are confirmed root-caused, not re-guessed. §04's reduced reference count and asymmetry were confirmed intentional (explicit 1-per-component cap), not sampling error.