The "Destiny Matrix" is a numerology-style system that went viral on social media: you enter a birth date and get a chart of numbers from 1 to 22, each one mapped to a Major Arcana card. To be clear up front, it is a tradition and entertainment, not science. But the calculation itself is a nice small algorithm problem, and most online explanations are vague about it. Here is the exact logic I use in a free calculator, in TypeScript.
Step 1: reduce any number to 1..22
Everything is built on one helper. Keep summing the digits until the value is 22 or less. The only special case is zero, which becomes 22 (the last arcana, the Fool).
export function reduceArcana(n: number): number {
let v = Math.abs(Math.trunc(n))
while (v > 22) {
v = String(v).split('').reduce((s, d) => s + Number(d), 0)
}
return v === 0 ? 22 : v
}
export function sumDigits(n: number): number {
return String(Math.abs(Math.trunc(n))).split('').reduce((s, d) => s + Number(d), 0)
}
Note that a value like 19 or 22 is left alone (it is already valid), while 29 becomes 11 and 36 becomes 9.
Step 2: the four main points
Take the day, month and year of birth:
- left point
a=reduceArcana(day) - top point
b=reduceArcana(month) - right point
c=reduceArcana(sumDigits(year)) - bottom point
d=reduceArcana(a + b + c)
The year is handled in two steps: first the digit sum (1990 gives 19), then the reduction to 1..22.
Step 3: center and corners
The center is the sum of all four main points, and the diagonal corners are sums of neighbours:
const center = reduceArcana(a + b + c + d)
const corners = {
topLeft: reduceArcana(a + b),
topRight: reduceArcana(b + c),
bottomRight: reduceArcana(c + d),
bottomLeft: reduceArcana(d + a),
}
A worked example
For 14 March 1990:
| Point | Calculation | Value |
|---|---|---|
| left | 14 | 14 |
| top | 3 | 3 |
| right | 1+9+9+0 = 19 | 19 |
| bottom | 14+3+19 = 36 -> 9 | 9 |
| center | 14+3+19+9 = 45 -> 9 | 9 |
| top-left | 14+3 = 17 | 17 |
| top-right | 3+19 = 22 | 22 |
| bottom-right | 19+9 = 28 -> 10 | 10 |
| bottom-left | 9+14 = 23 -> 5 | 5 |
Edge cases worth a unit test
-
29.11.2000: day 29 reduces to 11, month 11 stays 11, year 2000 gives digit sum 2. Bottom is 6 and center is 3. -
01.01.2000: all small numbers, bottom 4, center 8. - A sum that lands exactly on 22 must stay 22, not become 4. This is the usual bug when people reduce with
% 9. - Never reduce with modulo 9. It turns 18 into 0 and breaks the 10-22 range that the system needs.
Try it
If you just want to see the chart drawn for a date, the destiny matrix calculator uses exactly the functions above and runs fully in the browser, so the birth date never leaves your device.
Top comments (0)