Inspiration

Damm's procurement team already drowns in data — Fastmarkets, Expana, OMIP, TTF, ICIS — for four critical commodities: Barley, Aluminium, PET, Energy. The gap isn't data; it's synthesis. Large commodity funds move earlier because they systematically separate signals from decisions. We wanted to build that capability for an industrial buyer in a weekend.

What it does

Cales ingests price history, geopolitical events, supply chain signals, and crop weather, then delivers one clear action — BUY_NOW / WAIT / HEDGE / MONITOR — per material, per strategic profile (cost-saving, supply-security, risk-averse…), with a 6-month forecast corridor and a fully cited explanation. A command-palette UI agent lets analysts type plain English and have the dashboard drive itself.

How we built it

4-layer backend: data ingestion → TimesFM probabilistic forecast → normalized signal engine → weighted decision scoring. A multi-agent crew (FundamentalsAgent + CalaSignalAgent in parallel, then ForecastAgent → DecisionAgent → NarrativeAgent serially) orchestrates the full pipeline. React/TypeScript frontend with a real-time signal ticker, scenario lab, and executive PDF export.

Challenges we ran into

Normalizing heterogeneous inputs — numeric price momentum, Cala.ai text events with severity floats, statistical seasonality — into a single comparable schema. LLM subagents occasionally broke JSON output, requiring fence-stripping and graceful confidence-based degradation to MONITOR. Keeping the forecast as evidence rather than the product was the hardest conceptual discipline.

Accomplishments that we're proud of

The priority-profile demo moment: identical aluminium market data → BUY_NOW for supply-security profile, WAIT for cost-saving. The decision formula is fully transparent and auditable. The UI agent that drives the dashboard from natural language. Executive PDF narrative with inline cited evidence.

What we learned

Explainability is harder than accuracy. Building a system that a procurement director trusts requires showing why, not just what. Signal normalization — collapsing everything to {direction, score, confidence, horizon_days, evidence} — was the architectural decision that made the rest tractable.

What's next for Calés

Live Cala.ai webhook push for real-time signal updates. COT (Commitment of Traders) report integration. Volume recommendations alongside timing. Expanded material coverage beyond Damm's four. Multi-user alert subscriptions when signals cross action thresholds.

Built With

Share this project:

Updates