Как мы считаем
Ниже собрано всё, что можно перепроверить: чем считаются положения планет, откуда берётся часовой пояс места рождения, что происходит с отчётом перед отправкой и где проходит граница метода.
У каждого утверждения на этой странице указан файл или скрипт, которым его можно проверить. Утверждения без такого подтверждения сюда не попадают — и одно такое мы отсюда убрали, об этом ниже честно написано.
Обновлено:
Положения планет
Астрономия в наших расчётах не самодельная. Положения считает библиотека astronomy-engine, и результат можно сверить с любым планетарием.
Положения планет считает библиотека 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
Профессиональные астрологические программы обычно считают по Swiss Ephemeris. 1 октября 2026 года мы сверили с ней свой расчёт на 53 условных картах: города России от Москвы до Анадыря, Европа, Индия, Иран, южное полушарие, места за полярным кругом, ночи перевода часов и пояса с получасом. Планеты разошлись с эталоном не больше чем на 18 угловых секунд, Луна — на 2,4 секунды, асцендент, середина неба и границы домов — меньше чем на одну секунду. Знаки, дома и ретроградность планет совпали во всех 53 картах. Сверка разовая: каждый заказ отдельно с эталоном не сверяется. Она проверяет только числа расчёта. Текст разбора проверяется иначе — об этом раздел «Что происходит с отчётом перед отправкой».
Проверить: apps/backend/src/scripts/sverka-swiss/ — набор карт nabor.json, скрипты и отчёт rezultaty/2026-10-01-svod2/otchet.md; эталон — Swiss Ephemeris 2.10.03 через pyswisseph, встроенная теория Moshier, без файлов эфемерид
Чего эта сверка не видит. Историю часовых поясов и мы, и эталон берём из одной базы IANA, поэтому ошибку в самой базе сверка не покажет. Для части зарубежных городов наша программа знает пояса до 1970 года хуже этой базы. В отдельном наборе крайних случаев из 64 карт так разошлась одна: Амстердам, 1930 год, 20 минут. Остальные 63 совпали.
Проверить: раздел «Что сверка не ловит» в apps/backend/src/scripts/sverka-swiss/README.md; карта rv47 в rezultaty/2026-10-01-svod2/otchet-rv.md
Часовой пояс места рождения
Это место, где ошибаются чаще всего. Расчёт идёт по всемирному времени, и местное время рождения надо в него перевести. Пояса в России менялись многократно, поэтому сегодняшнее смещение к дате рождения может не иметь никакого отношения.
Часовой пояс берётся не сегодняшний, а тот, что действовал в месте рождения в сам момент рождения — с точностью до часа и минуты, с учётом ночи перевода часов и поясов с получасом и 45 минутами (Индия, Иран, Непал). Историческое смещение берётся из системной базы часовых поясов, а не из таблицы «регион → часы». Если указанного времени в ночь перевода не было (часы перевели вперёд), берётся смещение до перевода; если оно было дважды (часы перевели назад) — первое, летнее.
Проверить: функция localToUtc в apps/backend/src/utils/moment-rozhdeniya.ts и birthMoment в apps/backend/src/utils/geocode.ts
Города всего мира — 225 тыс. населённых пунктов из открытой базы GeoNames (geonames.org, лицензия CC BY 4.0): у каждого координаты и свой часовой пояс, поэтому Милан считается по поясу Италии, а Екатеринбург — по уральскому. Отдельно заведены советские названия — Ленинград, Свердловск, Горький, Куйбышев: клиенты, рождённые до 1991 года, пишут город так, как он назывался тогда.
Проверить: apps/backend/data/world-cities.tsv.gz и apps/backend/src/utils/world-cities.ts (выгрузка GeoNames 28.09.2026), свой список с советскими названиями — массив CITIES в apps/backend/src/utils/cities.ts
Город нужен ради координат, а не ради названия. Начните вводить и выберите вариант из подсказки — тогда берётся точка из справочника, а не догадка по написанию.
Проверить: подсказки в компоненте 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
До 19 августа 2026 года на сайте стояла фраза о сверке со Swiss Ephemeris, хотя такой сверки тогда не было. Мы её сняли. Настоящую сверку сделали 1 октября 2026 года, она описана в разделе «Положения планет». В неё вошла натальная карта: планеты, асцендент и дома. Расчёт бодиграфа в неё не входил: он пользуется той же библиотекой astronomy-engine, а границы ворот проверяет скрипт из пункта выше.
Проверить: история правки в комментарии к apps/backend/src/scripts/hd-selftest.ts; что именно сверялось — apps/backend/src/scripts/sverka-swiss/README.md
Что происходит с отчётом перед отправкой
Между «текст сгенерирован» и «файл ушёл покупателю» стоит автоматический контроль. Он появился после того, как в отчёты просачивались технический мусор и оборванные разделы. В конце сентября 2026 года к нему добавился сверщик фактов: расчёты были верны, а пересказ расчёта в тексте — не всегда.
Готовый отчёт проходит автоматическую проверку на брак: технический мусор в тексте, оборванные и слишком короткие разделы, пустые расчёты, дубли позиций в таблице, планета не в том знаке или доме. Список признаков меняется вместе с проверкой, поэтому их число мы не называем.
Проверить: коды дефектов уровня blocker в apps/backend/src/modules/pdf/pdf-quality-gate.ts
Сверщик фактов сравнивает фразы готового текста с расчётом из того же документа. Это программа, а не нейросеть: правила записаны кодом, и один и тот же текст всегда получает один и тот же результат. У разных разборов сверяется разное — смотря что в документе посчитано:
- Разбор натальной карты, Полная натальная карта — программа сверяет с расчётом: знаки и дома планет; градусы и аспекты; сколько планет в знаке, стихии и доме, какие дома пустые; фазу Луны при рождении.
- Детская натальная карта — программа сверяет с расчётом: знаки и дома планет; градусы и аспекты; сколько планет в знаке, стихии и доме, какие дома пустые; фазу Луны при рождении.
- Экспресс-вопрос. Знаки планет в ответе автоматика с расчётом не сверяет: таблицы положений в экспресс-ответе нет.
- Прогноз на год — программа сверяет с расчётом: знаки и дома планет вашей натальной карты; градусы и аспекты; в прогнозе — сроки транзитов Юпитера, Сатурна и дальних планет: когда аспект точен и когда планета ретроградна. Остальной прогноз автоматика не сверяет.
- Совместимость (синастрия) — программа сверяет с расчётом: знаки и дома планет в карте каждого из вас; сколько планет в знаке, стихии и доме, какие дома пустые; фазу Луны при рождении.
- Ваш год: соляр — программа сверяет с расчётом: знаки и дома планет натальной и солярной карт; где в году планета ускоряется, а где замедляется.
- Разбор матрицы судьбы, Матрица судьбы, полная расшифровка — программа сверяет с расчётом: есть ли названные арканы в вашей матрице; ещё — названия арканов по их номерам. Позицию аркана автоматика не сверяет.
- Разбор совместимости пары, Совместимость по матрице судьбы — программа сверяет с расчётом: у кого из вас стоит названный аркан; правда ли «общий» аркан есть у обоих; числа центра, талантов, предназначений и кармического хвоста каждого из вас; ещё — названия арканов по их номерам.
- Нумерологический разбор, Нумерологический портрет — программа сверяет с расчётом: есть ли среди ваших чисел те, что текст называет числом жизненного пути, души, судьбы или имени. Какое число на какой позиции, автоматика не сверяет.
- Денежный код, базовый разбор, Финансовый код, полный разбор с циклами по годам — программа сверяет названия арканов по их номерам. Денежное число и позиции матрицы в тексте автоматика с расчётом не сверяет.
- Карта предназначения — программа сверяет названия арканов по их номерам. Позиции предназначения в тексте автоматика с расчётом не сверяет.
- Разбор Дизайна человека, Полный Дизайн человека — программа сверяет с расчётом: тип Дизайна человека, который называет текст.
- Премиум + прогноз на год — программа сверяет с расчётом: знаки и дома планет вашей натальной карты; градусы и аспекты; сколько планет в знаке, стихии и доме, какие дома пустые; фазу Луны при рождении. Прогноз на 12 месяцев автоматика не сверяет.
- Совместимость по Дизайну человека. Тип каждого из пары автоматика с расчётом не сверяет.
Проверить: функция сверитьФакты в apps/backend/src/modules/pdf/sverka-faktov.ts, сверка градусов и аспектов в aspect-check.ts, знаки, дома, числа и тип — в pdf-quality-gate.ts; какие коды стоят за каждой строкой — apps/web/src/lib/avtoproverka.ts
У любого разбора сверщик ищет ещё две вещи: подсказку из задания, которая попала в текст вместо факта, например «(название аркана из расчёта)», и опечатки в терминах: «Скорпий», «сектиль», «аппозиция».
Проверить: найтиПодсказкиЗаглушки и словарь ОПЕЧАТКИ в apps/backend/src/modules/pdf/sverka-faktov.ts
Сверщик видит только то, что можно проверить по таблице расчёта. Смысл толкования он не оценивает. Если из фразы неясно, о ком или о чём она, сверщик молчит: он настроен так, чтобы не останавливать хороший разбор по ошибке. Поэтому ловит он не всё.
Проверить: правило записано в шапке apps/backend/src/modules/pdf/sverka-faktov.ts; оговорки по каждому разбору — в списке выше
Что программа исправляет сама. Без нейросети — только то, где верный вариант один: опечатку в термине по словарю и фразу «родились в полнолуние» или «в новолуние», когда до точной фазы больше суток. Такая фраза меняется на «накануне» или «вскоре после». С остальными находками раздел переписывается: нейросеть получает замечание и текст раздела, потом проверка идёт заново. Таких кругов не больше четырёх. Правка не принимается, если раздел стал заметно короче или ошибок в нём прибавилось. Так исправляются пустой раздел, технический мусор, обещания, неверный род читателя, оборванное предложение, строчная буква в начале, сломанная пунктуация, выдуманный эпитет, не тот дом, не то число в матрице пары и находки сверщика с цитатой.
Проверить: автоправкаТекста в apps/backend/src/modules/pdf/sverka-faktov.ts; круг правки — довестиДоКачества в pdf-generator.ts; коды починки — pdf-self-repair.ts
Что сразу уходит человеку. Неверный знак планеты, ошибку в таблице расчёта и недостающий раздел переписыванием текста не исправить. Такая находка сразу оставляет разбор у редактора. Туда же попадает находка, которая вернулась после правки, и всё, что осталось после четырёх кругов.
Проверить: список НЕ_ЧИНИТСЯ_ТЕКСТОМ и набор ужеПробовали в apps/backend/src/modules/pdf/pdf-generator.ts
Отдельно программа ищет в тексте то, чего в разборе быть не должно: запугивание, обещание результата, медицинские советы, разговоры о порче и «чистке кармы», выдуманных клиентов и выдуманную статистику. Эти находки разбор не останавливают. Редактор видит их пометками в карточке заказа.
Проверить: apps/backend/src/modules/pdf/krasnye-linii.ts — находки идут в замечания (warnings), а не в блокеры
Не прошедший проверку отчёт клиенту не уходит: он остаётся на модерации, а мы получаем список претензий. Прошедший проверку платный разбор сам тоже не уходит. Платный разбор смотрит редактор Велантры и отправляет его кнопкой «Одобрить», а если что-то не так — на пересборку. Поэтому платный отчёт приходит в течение суток. Бесплатные материалы уходят после автоматической проверки, без человека.
Проверить: ветка проверки качества в apps/backend/src/modules/pdf/pdf-delivery.service.ts, «Одобрить» для платных — нуженЧеловек в auto-delivery.ts
Расчёты, где нейросети нет вообще
Два товара в каталоге считаются формулами от начала до конца. Это значит, что две сборки для одних и тех же данных дают одинаковый документ, и его можно проверить построчно.
Лунный календарь на год: 24 страницы, по строке на каждый день выбранного года, все новолуния и полнолуния года с точным временем для вашего города. Ни одного обращения к модели.
Проверить: прогон 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
Границы метода
Проверяема здесь астрономия и арифметика, а не выводы. Об этом честнее сказать прямо, чем оставить читателя догадываться.
Точность расчёта означает только то, что расчёт сделан правильно. Она ничего не говорит о том, насколько верны интерпретации: научной доказанности выводов в этих системах нет ни у нас, ни у кого-либо ещё.
Проверить: это оценочное утверждение, и мы помечаем его как оценочное
Разбор не является медицинской, психологической, юридической или финансовой помощью, не ставит диагнозов и не называет дат событий. Он описывает устройство карты и даёт формулировки, с которыми можно работать самому.
Проверить: та же оговорка стоит в подвале каждого выдаваемого документа