EMpulse

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)

RankCurrencyCountryTrend (7 days)
1KGSKyrgyzstan ↑ up
2AZNAzerbaijan ↑ up
3RUBRussia ↑ up
4UAHUkraine ↑ up
5EGPEgypt → flat
6UZSUzbekistan ↓ down
7TRYTurkey ↓ down
8BHDBahrain → flat
9INRIndia → flat
10PKRPakistan → flat
11JODJordan → flat

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

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

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.