factcircuit
FactCircuit: an auditable claim-and-evidence verification loop with immutable provenance, staged checks, bounded retrieval, and reproducible evaluation.
Forecasts for electricity demand and spot price in Colombia, with uncertainty, explanations and an AI analyst. Built on open data from XM.
DataTypeScript · PythonGitHub @CabranchisOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
VoltIA: forecasting, anomaly detection and an AI analyst for Colombia's electricity market (XM data)
Taken from the repository README
Loading the full README.
Read the full README ↗Energy intelligence for Colombia. Volt-AI ingests the public data of the national power market (XM), forecasts electricity demand and spot price with uncertainty bands, detects anomalies, explains what drives each forecast and offers an AI analyst that answers questions using real data.
Live demo: https://voltia-xi-five.vercel.app/en · Español · For business · Requirements · Architecture · Model card · Decisions · Runbook
/api/v1 with an OpenAPI specification.Rolling-origin backtest, 50 origins on a fixed calendar (21 days apart), 80 % intervals (full tables and method in the model card):
| Target | Against seasonal naive | Against ETS | P10–P90 coverage (nominal 80 %) |
|---|---|---|---|
| Demand, 30 days | MASE 42.3 % lower, wins 46 of 50 origins | MASE 42.7 % lower, wins 45 of 50 | 0.82 |
| Spot price, 14 days | MASE 33.3 % lower, wins 42 of 50 | 14.2 % lower, but the interval of the difference includes zero; clearly better only in the first days | 0.81 |
In plain percentage error (MAPE), the demand forecast misses by 1.9 % on average against 3.4 % for the references, and the price forecast 1 to 3 days ahead misses by 10.7 % against 15.3 % for ETS and 29.8 % for the seasonal-naive reference. Beyond a week the price model stays level with ETS, so the site presents the price as a calibrated range.
| Layer | Technology |
|---|---|
| Pipeline | Python 3.12, uv, pandas, pandera, LightGBM, statsmodels, SHAP, SQLAlchemy |
| Database | PostgreSQL on Neon (free tier); read-only role for the web |
| Web | Next.js 16, TypeScript, Tailwind CSS 4, Apache ECharts |
| AI | Gemini Flash with Flash-Lite fallback through the Vercel AI SDK (optional) |
| Delivery | GitHub Actions (CI and the daily pipeline) and Vercel |
Everything runs on free tiers.
# pipeline (SQLite is used when DATABASE_URL is unset)
cd pipeline && uv sync
uv run voltia backfill && uv run voltia train --predict && uv run voltia anomalies && uv run voltia brief
# web (fixtures when no database is configured)
cd web && npm ci && npm run dev
Deployment, secrets and the daily schedule are in docs/deployment.md; what to do when something breaks is in docs/runbook.md.
pipeline/ Python package: sources, validation, features, models, briefing, CLI
web/ Next.js application and REST API
db/ Versioned SQL migrations
docs/ Requirements, architecture, ADRs, model card, deployment guide, runbook
XM public API, Open-Meteo, NOAA Climate Prediction Center (ONI) and Colombian public holidays. Details and terms are in docs/requirements.md.
MIT. See LICENSE.