Óscar Romero Quincoces

Projects / Products and tools

Auguria

Market analysis in Spanish

In production2026Triarii Consulting
Market overview: indices, session status and the S&P 500 heat map
Figure 1. Market overview: indices, session status and the S&P 500 heat map

Summary

Market dashboards, a factor screener across more than 1,000 assets, four AI agents and a daily closing briefing by web and email. A deterministic filter blocks any buy or sell wording. I built it on my own: about 1,070 commits in five months and around 900 tests.

Next.js, Supabase and a FastAPI service with self-hosted FinBERT, over a cascade of six LLM providers.

What it does

Auguria brings global markets together in one place, in Spanish, and explains them in plain language. It never tells anyone to buy or sell.

  • Markets: the session handover from Asia to Europe to the US, heat maps of the S&P 500 and the IBEX 35, and market breadth.
  • Assets: candlestick charts with indicators, dividends, splits, insider trades, the options chain and price alerts.
  • Macro and screener: FRED and Eurostat data, the yield curve, COT positioning, and a factor screener over more than 1,000 assets (value, quality, solvency and momentum).
  • AI: news, technical, fundamental and macro agents, plus a closing briefing published on the web and sent by email.

How it's built

Market data is never fetched on a user's visit. A scheduled job fills a cache in Postgres through a Python data service, and the pages only read from it. Every figure declares whether it is official, derived or a proxy, and how fresh it really is.

Every call to a language model goes through one function: a fixed cascade of six providers with a bounded queue, retries and health checks. A truncated answer counts as a failure and is never cached. News sentiment and classification run on my own FinBERT and mDeBERTa services; if they go down, the feed keeps working without tags. A deterministic filter rewrites any buy or sell wording in the AI output, and the legal notice is a fixed string in the code that never goes through the model.

Where it stands

It is live at auguria.es, on seven services on Railway. I built it on my own: about 1,070 commits between May and October 2026, around 900 tests and CI on every commit. An encrypted daily backup is checked by an automatic restore drill.

The rule I care most about: a failure must never look like missing data. Every route returns the same error fields, so a broken source shows up as broken, not as an empty chart.

Figures

An asset page: candlestick chart with events and indicators, and the tabs of the technical, fundamental and news agents
Figure 2. An asset page: candlestick chart with events and indicators, and the tabs of the technical, fundamental and news agents
The public closing briefing, with the day's key charts
Figure 3. The public closing briefing, with the day's key charts
Factor screener across more than 1,000 assets
Figure 4. Factor screener across more than 1,000 assets
The news, technical, fundamental and macro agents
Figure 5. The news, technical, fundamental and macro agents

Built with

Next.js 15React 19TypeScriptSupabase (Postgres, Auth, RLS)Python · FastAPIFinBERTmDeBERTa-v3n8nStripeRailway