03 · Data Systems
A macro research pipeline built to reject itself
Gold / XAUUSD macro research · Python, SQLite FTS5, Qdrant, FastAPI
~900K feature grid rows
68 features per row
0 patterns survived validation
LLM-free deterministic extraction
The problem
Macro "signals" are easy to find and easy to fake. Extraction pipelines that lean on LLMs hallucinate structure; backtests without multiple-comparison control promote noise. I wanted a system where the null hypothesis wins by default.
What I decided
- Deterministic extraction pipelines — no LLM in the data path; models only summarize, never construct facts.
- SQLite FTS5 for document retrieval + Qdrant for semantic search — boring, self-hostable, zero vendor lock.
- ~900K × 68 feature grid over real broker feeds, validated with permutation tests + Bonferroni. Result: 0/34 and 0/192 patterns survived. That number is the product.
- Single FastAPI service, API-key auth, localhost-bound — research tooling, not a SaaS vanity deploy.
Macro sourcesnews · data · filings
Deterministic extractorno LLM
FTS5 + Qdrantretrieval layers
900K × 68 gridfeature store
Validation suitepermutation · correction
Outcome: a pipeline whose most valuable output was a rigorous negative: zero validated patterns after full multiple-comparison control. Most portfolios would hide that; this one leads with it, because knowing what is not true is the scarcest skill in quantitative work.