| Round | Source | Launched | Planned | Approved | Grants | Median grant | Largest grant | Approvals |
|---|---|---|---|---|---|---|---|---|
| 2026 First Standard Allocation | Standard | 13 Jan | $75M | $88.3M | 29 | $2.40M | $12.5M | 19 Jan – 17 Jun |
| Supporting immediate lifesaving needs of the 2026 HNRP | Reserve | 6 Mar | $151M | $150.7M | 10 | $15.50M | $20.0M | 27 Mar – 7 Apr |
1 Purpose and scope
The main report analysed the Ukraine Humanitarian Fund (UHF) from its first allocation in 2019 through the end of 2025, using a one-off extract of the CBPF OData API taken in February 2026. This annex extends the picture to 31 August 2026 and records how the data collection behind it has changed.
Two things make the first eight months of 2026 worth a dedicated annex rather than a footnote. First, the fund approved more money in eight months than in any full calendar year of its existence, almost two thirds of it in a single reserve round financed by one donor, under a new arrangement by which the United States now channels its UN humanitarian funding through OCHA’s pooled funds (Section 7). Second, several of the structural findings of the main report — the $5M ceiling, the exit of UN agencies, the reserve/standard rebalancing moved in 2026. The annex tests each of the main report’s key findings against the new data in Section 10.
Data vintage. All figures are computed from the daily archive snapshot of the CBPF API taken at 04:00 UTC on 1 September 2026, which captures the state of the fund through 31 August. Where a later vintage (6 October 2026) is used to show what happened after the cut-off, this is stated explicitly. Figures for 2026 are year-to-date, not full-year.
2 The year so far in numbers
By 31 August 2026 the UHF had approved 39 grants worth $239.0M to 36 partners. That is already 18% more than the whole of 2025 ($202.6M), which was itself the fund’s record year. All of it came from two allocation rounds:
The round titled “Supporting immediate lifesaving needs of the 2026 HNRP” is the story of the year. It is not a numbered UHF round, it is recorded in the API against a plan label that reads “Temp HRP for US allocations only”, and it distributed $150.7M across just 10 grants in one month (27 March to 7 April). The regular First Standard Allocation, by comparison, took 29 grants and more than three months to place $88.3M.
Show code
by_type <- ukr %>%
filter(AllocationYear >= 2019) %>%
group_by(AllocationYear, OrgType) %>%
summarise(usd = sum(Budget), .groups = "drop") %>%
mutate(OrgType = factor(OrgType, levels = c("UN Agency", "INGO", "NNGO", "Other")))
totals <- by_type %>% group_by(AllocationYear) %>% summarise(usd = sum(usd))
ggplot(by_type, aes(x = factor(AllocationYear), y = usd / 1e6, fill = OrgType)) +
geom_col(width = 0.72) +
geom_text(data = totals, aes(x = factor(AllocationYear), y = usd / 1e6,
label = dollar(usd / 1e6, suffix = "M", accuracy = 1)),
inherit.aes = FALSE, vjust = -0.5, size = 3.4, fontface = "bold") +
annotate("text", x = 8, y = 262, label = "Jan–Aug only", size = 3.2, colour = "grey40", fontface = "italic") +
scale_fill_manual(values = pal_org, name = NULL) +
scale_y_continuous(labels = dollar_format(suffix = "M"), expand = expansion(mult = c(0, 0.12))) +
labs(title = "Eight months of 2026 already exceed every previous UHF year",
subtitle = "Approved budget by allocation year, USD millions",
x = NULL, y = "Approved budget",
caption = "Source: CBPF ProjectSummary, 1 Sept 2026 vintage.")3 Where the money came from
The allocation surge is explained on the contribution side by a single donor. The United States, which had contributed $69M to the UHF in total between 2019 and 2024 and nothing in 2025, pledged $155M on 25 February 2026 (paid 13 March) and a further $180M on 7 August, still unpaid at the cut-off. Together these two pledges are 79% of all 2026 pledges to the fund.
Show code
ggplot(fy, aes(x = factor(FiscalYear), y = pledged / 1e6, fill = donor_group)) +
geom_col(width = 0.72) +
geom_text(data = fy %>% group_by(FiscalYear) %>% summarise(p = sum(pledged)),
aes(x = factor(FiscalYear), y = p / 1e6, label = dollar(p / 1e6, suffix = "M", accuracy = 1)),
inherit.aes = FALSE, vjust = -0.5, size = 3.4, fontface = "bold") +
scale_fill_manual(values = c("United States" = ukr_col, "All other donors" = "#005f73"), name = NULL) +
scale_y_continuous(labels = dollar_format(suffix = "M"), expand = expansion(mult = c(0, 0.12))) +
labs(title = "One donor rebuilt the UHF's funding base in 2026",
subtitle = "Pledged contributions by fiscal year, USD millions (2026 to 31 August)",
x = "Fiscal year", y = "Pledged",
caption = "Source: CBPF Contribution, 1 Sept 2026 vintage. Fiscal-year attribution is the API's.")Total 2026 pledges stand at $422M from 21 donors, of which $242M had been paid in. This is 1.3× the previous record year (2022, $328M) and 3.1× the 2025 total. Excluding the United States, the other twenty donors pledged $87M, which is in line with 2025 rather than a recovery: the Netherlands, the United Kingdom, Germany, Norway and the European Union each gave between $8M and $15M.
A multi-donor fund with a single-donor balance sheet. The main report described a contribution base that was shrinking in absolute terms while the fund’s weight in the CBPF system grew. In 2026 the base is larger than ever but structurally different: 79% of pledged money comes from one government, under its own temporary plan label. This make Donor concentration a major issue than Partner concentration, for the first time ever.
4 The ceiling that moved
The main report’s most distinctive empirical finding was the flat top: the 90th percentile of UHF grant size sat exactly at the $5M standard cap, and seven core partners received grants at or near the cap round after round. In 2026 the distribution no longer looks like that.
| Context | Period | Grants | Median | P90 | Largest | Share above $5M |
|---|---|---|---|---|---|---|
| Other CBPFs | 2022–2025 | 5001 | $0.53M | $1.23M | $29.5M | 0.6% |
| Other CBPFs | 2026 (Jan–Aug) | 457 | $1.18M | $10.99M | $96.0M | 23.4% |
| Ukraine UHF | 2022–2025 | 348 | $1.51M | $5.00M | $12.0M | 6.6% |
| Ukraine UHF | 2026 (Jan–Aug) | 39 | $2.99M | $17.60M | $20.0M | 33.3% |
Thirteen of the 39 grants approved in 2026 exceed $5M; together they account for $187.9M, or 79% of the year’s envelope. Four grants were approved at exactly $20M, to UNHCR, WFP, ACTED and the Ukrainian NGO Team4UA, each for six months of implementation. The 90th percentile has moved from $5.0M to $17.6M.
Show code
strip <- ukr26 %>%
mutate(round = if_else(str_detect(AllocationType, "lifesaving"),
"US-funded reserve round\n(Mar–Apr 2026)",
"First Standard Allocation\n(Jan–Jun 2026)"),
OrgType = factor(OrgType, levels = c("UN Agency", "INGO", "NNGO", "Other")),
label = if_else(Budget >= 1e7 & Budget < 2e7, short_org(OrganizationName), NA_character_))
lab_usd <- function(x) if_else(x >= 1e6, dollar(x / 1e6, suffix = "M", accuracy = 1), dollar(x / 1e3, suffix = "K", accuracy = 1))
ggplot(strip, aes(x = round, y = Budget, colour = OrgType)) +
geom_jitter(width = 0.18, height = 0, size = 3.4, alpha = 0.85) +
geom_hline(yintercept = 5e6, linetype = "dashed", colour = "grey45") +
annotate("text", x = 0.5, y = 5.4e6, label = "$5M standard cap", hjust = 0, size = 3.2, colour = "grey40") +
geom_text_repel(aes(label = label), size = 3, show.legend = FALSE,
max.overlaps = Inf, box.padding = 0.5, point.padding = 0.3, force = 3, seed = 1) +
annotate("label", x = 2, y = 2.75e7, label = "4 × $20M: UNHCR, WFP, ACTED, Team4UA",
size = 3.1, colour = "grey20", fill = "white", label.size = 0) +
scale_colour_manual(values = pal_org, name = NULL) +
scale_x_discrete(expand = expansion(add = 0.75)) +
scale_y_log10(labels = lab_usd, breaks = c(2.5e5, 5e5, 1e6, 2e6, 5e6, 1e7, 2e7),
expand = expansion(mult = c(0.05, 0.12))) +
labs(title = "The $5M cap stopped binding in 2026",
subtitle = "Approved budget per grant (log scale)",
x = NULL, y = "Grant size",
caption = "Source: CBPF ProjectSummary, 1 Sept 2026 vintage.")The step-change is not confined to the US-funded round. The First Standard Allocation also placed three grants above $10M (NRC $12.5M, Team4UA $12.0M, Angels of Salvation $11.0M), so even the regular cycle operated above the historical ceiling. Whether this is a permanent change in the fund’s grant-size policy or a one-off response to a sudden inflow is the open question of 2026; the pipeline for the second half of the year (Section 8) suggests the reserve rounds launched in July and August returned to grants in the $2M–$5M range.
5 Partners: who absorbed the surge
Thirty-six organisations received UHF money in the first eight months of 2026. Of these, 12 belong to the Core-20 identified in the main report (partners active in every year 2022–2024), and that group took 45% of the 2026 envelope. The incumbency pattern therefore survived, but the top of the table has new names: the three largest 2026 recipients are Team4UA ($32.0M), NRC ($29.5M) and Angels of Salvation ($25.0M). Two of the three are Ukrainian NGOs whose first UHF grant dates from 2024.
| Organisation | Type | Grants | 2026 total | Share | First UHF grant | Core-20 |
|---|---|---|---|---|---|---|
| Team4UA | NNGO | 2 | $32.00M | 13.4% | 2024 | |
| NRC | INGO | 2 | $29.50M | 12.3% | 2020 | yes |
| Angels of Salvation | NNGO | 2 | $25.00M | 10.5% | 2024 | |
| UNHCR | UN Agency | 1 | $20.00M | 8.4% | 2020 | yes |
| WFP | UN Agency | 1 | $20.00M | 8.4% | 2022 | |
| ACTED | INGO | 1 | $20.00M | 8.4% | 2020 | yes |
| Right to Protection (R2P) | NNGO | 1 | $13.00M | 5.4% | 2021 | |
| DRC | INGO | 1 | $12.50M | 5.2% | 2020 | yes |
| IOM | UN Agency | 1 | $10.70M | 4.5% | 2020 | |
| Corus International | INGO | 1 | $5.22M | 2.2% | 2023 | |
| ZOA | INGO | 1 | $4.81M | 2.0% | 2022 | yes |
| PUI | INGO | 1 | $4.70M | 2.0% | 2020 | |
| New Way | NNGO | 1 | $3.73M | 1.6% | 2019 | yes |
| Proliska | NNGO | 1 | $3.50M | 1.5% | 2019 | yes |
| Nonviolent Peaceforce | INGO | 1 | $3.00M | 1.3% | 2022 | yes |
Concentration, measured the way the main report measured it, rose with the envelope: the top-5 share is 53% for 2026 against 28% for 2022–2024, and the Herfindahl index 0.076 against 0.029. A ten-grant round of $150M will do that: with so few tickets, each is necessarily large. Four organisations received their first ever UHF grant in 2026 (Save Ukraine, Perspektyva, Pluriton and the Ukrainian Red Cross Society), all for $300K or less and all in the standard allocation, which is in line with the traditional pattern of the CBPF.
5.1 The UN came back
Show code
un <- ukr %>%
filter(AllocationYear >= 2022, OrgType != "Other") %>%
group_by(AllocationYear, OrgType) %>%
summarise(usd = sum(Budget), .groups = "drop") %>%
complete(AllocationYear, OrgType, fill = list(usd = 0))
ggplot(un, aes(x = AllocationYear, y = usd / 1e6, colour = OrgType, group = OrgType)) +
geom_line(linewidth = 1.3) +
geom_point(size = 3.5) +
geom_text(aes(label = dollar(usd / 1e6, suffix = "M", accuracy = 1),
vjust = if_else(OrgType == "NNGO", 2, -1)),
size = 3.1, fontface = "bold", show.legend = FALSE) +
scale_colour_manual(values = pal_org, name = NULL) +
scale_x_continuous(breaks = 2022:2026, labels = c("2022", "2023", "2024", "2025", "2026\n(Jan–Aug)")) +
scale_y_continuous(labels = dollar_format(suffix = "M"), expand = expansion(mult = c(0.05, 0.2))) +
labs(title = "UN agencies went from $0 in 2025 to $51M in 2026",
subtitle = "Approved budget by organisation type, USD millions",
x = NULL, y = NULL,
caption = "Source: CBPF ProjectSummary, 1 Sept 2026 vintage.")The 2024 Annual Report stated that the UN “would no longer be funded unless absolutely necessary”. In 2026 UNHCR, WFP and IOM received $50.7M between them, all inside the US-funded round, where UN agencies were 34% of the money. National NGOs still received more than international NGOs in the standard allocation when counted per grant, but in dollar terms INGOs ($95.8M) edged NNGOs ($92.3M) for the first time since 2024.
5.2 The four partner types, revisited
The main report sorted every UHF partner into four risk profiles: A “born of the war” (founded 2022 or later), B small-base pre-war organisations, C the localisation cohort of Ukrainian NGOs with a pre-2022 record, and D hyperscalers (UN agencies and INGOs with global revenue above $50M). The same rules are applied here to the 2022–2026 partner universe, with the report’s hard-coded Core-20 classes matched on the partners’ legal names.
| Type | 2022–25 total | 2022–25 share | 2026 total | 2026 share | Partners 2022–25 → 2026 | Mean grant 2022–25 → 2026 |
|---|---|---|---|---|---|---|
| A — Born of the war | $52M | 7% | $9M | 4% | 3 → 3 | $1.9M → $3.1M |
| B — Small-base pre-war | $330M | 44% | $99M | 41% | 76 → 20 (+3 new) | $1.6M → $3.9M |
| C — Localisation cohort | $108M | 15% | $18M | 8% | 7 → 3 (+1 new) | $3.0M → $4.6M |
| D — Hyperscalers | $253M | 34% | $113M | 47% | 14 → 6 | $3.5M → $16.1M |
The main report described a steady slide away from the hyperscalers: Type D fell from 53% of the envelope in 2022 to 14% in 2025 while Types B and C grew. Eight months of 2026 reversed it. Type D took 47%, entirely through the US-funded round, where UNHCR, WFP and ACTED received $20M each and NRC, DRC and IOM followed. Type B remains the largest group by headcount but only 20 of its 76 partners from 2022–2025 were funded in 2026, the churning outer ring the main report described. Type C held its share, with Right to Protection taking most of it.
5.2.1 The report’s three “Type A” partners: stable, funded, and sidelined
Through 2025 the three partners the main report labelled Type A were the clearest growth story in the fund: from $6.4M (3%) in 2022 to $19.1M (9%) in 2025, with Posmishka UA reaching cap-sized grants. In 2026 they are stable but sidelined: all three were funded again, but only in the standard allocation at roughly $3M each, none of them received anything from the $150.7M US-funded round, and their share fell to 4%. The daily archive shows all three submitting to the Winter Response reserve round in August and being approved in September, again at $2.8M–$3.3M. The ceiling that lifted for the hyperscalers did not lift for them. As the registry records below show, none of the three was in fact born of the war; they belong with the localisation cohort, which makes their 2026 trajectory a Type C story.
5.2.2 The born-of-the-war partners the report could not yet see
The rules file every partner whose first UHF grant came in 2022 or later as Type B unless its 2022-or-later founding was confirmed, and the confirmed list was written before two organisations mattered in the data. Both meet the Type A definition:
- Team4UA started in 2022 as a civilian humanitarian initiative in Poland (Le Petit Journal Varsovie, 2022). Its first UHF grant came in 2024 ($6.0M), then $2.5M in 2025 and $32.0M in 2026 as lead of the TERA consortium of eleven Ukrainian organisations ($12M in the standard allocation, $20M in the US-funded round). It is the largest UHF recipient of the year.
- Angels of Salvation began as a volunteer evacuation group in February 2022, formed by a founder who fled Sloviansk, and now has more than 600 staff (United Nations Ukraine, 2025). It received $0.25M in 2024, $13.1M in 2025 and $25.0M in 2026 as lead of the LINK consortium ($11M standard, $14M US-funded).
Reclassified, Type A consists of these two organisations alone and holds $57M, or 24% of the 2026 envelope, more than Type C and more than the three partners the report originally placed in the class. Both are consortium leads, so part of that money is sub-granted onward in ways the CBPF data cannot see.
5.2.3 What the registry says
The main report flagged that seven of the eight core Ukrainian NNGOs had no public pre-war revenue figure: every Ukrainian charity files annual financial statements with the state registry (ЄДРПОУ), the Ukrainian Charity Forum publishes a “TOP-100+” ranking of the largest funds compiled from those filings, and two of the organisations discussed here publish their own reports. The records, with revenue in UAH millions, are summarised below (Posmishka UA, 2025; Team4UA, 2026; YouControl, 2026; Асоціація благодійників України, 2025; Асоціація благодійників України & Аналітичний центр NOVI, 2026; Єдиний державний реєстр юридичних осіб, 2026a, 2026b; Янголи Спасіння, 2026).
| Organisation | ЄДРПОУ | Registered | 2022 | 2023 | 2024 | 2025 | Staff 2025 | Own reporting |
|---|---|---|---|---|---|---|---|---|
| Angels of Salvation (Dnipro) | 44711501 | 18 Apr 2022 | 21.5 | 363.3 | 736.9 | 960.5 | 185 | Narrative annual reports 2022–23, 2024, 2025; tax forms; no audit opinion |
| Team4UA (Kyiv) | 44770525 | 11 May 2022 | 39.2 | 73.1 | 42.1 | 165.2 | 36 | State filings 2023–2025 on its transparency page; no audit opinion |
| Posmishka UA (Zaporizhzhia) | 38664889 | 2013 | — | 363.7 | 622.1 | 614.5 | 27 | One financial report (2023); ranked 24th in Ukraine |
| Unity for the Future (Zaporizhzhia) | 26469763 | 23 Jan 2004 | — | 85.8 | 268.5 | 295.1 | 16 | None found; ranked 43rd |
The dependency ratio the main report could not compute is now measurable. Angels of Salvation’s $25M of 2026 UHF grants is roughly its entire 2025 revenue (≈ $23M), and its own report puts 2025 expenditure at ₴978M with operating costs of about 5.5%. Team4UA’s $32M is about eight times its 2025 revenue (≈ $4M) and thirty times its 2024 revenue; an organisation with 36 staff is the fund’s largest partner of the year, as lead of an eleven-member consortium. For comparison, Right to Protection filed ₴1.46B (≈ $35M) for 2025 with 376 staff and Proliska ₴727M with 104 staff, so their UHF grants are a fraction of turnover.
The records are filings, not audits. The ranking and the registry mirror derive from the same state statements, Angels of Salvation reports expenditure (₴813M for 2024) on a different basis from the ₴737M revenue in its filing, Team4UA’s Polish parent foundation (registered March 2022) has no financial filings I could locate, and “11 external audits passed” in a donor-project sense is not a published audited account. None of the four posts one.
6 Sectors: cash first
Show code
clu <- cl %>%
filter(PooledFundName == "Ukraine", AllocationYear >= 2022) %>%
mutate(Cluster = case_when(
Cluster == "Water, Sanitation and Hygiene" ~ "WASH",
Cluster == "Emergency Shelter and NFI" ~ "Shelter & NFI",
Cluster == "Multi-purpose CASH" ~ "Multi-purpose cash",
Cluster == "Camp Coordination / Management" ~ "CCCM",
Cluster == "Coordination and Support Services" ~ "Coordination",
TRUE ~ Cluster)) %>%
group_by(AllocationYear, Cluster) %>%
summarise(usd = sum(ClusterBudget, na.rm = TRUE), .groups = "drop") %>%
group_by(AllocationYear) %>% mutate(share = usd / sum(usd)) %>% ungroup()
keep <- clu %>% group_by(Cluster) %>% summarise(mx = max(share)) %>% filter(mx >= 0.02) %>% pull(Cluster)
clu2 <- clu %>% mutate(Cluster = if_else(Cluster %in% keep, Cluster, "Other")) %>%
group_by(AllocationYear, Cluster) %>% summarise(usd = sum(usd), share = sum(share), .groups = "drop")
ord <- clu2 %>% filter(AllocationYear == 2026) %>% arrange(desc(share)) %>% pull(Cluster)
ord <- c(setdiff(ord, "Other"), setdiff(unique(clu2$Cluster), c(ord, "Other")), "Other")
clu2$Cluster <- factor(clu2$Cluster, levels = rev(ord))
pal_cl <- c("Multi-purpose cash" = "#e76f51", "Protection" = "#005f73", "Shelter & NFI" = "#0a9396",
"Health" = "#e63946", "WASH" = "#94d2bd", "Food Security" = "#ee9b00",
"CCCM" = "#bb3e03", "Coordination" = "#6c757d", "Education" = "#9b2226", "Other" = "#adb5bd")
ggplot(clu2, aes(x = factor(AllocationYear), y = share, fill = Cluster)) +
geom_col(width = 0.72) +
geom_text(aes(label = if_else(share >= 0.06, percent(share, accuracy = 1), "")),
position = position_stack(vjust = 0.5), size = 3, colour = "white", fontface = "bold") +
scale_fill_manual(values = pal_cl, name = NULL, breaks = ord) +
scale_y_continuous(labels = percent_format(), expand = c(0, 0)) +
scale_x_discrete(labels = c("2022", "2023", "2024", "2025", "2026\n(Jan–Aug)")) +
labs(title = "Multi-purpose cash went from 5% to half of the UHF portfolio",
subtitle = "Share of cluster budget by allocation year",
x = NULL, y = NULL,
caption = "Source: CBPF Cluster, 1 Sept 2026 vintage.") +
theme(legend.position = "right")Multi-purpose cash absorbed $117.3M in 2026, 49% of the cluster budget, after running at 3–5% in 2023–2025. That is the signature of the US-funded round: large, fast, six-month cash grants to partners with existing distribution capacity. Shelter, the dominant sector of 2023–2024, fell to 15%.
For the health sector, the focus of the main report, 2026 is the best year in absolute terms since 2022: $20.7M (9% of the portfolio), against $13.6M in 2025 and $8.3M in 2024. The fund also launched a dedicated $10M health reserve round for Khersonska oblast on 10 August (Section 8), the first sector-specific UHF reserve allocation in the dataset.
6.1 Cash and the health specialists: what the allocation papers say
Two features of the 2026 sector picture deserve a closer look.
6.1.1 The cash detour
The return of multi-purpose cash runs against the direction the response had agreed on. The Cash Working Group replaced the blanket coverage of 2022 with a vulnerability-based targeting framework in July 2025, and the 2026 response plan reframes humanitarian cash as “Unified Cash Transfers” meant to complement the government’s social-protection system, with the government taking over household winter cash in the 0–20 km frontline zone (Ukraine Cash Working Group, 2025; Ukraine Humanitarian Fund, 2026a). The UHF had followed that path: MPCA fell from 17% of its cluster budget in 2022 to 3–5% in 2023–2025 (Section 6).
The US-funded round reversed it. Its strategy paper opens by citing the December 2025 US contribution “with conditions for reform”, funds “lifesaving projects of no longer than 6 months duration” in “joint severity 4 and 5 only”, and states that “cash modalities will be prioritized where market functionality and access allow”; the accompanying US-award guidance defines fundable work as “direct” lifesaving activities reaching individuals and lists cash transfers first among them (OCHA, 2026; Ukraine Humanitarian Fund, 2026b). The result is $117.3M of cash in six-month grants, under the new UCT labels, in the year the sector was handing the modality over. The timing, duration, modality preference, minimum grant size and partner list of that round were all set by the terms of the contribution rather than by the needs analysis in the response plan.
6.1.2 The health specialists
| Year | Partners with health budget | Health-focused | Health budget | Held by health-focused | Health-focused partners |
|---|---|---|---|---|---|
| 2022 | 15 | 6 | $19.0M | 63% | CUAMM, Médicos del Mundo, PUI, ALIMA, UNOPS, WHO |
| 2023 | 12 | 7 | $17.3M | 80% | Light Of Hope, Corus International, CUAMM, Medical Teams International, PUI, UK-Med, WHO |
| 2024 | 9 | 6 | $8.3M | 76% | INTERSOS, Medical Teams International, Airlight, Alliance for Public Health, UK-Med, humedica |
| 2025 | 16 | 8 | $13.6M | 81% | Mission Kharkiv, INTERSOS, IRC, Medical Teams International, PUI, Alliance for Public Health, UK-Med, humedica |
| 2026 (Jan–Aug) | 14 | 2 | $20.7M | 23% | PUI, Alliance for Public Health |
The health envelope in 2026 is the largest since 2022, but it is held differently. In 2022–2025 between six and eight partners each year were health specialists in the sense above; in January–August 2026 there were two. Medical Teams International, UK-Med, humedica and INTERSOS, each funded every year from 2023 or 2024 to 2025, received nothing in the first eight months of 2026, and 77% of the year’s health money sits as a component of multi-sector grants held by IOM, DRC, Team4UA and others. Médicos del Mundo, a mid-sized health specialist of exactly the kind the fund’s management had said it wanted to keep, holds 6 UHF grants worth $3.6M in total, all between 2019 and 2022, and nothing since.
The US-funded round was by invitation, and its eligibility criteria were a low or medium risk rating, previous reserve-grant delivery, having “managed UHF Reserve Grants of greater than $4.5 million”, consortium experience, delivery across the strategic priorities, and “income and absorption capacity”; each invited partner had to submit one multi-sectoral proposal of at least $12.5 million. The invited list had ten names: ACTED, DRC, NRC, Angels of Salvation, Right to Protection, Team4UA, Proliska, UNICEF, WFP and UNHCR (Ukraine Humanitarian Fund, 2026b). A reserve-grant threshold of $4.5M combined with a multi-sector requirement excludes a mid-sized single-sector agency by construction.
The localisation metric compounds the problem. Ukraine’s health facilities are communal non-profit enterprises, autonomous, community-owned and auditable through the national eHealth system, yet the UHF’s localisation targets count only NGOs. A specialised medical NGO that works through those facilities therefore scores badly on the one indicator the fund reports most proudly, and the rational response is to pivot toward general protection or leave, which is what the partner table above shows (Baena, 2026). Counting the facilities would have let the fund pursue localisation and clinical continuity at the same time.
7 Ukraine in the 2026 CBPF system
Show code
g26 <- grants %>%
filter(AllocationYear == 2026) %>%
group_by(PooledFundName) %>%
summarise(n = n(), usd = sum(Budget), .groups = "drop") %>%
mutate(share = usd / sum(usd), is_ukr = PooledFundName == "Ukraine") %>%
arrange(desc(usd))
share_hist <- grants %>%
filter(AllocationYear >= 2022) %>%
group_by(AllocationYear) %>%
summarise(total = sum(Budget), ukr = sum(Budget[is_ukr]), share = ukr / total,
rank = rank(-tapply(Budget, PooledFundName, sum))["Ukraine"], .groups = "drop")
ggplot(g26 %>% slice_head(n = 15),
aes(x = reorder(PooledFundName, usd), y = usd / 1e6, fill = is_ukr)) +
geom_col(width = 0.72) +
geom_text(aes(label = paste0(dollar(usd / 1e6, suffix = "M", accuracy = 1), " (", n, " grants)")),
hjust = -0.08, size = 3.1) +
coord_flip() +
scale_fill_manual(values = c(`TRUE` = ukr_col, `FALSE` = "#94d2bd"), guide = "none") +
scale_y_continuous(labels = dollar_format(suffix = "M"), expand = expansion(mult = c(0, 0.25))) +
labs(title = "Second-largest CBPF in 2026, behind Sudan",
subtitle = paste0("Approved budget, Jan–Aug 2026, top 15 of ", nrow(g26), " funds"),
x = NULL, y = NULL,
caption = "Source: CBPF ProjectSummary, 1 Sept 2026 vintage.")The 2026 surge is not unique to Ukraine. Across the system, approved CBPF budget for January–August 2026 reached $2.2B, more than double the full-year 2025 figure, and the United States pledged $3.5B to 20 pooled funds in fiscal 2026, against nothing in fiscal 2025. Ukraine’s $335M is the largest single-fund share of that money, but because the whole system grew, Ukraine’s share of global CBPF allocations fell to 11% from 19% in 2025. The main report’s “one in five CBPF dollars” line is no longer true, not because Ukraine shrank but because everyone else grew faster.
7.1 A new US modus operandi, visible in the data
The cause is a change in how the United States funds UN humanitarian work. On 29 December 2025 the State Department and OCHA signed a memorandum of understanding under OCHA’s “Humanitarian Reset”, with an initial US pledge of $2 billion to 18 country and crisis pooled funds; the stated intent is to replace project grants to individual agencies with “consolidated and flexible pooled fund vehicles” focused on “hyper-prioritized life-saving activities”, and, over time, to channel all US support to UN humanitarian programmes through OCHA-administered pooled funds (U.S. Department of State, 2025; U.S. Mission to International Organizations in Geneva, 2026). A further $1.8 billion followed on 14 May 2026, taking the commitment to $3.8 billion across 21 countries (U.S. Department of State, 2026b). Devex reports that the money is held in US sub-accounts within each fund and released through reserve allocations, the mechanism normally used for time-critical gaps, with strategy papers requiring delivery within six months and “direct” lifesaving activities only (Devex, 2026; The New Humanitarian, 2026).
The allocation register in the API shows the mechanism directly. Under the plan label “Temp HRP for US allocations only” it files 39 rounds across 20 funds; every one of them is a reserve allocation, 13 were launched in March 2026 alone, and their titles repeat the same vocabulary (“fast-tracked”, “hyper-prioritized”, “life-saving”). Together they had approved $2.07B by 6 October. Their envelopes also cluster at identical amounts across very different crises, which points to centrally set allocations rather than country-level needs assessments.
| Fund | Launched | Source | Approved | Round |
|---|---|---|---|---|
| Sudan | 26 Feb 2026 | Reserve | $194.5M | 2026 - SHF Second Reserve Allocation (Scale up and expand multisect… |
| Ukraine | 6 Mar 2026 | Reserve | $150.7M | Supporting immediate lifesaving needs of the 2026 HNRP |
| DRC | 24 Mar 2026 | Reserve | $145.9M | [RA2-Mars-2026 US] Assistance humanitaire vitale et rapide ciblant … |
| Syria | 26 Mar 2026 | Reserve | $145.9M | Fast-tracking Lifesaving and Protection Assistance in Support of th… |
| Bangladesh (AP-RHPF) | 6 Mar 2026 | Reserve | $145.9M | Fast-tracked support to JRP priortized response |
| Myanmar | 12 Mar 2026 | Reserve | $135.9M | Fast-tracked support to hyper-prioritized HNRP 2026 – US funding |
| Nigeria | 13 Mar 2026 | Reserve | $121.5M | Life-saving, multi-sectoral response to escalating and urgent needs… |
| Haiti (RhPF-LAC) | 25 Mar 2026 | Reserve | $121.5M | Life-saving humanitarian assistance to displaced people and host co… |
| Chad (RhPF-WCA) | 12 Mar 2026 | Reserve | $97.3M | Réponse multisectorielle vitale aux déplacements et à l’insécurité … |
| Colombia (RhPF-LAC) | 9 Apr 2026 | Reserve | $97.2M | Lifesaving response to communities facing severe humanitarian needs… |
| South Sudan | 4 Mar 2026 | Reserve | $97.2M | Provision of life-saving humanitarian assistance to people with urg… |
| Ethiopia | 1 Mar 2026 | Reserve | $97.0M | U.S.-Funded Rapid Life-Saving Response Allocation |
Show code
ggplot(res_sys, aes(x = factor(AllocationYear), y = share)) +
geom_col(width = 0.7, fill = "#005f73") +
geom_text(aes(label = percent(share, accuracy = 1)), vjust = -0.5, size = 3.6, fontface = "bold") +
scale_y_continuous(labels = percent_format(), limits = c(0, 1.08), expand = c(0, 0)) +
scale_x_discrete(labels = c(as.character(2019:2025), "2026\n(Jan–Aug)")) +
labs(title = "Reserve allocations became the system's default channel in 2026",
subtitle = "Reserve share of approved CBPF budget, all pooled funds",
x = NULL, y = NULL,
caption = "Source: CBPF ProjectSummary, 1 Sept 2026 vintage.")The consequence for the reserve/standard balance is system-wide: the reserve share of approved CBPF budget was 56% in 2024 and 49% in 2025, and is 94% for January–August 2026. The UHF’s return to reserve dependence, which Section 10 records as a reversal of the main report’s finding, is therefore not a Ukraine-specific choice but the local expression of a donor-driven shift in the whole modality.
Two further points from the reporting matter for how this annex should be read. First, who received the money differs by fund: Devex’s analysis of the first tranche found about 98% going to UN agencies and INGOs, with WFP alone at $473M, and The New Humanitarian put the international share at roughly 87% across 11 funds, against nearly half of CBPF money reaching local and national organisations in 2024 (Devex, 2026; The New Humanitarian, 2026). Ukraine is an outlier in that respect: national NGOs took 34% of the US-funded round, because the UHF already had a local partner tier operating at cap-sized grants. Second, the headline results circulated for the arrangement (22 million people targeted, allocation processes twice as fast, $1.9 billion in savings) are State Department and OCHA self-reporting with no independent evaluation yet (U.S. Department of State, 2026a); ALNAP argues the concentration of one donor’s money turns OCHA from coordinator into fund manager and gatekeeper, and IARAN notes that a local-share percentage says nothing about who decides (ALNAP, 2026; Maietta, 2026).
8 After the cut-off: what was in motion on 31 August
The approved-project view understates what the fund was doing in the summer. Two reserve rounds had been launched and had closed for proposals by 31 August without a single approval:
| Round | Source | Launched | Proposal deadline | Planned | Approved by 6 Oct | Still under approval 6 Oct |
|---|---|---|---|---|---|---|
| 2026 Second Reserve Allocation (Winter Response) | Reserve | 17 Jul 2026 | 31 Aug 2026 | $50M | 17 grants, $59.0M | 5 grants, $22.0M |
| 2026 Third Reserve Allocation – Continuity and Restoration of Essential Health Services in Khersonska Oblast | Reserve | 10 Aug 2026 | 31 Aug 2026 | $10M | 3 grants, $8.2M | 1 grant, $1.8M |
| 2026 Fourth Reserve Allocation (Agriculture Response) | Reserve | 22 Sep 2026 | 12 Oct 2026 | $20M | 0 grants, $0.0M | 5 grants, $19.5M |
Show code
pv_ukr <- pv %>%
filter(PooledFundName == "Ukraine") %>%
mutate(stage = factor(ProcessStatus,
levels = c("Technical Review", "HC Final Approval", "Disbursement"))) %>%
count(snapshot_date, stage, name = "n") %>%
complete(snapshot_date = seq(min(snapshot_date), max(snapshot_date), by = "day"),
stage, fill = list(n = 0))
ggplot(pv_ukr, aes(x = snapshot_date, y = n, fill = stage)) +
geom_area(alpha = 0.9, colour = "white", linewidth = 0.3) +
geom_vline(xintercept = cutoff, linetype = "dotted", colour = "grey30") +
annotate("text", x = cutoff, y = 27, label = "annex cut-off", hjust = 1.05, size = 3.1, colour = "grey30") +
scale_fill_manual(values = c("Technical Review" = "#94d2bd", "HC Final Approval" = "#0a9396", "Disbursement" = "#005f73"), name = NULL) +
scale_x_date(date_breaks = "1 week", date_labels = "%d %b") +
labs(title = "The summer reserve rounds moved through approval in September",
subtitle = "Ukraine projects in the pipeline endpoint, by stage, daily snapshots 29 Aug – 6 Oct 2026",
x = NULL, y = "Projects in pipeline",
caption = "Source: daily CBPF archive, PipelineProjectSummary vintages.")The daily archive shows how the pipeline endpoint behaves. On 1 September it listed a single Ukraine project; on 2 September 25 appeared at once, all submitted between 31 July and 18 August, i.e. the Winter Response and Kherson health proposals became visible only once they entered technical review, roughly four weeks after submission. Over the following month they moved through HC approval and disbursement and dropped out of the pipeline as they were approved. By 6 October the fund had 59 approved 2026 grants worth $306.1M, a fourth reserve round (agriculture, $20M) had opened, and the winter round had settled at grants of $2M–$5M, back inside the historical range.
Nothing in this section could be reconstructed from a single API extract. The pipeline endpoint only shows the present; the February extract that fed the main report contained one 2026 Ukraine project. This is the concrete payoff of the daily archive described in Section 11.
9 Revisions to the main report’s data
The main report cut its analysis at the end of 2025 using the 19 February 2026 extract. Comparing that extract with the 1 September vintage shows how much the API rewrote in between.
| Year | Projects (Feb) | Projects (Sep) | Budget (Feb) | Budget (Sep) | Delta |
|---|---|---|---|---|---|
| 2022 | 110 | 110 | $192.66M | $192.66M | $0.00M |
| 2023 | 74 | 74 | $183.67M | $183.67M | $0.00M |
| 2024 | 73 | 73 | $164.34M | $164.34M | $0.00M |
| 2025 | 91 | 91 | $201.21M | $202.61M | $1.41M |
| 2026 | 1 | 39 | $0.20M | $238.97M | $238.77M |
For 2019–2024 nothing changed. For 2025, the project count is identical but 2 grants were revised upwards by a combined $1.41M, both with duration extensions; the 2025 total in the main report ($201.2M) should now read $202.6M. Across all Ukraine projects, 120 changed status and 28 changed duration between the two extracts. None of this alters a conclusion of the main report, but it illustrates why a dated vintage, not “the API”, is the citable source.
Two things to know when reusing the files. The snapshot CSVs in Raw-data/ are exported from the API’s JSON and carry ISO 8601 dates; the February CSVs came from the API’s CSV writer and use m/d/Y h:m:s AM strings, so date parsing differs between the two generations. And the Ukraine-only filter documented in the original API guide (poolfundAbbrv=UKR) now returns empty sets on every vo1 endpoint; the archive fetches all funds and filters locally.
10 The main report’s findings, revisited
| Finding | Status at 31 Aug 2026 |
|---|---|
| Heavy reliance on the reserve allocation, correcting in 2025 | Reversed. Reserve share 63% in 2026 after 38% in 2025, driven entirely by the US-funded reserve round; system-wide the reserve share is 94% (Section 7). |
| Larger grants, not fewer partners (median 2.6× the CBPF median) | Amplified. UHF median $2.99M vs $1.18M elsewhere in 2026; partner count per round unchanged. |
| Ceiling-bound distribution: P90 exactly at the $5M cap | No longer holds. P90 $17.6M; 13 grants above $5M including four at $20M. |
| Stable Core-20 captures 55% of the envelope | Weakened. 12 Core-20 members active in 2026 with 45% of the envelope; the two largest recipients joined the fund in 2024. |
| Structural UN exit ($66M → $5M → $0) | Reversed. UNHCR, WFP and IOM received $50.7M, all in the US-funded round. |
| Ukraine = 20% of global CBPF allocations | Diluted. 11% of a system that doubled; still the second-largest fund. |
| Shrinking contribution base | Reversed in volume ($422M pledged), concentrated in source (one donor, 79%). |
The through-line is that the 2026 UHF is a fund responding to a sudden, large, single-source inflow, delivered through a mechanism (reserve allocations under a US-only plan label, six-month lifesaving grants) that the donor, not the fund, defined. Almost every structural characteristic the main report attributed to the fund’s own choices (the cap, the UN exit, the reserve correction, the stable core) bent under it. The characteristics that did survive, the breadth of the partner base and the localisation of the standard allocation, are the ones embedded in the regular allocation cycle rather than in the reserve mechanism. How much of the 2026 shape persists will depend on whether the second US pledge of $180M is programmed through the regular cycle or through another bespoke round.
11 Data collection since the main report
The main report relied on a single manual extract. Since 29 August 2026 the CBPF API is snapshotted automatically every day, and this annex is the first product built on that archive.
| Layer | What | Where |
|---|---|---|
| Daily vintages | Every working vo1 endpoint (8) as gzipped JSON, append-only, since 29 Aug 2026; from 6 Oct 2026 also the vo2 endpoints (24), the vo1 fund master and a weekly logframe-indicator pull | archive/cbpf/YYYY-MM-DD/ on the swarm NFS share |
| Latest-state database | The same seven core tables refreshed transactionally from the day’s archive | Postgres CBPF.raw_data |
| Project snapshot used here | 1 Sept 2026 vintage exported to CSV (*_ALL_20260901_snapshot.csv), daily pipeline vintages 29 Aug – 6 Oct (pipeline-vintages/), vo2 pulls of 6 Oct (vo2/) |
Raw-data/ in the project repository |
Two discoveries during this update widen what can be analysed in future:
- A second API version.
cbpfapi.unocha.org/vo2/odataexposes 28 endpoints, 24 of them working, that the vo1 catalogue does not. They includeAllocationFlowByOrgType(the working replacement for theAllocationFlowendpoint that has returned HTTP 500 since February),AllocationTypes(one row per allocation round with planned envelope, launch and closing dates, approval status and links to the strategy documents, which is what populated the round tables above),ExtendedAllocationDetails,HFUManagementCost,PoolFundBeneficiarySummaryand aLastModifiedstamp. The vo2 register also carries CERF allocations, which opens a pooled-funds-wide view. - The logframe layer is partly back.
LogicalFrameworkIndicatoron vo1, dead in February, now returns 212,000 indicator rows across all projects. The narrative-report and financial-report endpoints remain dead (404/501).
The full endpoint sweep, with status codes, is recorded in API_FINDINGS.md.
Author: Jesus Baena
Annex generated on 2026-10-13 using Quarto. Main report: baena.ai/demos/ukraine-poolfund-report.