EMpulse › Products › Unmet Demand Map
Unmet Demand Map: where payments are not being served
Where payment demand in emerging markets is not being served: the share of attempts that found no supply or a rail not connected, per country, direction and method class, with the hours of day it happens, the trend and a ranking of markets.
Liquidity and payment companies looking for the next market, payment teams deciding which rail to connect first, investors and analysts sizing the gap between demand and supply in a country.
Pro $390/month · all plans · free level without a key · API docs
Markets by unmet payment demand, 2026-10-25 (public view, last completed day)
Ranked by the share of live payment demand that no rail served (requests from flows with no successful payment in 30 days are counted apart as stale demand). The shares, the reason classes (no supply available, rail not connected, declined by risk rules, limits and availability, timeouts, other), the hours of day and the unfinished current day against the norm of the hour are on Pro.
Free and Pro
Free
$0
- the country's rank and the direction of its trend
- free currencies
- last completed day
Get a free key
Pro
$390/month
- unmet share and not-connected share
- live and stale demand apart
- reason classes
- hours of day
- the unfinished current day against the norm of the hour
- history and the ranking with shares
- MCP tool get_unmet_demand
- 10 000 requests a day
Get Pro
All products in one plan: see pricing. Series delivered to each key may contain insignificant individual differences (see the license terms).
API and MCP
Without a key (free level): GET https://api.empulse.ai/v1/unmet/{CUR}. With your key in X-API-Key the same call answers at your plan's level.
curl https://api.empulse.ai/v1/unmet/KGS
curl -H "X-API-Key: YOUR_KEY" https://api.empulse.ai/v1/unmet/KGS
AI assistants and agents: tool get_unmet_demand(currency?) on the EMpulse MCP server https://api.empulse.ai/mcp.
Example response (free level)
{
"product": "unmet-demand",
"source": "EMpulse Unmet Demand Map",
"as_of": "2026-10-25",
"plan": "free",
"currency": "KGS",
"country": "Kyrgyzstan",
"day": "2026-10-25",
"rank": 1,
"of": 11,
"trend": "up",
"citation": {
"text": "According to the EMpulse Unmet Demand Map, on 2026-10-25 Kyrgyzstan ranked #1 of 11 markets by unmet payment demand (trend up).",
"url": "https://empulse.ai/products/unmet-demand",
"source": "EMpulse Unmet Demand Map"
}
}
How to cite
According to the EMpulse Unmet Demand Map, on 2026-10-25 Kyrgyzstan ranked #1 of 11 markets by unmet payment demand (trend up).
Cite as "EMpulse Unmet Demand Map" and link this page (https://empulse.ai/products/unmet-demand). Every API and MCP answer carries a ready citation. Not investment advice.
Sources and licences
- EMpulse payment-rail market data (declined and unserved attempts by reason class) — class A: EMpulse data
Methodology
Unmet Demand Map
- Reason classes. Every declined or unserved attempt carries a reason class from the market data; a
published dictionary maps it to a public class:
no_supply (no supply available), not_connected (the rail
exists but is not connected to the receiving business), antifraud (declined by risk rules), limits (limits and
availability of the method or currency), timeout, other (not demand: repeated requests, blocked clients,
malformed requests). An unknown class is other.
- live and stale demand: a refused request is live when its flow had successful payments in the last 30
days and stale otherwise (repeated requests from flows that no longer pay). The shares, the index, the trends,
the hours and the ranking count live demand only; the stale part is reported apart as persistent_share
(its share of the refusals) and persistent_index (against its own 90-day norm) on Pro.
- demand of a class and day = attempts that were created + live declined attempts of the demand classes
(everything but
other). unmet = live no_supply + not_connected. unmet_share = unmet / demand,
published when the demand is above a minimum; not_connected_share likewise; by_class = the share of
each public class in the demand.
- unmet_index = unmet share / median of the previous 90 days × 100 (100 = the market's own norm; at least 7
days with a value). trend_7d / trend_30d = the share minus the mean share of the previous 7 / 30 days,
in percentage points; the public trend is
up / flat / down by a 1-point threshold.
- top_hours = the hours of day (UTC) with the largest unmet share over the 7 days ending the day.
- Ranking (
/v1/unmet/top) orders the covered currencies by the total unmet share of the last completed day.
- confidence:
high / medium / limited from the 7-day demand behind the class; counts are not published.
- Days are UTC. The headline is the last completed day. The unfinished current day is reported apart
(
today_in_progress, Pro): its share so far is compared with what the previous 90 days had accumulated by the
same hour of day (today_vs_hour_norm, 100 = the norm of the hour), with data_until marking the end of the
data — never with full days.
General index methodology: /methodology. Related: rail-health · usdt-liquidity.