synastry-comparison-1.1.0 accepts two distinct profile identifiers and a literal authorization confirmation. The endpoint authenticates the user, requires both profiles to belong to that account, and loads only the latest complete chart for each profile. A calculation is transient unless the owner explicitly saves it; a saved snapshot binds both exact immutable revisions while excluding birth inputs from its frozen comparison payload.
Deterministic comparison contract
- Filter both charts to the Sun, Moon, Mercury, Venus, Mars, Jupiter, and Saturn.
- Test all 49 Chart B to Chart A pairs for conjunction, sextile, square, trine, or opposition by zodiacal sign.
- For each eligible pair, measure absolute ecliptic deviation from the nearest exact angle.
- Sort contacts by exact deviation, then stable traditional-planet order.
- Orient the SVG to Chart A while preserving Chart B houses and angles only in Chart B evidence.
- Expose both calculation timestamps and versions; assign no fixed-position applying or separating phase.
Historical and product boundary
Ptolemy Tetrabiblos IV.5 directly compares luminary configurations in two nativities. Dorotheus Book II is retained as context for natal marriage judgment and traditional aspect families. Neither source is used to claim that the complete software matrix, its biwheel layout, or a generalized compatibility doctrine is ancient.
Privacy and regression evidence
Regression checks require literal permission confirmation, same-account ownership filters, distinct profile identifiers, two latest complete seven-planet calculations, a 49-pair matrix, deterministic exactness, separate Whole Sign houses, private no-store delivery, and explicit no-score language. Saved-snapshot checks additionally require exact revision binding, payload redaction, SHA-256 evidence, immutable calculation fields, owner-only reopening, and deletion.
