Как мы считаем
Ниже собрано всё, что можно перепроверить: чем считаются положения планет, откуда берётся часовой пояс места рождения, что происходит с отчётом перед отправкой и где проходит граница метода.
У каждого утверждения на этой странице указан файл или скрипт, которым его можно проверить. Утверждения без такого подтверждения сюда не попадают — и одно такое мы отсюда убрали, об этом ниже честно написано.
Положения планет
Астрономия в наших расчётах не самодельная. Положения считает та же библиотека, на которой работает профессиональное астрологическое ПО, и результат можно сверить с любым планетарием.
Положения планет считает библиотека astronomy-engine — та же астрономия, что у профессионального астрологического ПО. В расчёт идут 10 планет, асцендент, середина неба и 12 домов.
Проверить: apps/backend/src/utils/astrology.ts, зависимость astronomy-engine ^2.1.19 в apps/backend/package.json
Аспектов пять: соединение, секстиль, квадрат, трин и оппозиция. Орбисы фиксированные и разные для разных аспектов: 8° у соединения, трина и оппозиции, 7° у квадрата, 6° у секстиля.
Проверить: массив ASPECTS в apps/backend/src/utils/astrology.ts
Часовой пояс места рождения
Это место, где ошибаются чаще всего. Расчёт идёт по всемирному времени, и местное время рождения надо в него перевести. Пояса в России менялись многократно, поэтому сегодняшнее смещение к дате рождения может не иметь никакого отношения.
Часовой пояс берётся не сегодняшний, а тот, что действовал в месте рождения в тот самый день. Историческое смещение берётся из системной базы часовых поясов, а не из таблицы «регион → часы».
Проверить: функции getAllCities() и getBirthUtcOffset() в apps/backend/src/utils/cities.ts
В справочнике 205 городов и 11 разных поясов, от UTC+2 до UTC+12. Отдельно заведены советские названия — Ленинград, Свердловск, Горький, Куйбышев: клиенты, рождённые до 1991 года, пишут город так, как он назывался тогда.
Проверить: массив CITIES в apps/backend/src/utils/cities.ts, пересчёт 19.08.2026
Город нужен ради координат, а не ради названия. Начните вводить и выберите вариант из подсказки — тогда берётся точка из справочника, а не догадка по написанию.
Проверить: подсказки в компоненте CityInput, разрешение города через resolveCity
Движок матрицы судьбы
Матрица считается формулами по дате рождения, без обращений к нейросети. Значит, её можно проверить целиком и на всех датах сразу, что мы и делаем.
Движок сверен с методикой и проходит 33 проверки. Отдельно проверяется, что на всех датах с 1900 по 2030 год ни одна позиция не выходит за диапазон 1–22, а кармический хвост даёт ровно те 26 комбинаций, что опубликованы в методике.
Проверить: прогон packages/shared/scripts/matrix-verify.mjs — 33 строки OK, скрипт падает при расхождении
Скрипт умеет отличать устаревшие записи в базе от новых и пересчитывает сохранённые позиции от даты рождения, а не доверяет тому, что лежит в базе.
Проверить: раздел «распознавание устаревших записей» в том же скрипте
Карта Дизайна человека
Бодиграф — результат астрономического расчёта, а не таблица соответствий по дате. Проверять его удобно тем, что схема бинарна: центр либо закрашен, либо нет.
Движок сверен с каноническими границами системы: ворота 41 начинаются на 02°00′ Водолея — это же момент Rave New Year, на каждую сторону приходится 13 активаций вместе с обоими лунными узлами, а сторона Дизайна отстоит ровно на 88° движения Солнца.
Проверить: прогон apps/backend/src/scripts/hd-selftest.ts — проверки падают при расхождении, код возврата 1
Мы не пишем, что сверяемся со Swiss Ephemeris. Такой сверки у нас нет, и до 19 августа 2026 года эта фраза стояла на сайте без оснований. Мы её сняли и оставили то, что действительно прогоняется скриптом.
Проверить: история правки в комментарии к apps/backend/src/scripts/hd-selftest.ts
Что происходит с отчётом перед отправкой
Между «текст сгенерирован» и «файл ушёл покупателю» стоит автоматический контроль. Он появился после того, как в отчёты просачивались технический мусор и оборванные разделы.
Готовый отчёт проходит проверку по 21 признаку брака: технический мусор в тексте, оборванные и слишком короткие разделы, пустые расчёты, планета не в том знаке, слишком широкий орбис, отсутствие колеса карты, дубли позиций.
Проверить: коды дефектов в apps/backend/src/modules/pdf/pdf-quality-gate.ts
Девять типов дефектов система чинит сама и проверяет заново: пустой раздел, мусор, обещания, неверный род читателя, оборванное предложение, строчная буква в начале, сломанная пунктуация, выдуманный эпитет, не тот дом.
Проверить: коды починки в apps/backend/src/modules/pdf/pdf-self-repair.ts
Не прошедший проверку отчёт клиенту не уходит: он остаётся на модерации, а мы получаем список претензий. Сегодня каждый платный отчёт в любом случае просматривается человеком перед отправкой, поэтому срок выдачи — в течение суток.
Проверить: ветка проверки качества в apps/backend/src/modules/pdf/pdf-delivery.service.ts
Расчёты, где нейросети нет вообще
Два товара в каталоге считаются формулами от начала до конца. Это значит, что две сборки для одних и тех же данных дают одинаковый документ, и его можно проверить построчно.
Лунный календарь на год: 21 страница, 365 строк — по строке на каждый день, 25 новолуний и полнолуний года с точным временем для вашего города. Ни одного обращения к модели.
Проверить: прогон apps/backend/src/scripts/lunar-sample-pdf.ts — сверяет числа с движком Луны и число страниц с карточкой товара
Лунный день начинается не в полночь, а с восхода Луны, поэтому календарь считается для координат вашего города. В календаре, посчитанном по Москве, у жителя другого региона смещается сам номер лунного дня.
Проверить: apps/backend/src/utils/lunar-calendar.ts, разделы восхода и захода в собранном образце
Справочники, на которых стоят тексты
Часть содержания не считается, а написана заранее и лежит в репозитории. Объём этих справочников тоже проверяется подсчётом.
78 карт Таро, у каждой своё описание: 734 тысячи знаков текста в двух справочниках, около 9 400 знаков на карту.
Проверить: packages/shared/src/constants/major-arcana-content.ts (22 записи) и minor-arcana-content.ts (56 записей)
22 аркана матрицы, у каждого описаны сильная и теневая стороны, зона комфорта и самореализация по отдельности. Поэтому одно и то же число в разных позициях читается по-разному.
Проверить: packages/shared/src/constants/matrix-interpretations.ts
Границы метода
Проверяема здесь астрономия и арифметика, а не выводы. Об этом честнее сказать прямо, чем оставить читателя догадываться.
Точность расчёта означает только то, что расчёт сделан правильно. Она ничего не говорит о том, насколько верны интерпретации: научной доказанности выводов в этих системах нет ни у нас, ни у кого-либо ещё.
Проверить: это оценочное утверждение, и мы помечаем его как оценочное
Разбор не является медицинской, психологической, юридической или финансовой помощью, не ставит диагнозов и не называет дат событий. Он описывает устройство карты и даёт формулировки, с которыми можно работать самому.
Проверить: та же оговорка стоит в подвале каждого выдаваемого документа