The Engine reads and calculates.
It needs Python 3.12 or later. Polars does the analytical work, Python orchestrates it and SQLite stores the result. A YAML contract tells the Engine what each column of an export means.
Coming soon
The Engine reads your exports and writes one SQLite file. Read it with the Reader, Power BI or your own code. Your analysis runs on your machine; access to the result does not depend on a Ghost Citadel cloud account.
01 / Parts
Architecture and dependencies reference · Engine 18.6.0rc590 / Reader 8.11.0rc649. Use the matching bundle’s declared requirements. The measure reference identifies its own snapshot.
The Engine calculates, the SQLite file holds the results and the Reader presents them. The same file also connects your analysis to Power BI and your own code.
It needs Python 3.12 or later. Polars does the analytical work, Python orchestrates it and SQLite stores the result. A YAML contract tells the Engine what each column of an export means.
Every file has the same tables and columns. An analysis that could not run leaves its rows out and its measures empty, with a warning that says why.
A local web app opens the file read-only. It selects published rows and never recomputes a measure the Engine published.
BI tools can query the published result tables. Scripts and language models use the Python API or plain SQL.
02 / Built from
The Engine vendors no third-party code. Every library is installed from its own distribution, under its own licence, within a declared version range. The time-zone data is the one exact pin.
03 / Local computing
A full Engine-and-Reader installation runs on a MacBook Neo or a Raspberry Pi 5. Both run the complete software locally and use the same result format.
See the installation steps04 / Rules
Our earlier design guidance sets out six rules for calculation and publication, including one owner per fact and keeping unknown values distinct from zero. The linked reference has no established release version and does not demonstrate enforcement in a current build.
Read the six rules05 / Release gate
The earlier release-gate reference describes independent recalculation of published figures and blocking release when results disagree. It has no established release version; the reference alone is not evidence that a current build has passed those checks.
What the gate checksThe historical checklist covers rebuilt samples, declared contracts, independent recalculation, adapter fixtures with and without pseudonymisation, and Reader views. Its scope and results need to be established for each release.
Follow one number through the file06 / Security and runtime
The Engine and Reader run on a machine you control. The core serves its own assets and sends no process data to Ghost Citadel. If you configure a hosted AI endpoint, requests to that endpoint are a separate connection under your control.
Earlier security and runtime referenceThe linked historical reference describes local-file restrictions, read-only results, listening-address controls and exit codes. It does not identify a release for those controls. Pseudonymisation is optional: enable ANONYMIZE: true and supply a key. It covers mapped personal identifiers; review free text separately.
07 / Your own AI
Programs and language models read the same published rows a person reads, through the Python API or plain SQL on the result file. Which model you use, where it runs and what it may see are your decisions.
The Python API and the access it grantsSome regions limit how AI may be used on people at work, such as the EU AI Act (Regulation (EU) 2024/1689). A deployment can be modified by region, and that is consulting work.
AI integrations and regional deployments08 / Next
The documentation lists every command, setting and warning. The sample result is a plain SQLite file, and it opens in any SQLite tool today.
Read the documentation Download the sample Ask about your environmentRead how results are produced, how a query selects its analysis scope and how the release checks independently verify calculations.