Pular para o conteúdo
AstroWay/api v2.254.12 · pt
todos os sistemas normais

Precisão dos cálculos

AstroWay API utiliza Swiss Ephemeris (código C oficial da Astrodienst, criadores do astro.com) - o mesmo motor usado por astrólogos profissionais há mais de 30 anos em Solar Fire ($495), Kepler ($995), Astro Gold ($29.99/mês) e Janus. Executamos ele em nossos servidores e oferecemos uma camada de API REST, sem acréscimo de intermediários. Cada um dos endpoints de cálculo básicos é coberto por testes de snapshot de regressão; a precisão do motor é verificada por triangulação com três fontes independentes + contra o NASA 5-Millennium Eclipse Catalog:

  • Posições planetárias: mediana 0.0013", máximo 0.561" vs swetest CGI oficial da Astrodienst (medido em 2026-07-29 em 130 medições). Divisão por corpos abaixo
  • Teste independente com benchmark externo (RoxyAPI, contra NASA JPL Horizons DE441): 210 de 210 dentro da tolerância, mediana 0.11", máximo 0.60"
  • Cuspides das casas Placidus: 0.000" exato
  • Eclipses: < 1 minuto vs NASA Eclipse Catalog
  • Linhas ACG: < 1.5 km no equador vs swetest
  • Nascer/pôr do sol: < 10 segundos vs timeanddate.com
  • VOC da Lua, ingressos, conjunções planetárias: precisão de fração de segundo

Estes números não são uma estimativa, mas o resultado de uma execução. O script pega 10 cartas, distribuídas entre 1900 e 2050, solicita os mesmos momentos no swetest CGI ao vivo da Astrodienst e compara todos os 13 corpos que fornecemos. No total, 130 medições.

CorpoDesvio máximo
Sol, Vênus, Saturno0.001"
Mercúrio0.002"
Nó Verdadeiro0.004"
Marte0.007"
Júpiter0.009"
Lua0.022"
Urano0.083"
Plutão0.097"
Netuno0.223"
Quíron0.561"
Apogee médio (Lilith)0.000"

Mediana de todas as 130 medições: 0.0013".

Anteriormente nesta página havia uma promessa geral de ”< 0,1 arcsec”. As medições de 2026-07-29 mostraram que Netuno, Plutão e Quíron não a mantêm, portanto a promessa foi substituída pelos números reais. Quíron e os planetas externos têm maior desvio porque suas posições são retiradas de um conjunto comprimido de efemérides usado pela nossa compilação.

Pode reproduzir isso por conta própria: api-calc/scripts/accuracy-vs-swetest.mjs faz exatamente essas solicitações e imprime a mesma tabela.

Verifique por conta própria. O script usado para medir os números acima está no repositório público sob licença MIT: astroway/astrology-accuracy-benchmark. Funciona não apenas conosco: um adaptador para qualquer outra API são trinta linhas, então as mesmas 130 medições podem ser executadas contra um concorrente e comparadas. A chave da sandbox é suficiente.

ComponenteValor
BibliotecaSwiss Ephemeris C code (aloistr/swisseph)
Versãoupstream Astrodienst C code
EphemerisDE431 JPL ephemeris (via .se1 files)
FallbackMoshier analytical (para datas fora de 1800-2399)
Compartilhamento de códigoShared @/core de app.astroway.info - um motor, dois transportes

A precisão é verificada por triangulação - comparação com três fontes independentes:

A implementação de referência oficial do Swiss Ephemeris da Astrodienst - as equipes que criaram Astro.com e atendem milhões de astrólogos em todo o mundo. A fonte pública mais autoritativa. Nosso motor é idêntico (0,00–0,07 segundos de arco de desvio).

Biblioteca Python independente usa bindings pyswisseph, independentes da nossa compilação. Confirma que nossa camada de wrapper não distorce os dados.

API remoto do Swiss Ephemeris (sidereal Lahiri). Desvio sistêmico de 8–17 segundos de arco está relacionado com diferentes versões da fórmula de ayanamsa Lahiri, e não com a precisão do motor.

Cartacontra swetest (Astrodienst)contra Kerykeion (Python)contra Prokerala API
Monroe 19260.00”0.19”16.95” (sistêmico)
Diana 19610.00”0.69”8.18” (sistêmico)
Einstein 18790.07”artefato LMT Kerykeion14.96” (sistêmico)

RoxyAPI publica seu próprio benchmark contra NASA JPL Horizons DE441: licença MIT, apenas biblioteca padrão, 21 cartas e 210 posições, e a bandeira --base-url, para direcioná-lo para qualquer outra API. Em seu README fica claramente dito que os limites foram intencionalmente não ajustados ao seu próprio motor, pois o benchmark que oferece para verificar um concorrente deve ser justo.

Nós o direcionamos para nós mesmos, sem alterar nenhum número em seu código. O adaptador renomeia um campo de solicitação e remove uma camada de resposta.

AstroWayRoxyAPI, seu benchmark 2026-09-29
Dentro da tolerância210 z 210210 z 210
Mediana do desvio0.11"0.05"
Máximo0.60"0.78"

Nossa medição de 2026-09-09, custou 21 requisições à API. RoxyAPI, em setembro, mudou para leitura direta do DE440, e sua mediana agora é menor que a nossa; nosso máximo é menor que o deles. A saída ordenada de todas as 210 linhas: CSV.

Cada um dos endpoints de cálculo básicos é coberto por testes de snapshot congelados em 3 cartas de referência (Monroe / Diana / Einstein) = 873 snapshots.

O conjunto de snapshots captura:

  • Erros de mapeamento de dados de entrada: ID incorreto do planeta, UT, sistema de casas
  • Pós-processamento: arredondamento, conversão de unidades, perda de sinal
  • Desvio de padrões: nó médio vs nó verdadeiro, geocêntrico vs topocêntrico
  • Desvio de esquema: validação perdeu forma incorreta
  • Implantação obsoleta: dist de prod não corresponde ao código

Tolerância: 5e-5° (≈0,18 segundos de arco) por padrão para todos os campos numéricos.

Posições dos planetas (trópico, contra swetest)

Seção intitulada “Posições dos planetas (trópico, contra swetest)”
CartaDataDesvio máximo
Marilyn Monroe1926-06-010.00”
Princess Diana1961-07-010.00”
Albert Einstein1879-03-140.07”
Cartadesvio ASCdesvio MCDesvio máximo da cuspide
Monroe0.000”0.000”0.000”
Diana0.000”0.000”0.000”
EventoMáximo NASANosso máximoDesvio
2025-03-14 Total Lunar06:58 UT06:58 UT0.8 min
2025-03-29 Parcial Solar10:47 UT10:47 UT0.5 min
2025-09-07 Total Lunar18:11 UT18:11 UT0.8 min
2025-09-21 Parcial Solar19:41 UT19:42 UT1.0 min
LocalizaçãoDataParâmetroDesvio
London2026-04-15Sunrise0.6 s
London2026-04-15Sunset9 s

Localizações polares (|lat| > 66,5°) retornam automaticamente polarState + aviso de que as horas planetárias usuais não estão definidas.

AstroWay usa orbes variáveis por planeta (regra MÍNIMO de dois planetas), como no ZET9 e astro.com. Orbes padrão (para carta natal):

AspectoSunMoonInnerJupiterOuter
Conjunction12°10°5°8°5°
Sextile6.5°6°5°5°5°
Square10°8°5°7°5°
Trine12°8°5°5°5°
Opposition12°10°5°8°5°

Aspectos menores (36°, 40°, 45°, 72°, 108°, 135°, 144°) estão desativados por padrão. Eles são ativados explicitamente através de ALL_ASPECTS.

Para |lat| > 66,5°, os sistemas Placidus / Koch / Regiomontanus não são matematicamente definidos. Nesses casos, o Swiss Ephemeris retorna automaticamente Porphyry, e nosso API adiciona um aviso:

{
"system": "P",
"warning": "Placidus system is undefined for lat=68.96° (> 66.5°). Swiss Ephemeris fell back to Porphyry..."
}

A regressão é verificada em cada PR via CI:

  • api-calc/tests/endpoints/: 873 snapshots contra as cartas de referência (Monroe / Diana / Einstein) + sinastria / composto / davison
  • .github/workflows/api-accuracy.yml: disparo automático em PR
  • Triangulação contra swetest CGI + Kerykeion: semanal
  • Monitoramento do upstream Swiss Ephemeris via Dependabot

A precisão do motor é metade da confiança. A outra metade é o contrato de saída, que um agente (Claude, ChatGPT, Cursor) pode validar. Nosso servidor MCP não retorna “texto bruto, descubra por conta própria”:

  • structuredContent tipificado. Mais de 600 ferramentas MCP, e a grande maioria delas publica um outputSchema rigoroso - o cliente MCP recebe uma estrutura validada, e não uma string que precisa ser adivinhada.
  • Proteção contra deriva de esquema. O teste CI openapi-example-drift valida cada regression-snapshot contra o esquema gerado a partir do seu próprio exemplo: se a saída real do endpoint divergir do esquema publicado, a build falha. Essa classe de divergências causa o erro MCP -32602 Output validation error.
  • Erros: são erros. A falha de uma ferramenta sempre retorna com a bandeira isError e um código tipificado (UPPER_SNAKE). Nós nunca enviamos ao modelo o stack trace bruto ou caminhos internos do servidor como “dados”.

Ou seja, a integração via MCP é tão previsível quanto uma chamada REST direta: o que está descrito em /openapi.json é o que o instrumento retorna.

  • Datas fora do intervalo (antes de 1800 e depois de 2399): é usado o analítico Moshier, precisão ~0,1” (contra < 0,01” para SWIEPH com arquivos DE431)
  • True Lilith (id=13) vs Mean Lilith (id=12): diferença até 12° - por padrão Mean Lilith (comportamento estável), True Lilith disponível através de planetIds: [13]
  • Topocêntrico vs geocêntrico: por padrão geocêntrico

Para questões de precisão: escreva para support@astroway.info com os dados da carta e o étalon esperado (astro.com ou outra fonte autoritativa).

Útil?
Sugerir edição

Última atualização: