Inspiration
Emerging-market bonds are one of the highest-yielding corners of fixed income, but the data is scattered across expensive terminals, PDFs, and news wires. Most advisors and analysts who hold EM exposure through ETFs have no idea which countries are actually inside their portfolio — or which ones are under stress. We wanted to build the tool we wished we had on our own fixed-income desk: one screen that shows real sovereign risk, looks through the ETF wrapper, and tells you in plain language what changed and why.
What it does
Emergenta scores sovereign stress for 18 emerging markets using a weighted quantitative model (30% Liquidity, 25% Solvency, 20% Currency, 25% Market). It then:
- Looks through ETFs to map the user's real country-by-country exposure across both funds and individual bonds
- Flags opportunities where spread over- or underpays for the risk (Cheap / Fair / Rich / Distressed) using a fitted curve
- Generates AI-powered briefs that summarize what moved in the portfolio and across markets in plain English
- Alerts when a country's risk score crosses a threshold or when currency depreciation is eating the carry
How we built it
- Frontend: React with a component-based dashboard (Portfolio, Markets, Risk Profile screens)
- Data pipeline: Python scripts pulling from FRED, GDELT (news sentiment), and public FX/yield APIs, writing to a centralized JSON that all views consume
- AI layer: Gemini API for the weekly narrative brief on the Home screen; deterministic built-in summaries for Portfolio and Markets screens where speed and consistency matter more than narrative
- Risk model: purely quantitative — four sub-scores normalized to 0–100, combined into an overall score with fixed weights. A fifth "Text signal" layer from news sentiment is shown alongside but intentionally excluded from the formula to keep the score objective
- Relative value: a log-scale fitted curve of spread vs. risk score across all 18 countries, with Cheap/Rich bands at ±25%/20% from the curve
Challenges we ran into
- Data availability. Many of the most informative sources (Bloomberg, Refinitiv) are behind paywalls or require terminal access. We had to design around what free APIs could provide, using estimates (marked with •) where live data wasn't available, and building a completeness filter so countries with insufficient data don't appear in rankings
- Source conflicts. During development, different news outlets reported conflicting FX rates for the same country (Nigeria official vs. street rate, for example). We built source-verification logic and flag stale data with timestamps
- Balancing two user modes. Advisors who hold ETFs and analysts who pick individual sovereign bonds need different views of the same data. Designing one coherent product for both without cluttering either took several design iterations
Accomplishments that we're proud of
- The ETF look-through is real — it decomposes fund holdings into country weights and runs the same risk/return analysis on each slice, something most retail platforms don't offer
- The "Paid for the risk?" scatter plot with a fitted curve gives an instant visual answer to the core fixed-income question: am I getting compensated for the risk I'm taking?
- The AI summary actually reads the dashboard's own data, not generic news — so the narrative matches the numbers the user sees
- Every estimated data point is explicitly marked, and incomplete countries are filtered from opportunity rankings — we chose transparency over polish
What we learned
- Domain knowledge is a real edge at a hackathon. Understanding how fixed-income analysts actually think about carry, duration, and FX risk let us build features that solve real problems instead of generic dashboards
- The hardest part of a data product isn't the model — it's data quality. We spent more time validating sources and handling nulls than building the scoring formula
- AI summaries are most useful when they're constrained to the data the user can already see, not when they hallucinate context the dashboard doesn't have
What's next for Emergenta
- Live API integration with Bloomberg/Refinitiv for institutional-grade data, replacing estimates with real-time feeds
- Alerts via email/Slack when a country crosses a risk band or when FX depreciation exceeds carry on a position
- Historical backtesting — did the model flag stress before past defaults (Sri Lanka 2022, Ghana 2022, Zambia 2020)?
- Expanding coverage to 40+ countries and adding local-currency yield curves
- CDS integration as a fifth quantitative layer in the risk score
Built With
- claude
- python
Log in or sign up for Devpost to join the conversation.