Sources and methods

What every brief is built on, and how.

Thirteen open data sources, one reconciled dataset with a vector store, separate web research, and a method that shows its evidence and its limits. Written for readers who need to trust, reuse or check the results.

Themes used throughout: FundingHumanitarianEconomy and investmentGovernanceRisk and environmentDevelopment needs
In the platform

Data held in Databricks

The core dataset is reconciled, stored and searched inside the platform, so figures are exact and every run is reproducible.

Norwegian development assistance data

Norad open data

What: 47,887 disbursement rows (2015–2025) for 20,707 agreements with 2,952 partners in 146 recipient countries.

How: Processed in Databricks Delta (bronze → silver → gold); gold totals reconcile exactly to the source. Served from Lakebase Postgres.

Updated: Refreshed by an operator run after the source updates (scripts/landscape_sync.py).

Vector store of agreement descriptions

Built from the same data

What: Every agreement's title and description, embedded with Vertex AI text-multilingual-embedding-002 (768 dimensions), so Norwegian and English texts match.

How: pgvector in Lakebase with an HNSW cosine index. A brief searches it with the reader's purpose, restricted to the countries and years in scope.

Updated: Re-embedded when the data is refreshed.

Agent memory

Written by the app

What: Watches, runs, every decision with its reason, briefs and feedback.

How: Lakebase schema landscape_app, next to the data, so each run starts from the last one.

Updated: Written on every run.

Live sources

Fetched from the publisher, stamped with the date

Each card in a brief carries its publisher, scope and retrieval date. A source that fails is shown as missing, never replaced.

SourceWhat it measuresScaleUpdatedHow the app gets itThemes
OECD Creditor Reporting System
OECD
Every official donor's disbursements by recipient and sector, and project-level records with channel and descriptionUSD millions, current pricesYearly
latest year lags about one to two years
Live query per briefFunding
OECD DAC1
OECD
Donors' total official development assistance, including the provisional latest yearUSD millionsYearly
provisional figures each spring
Live, cached per server instanceFunding
OECD mobilised private finance
OECD
Private money mobilised by official development finance, by mechanism (guarantees, syndicated loans, credit lines, direct investment, fund shares, co-financing) and sectorUSD millions; published for provider groups onlyYearlyLive query per briefFundingEconomy and investment
UN OCHA Financial Tracking Service
UN OCHA
Humanitarian response plans: required vs funded, by year and cluster, with the largest donorsUSD millions and % fundedDailyLive query per briefFundingHumanitarian
World Bank World Development Indicators
World Bank
Need and context indicators the planner chooses (education, health, energy access, poverty, FDI inflows …)Indicator unitsYearly
staggered by indicator
Live query per briefDevelopment needsEconomy and investment
Worldwide Governance Indicators
World Bank
Control of corruption, rule of law, regulatory quality, government effectiveness, political stability, voice and accountabilityPercentile rank 0–100, higher is betterYearlyAll countries fetched once per server instanceGovernanceEconomy and investment
IMF World Economic Outlook
IMF
Real GDP growth, inflation and government debt, including projections% and % of GDPTwice a year
April, October
All countries fetched once per server instanceEconomy and investment
INFORM Risk Index
European Commission JRC
Risk that a crisis overwhelms national capacity: hazard and exposure, vulnerability, lack of coping capacity0–10, higher is riskierYearlyCached per instance; a dated copy of the edition if the API is unreachableRisk and environmentHumanitarian
ACAPS INFORM Severity Index
ACAPS
How severe each ongoing crisis is, its drivers and three-month trend0–10MonthlyMonthly edition from the Humanitarian Data Exchange, cachedHumanitarianRisk and environment
ACAPS Humanitarian Access
ACAPS
How hard it is for aid to reach people in each crisis, with its main constraints0–5, higher is harderMonthly editionACAPS API, cachedHumanitarian
UNHCR refugee statistics
UNHCR
Refugees and other displaced people hostedPeopleYearly
with a mid-year update
Live query per briefHumanitarianDevelopment needs
GDACS disaster alerts
UN OCHA and European Commission JRC
Floods, cyclones, earthquakes and droughts of the last twelve months, with location and alert levelGreen, orange, redNear real timeLive; a circuit breaker says 'unavailable', never 'no alerts'Risk and environmentHumanitarian
Web research
Google Search via Gemini grounding
Current reporting on the question, with source linksTextLiveShown in a separate panel; never cited as evidence

Country outlines: Natural Earth (public domain). Each source is used under its publisher's terms.

Which index for which purpose

Different readers lean on different evidence

● main use · ○ useful context. A brief includes whatever applies to its countries; the reader's purpose decides what leads.

NGO programmesFoundations and donorsHumanitarian fundsSocial enterprisesInvestors and companiesResearchers and officials
Who funds what, and through whom (Norwegian data, OECD CRS)●●○●●●
Recent aid cuts and budgets (OECD DAC1)○●●○○●
Private finance and guarantees (OECD mobilisation)○●●●
Humanitarian funding gaps (OCHA FTS)●●●●
Corruption, rule of law, regulation (WGI)○●○●●●
Economic outlook (IMF)○●●●
Crisis risk and severity (INFORM, ACAPS Severity)●●●○●●
Access for aid delivery (ACAPS Access)●○●○○●
Recent disasters (GDACS)●○●●●○
Need indicators (World Development Indicators)●●○●●●
Method

From a question to a checked brief

1 · Scope the question

A planner model turns the reader's words into a scope: countries (ISO3 codes), DAC sector codes, indicators, a semantic search query and a web query. The server validates every code against the official lists and drops anything unknown.

2 · Gather evidence

The applicable sources among 13 are read in parallel, live or from a recent cache. From Lakebase: exact SQL aggregates for the scope (totals by year with trend lines, partners, channels, sub-sectors, policy markers) and the largest agreements. From the vector store: the agreements whose descriptions are closest in meaning to the reader's purpose (the 14 nearest, 8 kept after removing duplicates of the largest agreements). From the OECD: all donors in the country and sector, and other donors' individual projects matched on purpose codes. Context indices cover up to three countries. Each result becomes a numbered evidence card with its publisher, scope and retrieval date.

3 · Identify what matters

Relevance comes from the reader's purpose, not from volume. The planner states the reader's need; the semantic search surfaces agreements that match it in meaning, even with different wording; the composing model is told to lead with what changes the reader's decision, to pair a donor's global trend with its local trend, and to prefer evidence over generalisation.

4 · Write from the evidence only

One Gemini 3.1 Pro call writes the brief from the reader's request and the evidence cards; only the cards count as evidence. Every figure must cite its card. It may not make claims about the reader's own organisation, and dramatic wording is replaced by neutral words.

5 · Check before showing

Automated checks look for each cited number in its evidence cards (allowing honest rounding) and flag those they cannot find, confirm citations point to real cards, flag organisations named in no card, flag one-sided trend claims, and remove invented claims about the reader. The checks are heuristics, not proof: they flag some unsupported claims and miss others, so flags are shown to the reader and a person should still review the brief.

6 · Keep web research apart

A separate search-grounded model reports current news. A comparison step lists where it differs from the brief. It is never mixed into the cited evidence.

7 · Watch for change

For a watch, SQL over the recorded payments (2015–2025, refreshed by an operator) finds the latest-year change in funding, agreements whose first or last recorded payment year changed, and new partners. These are payment records, not contract start or end dates. A decision model weighs these signals with the reader's feedback and last brief, and chooses a new brief, a short update or a hold, with a reason. Scheduled checks run weekly; a reader's explicit check or new feedback can bring one forward. Fixed rules (evidence available, the cadence, an email allowlist) decide whether a brief may be sent at all.

Limitations

What to keep in mind

Stated plainly, so results are used for what they can support.

Demonstration prototype: briefs are generated automatically and may contain errors. Quality-assure against the linked sources before use.