changedInput schema / properties / countries / description
Previous value: -"Country codes. PIP identifies economies by ISO3 code (IND, USA, BRA); \"all\" returns every economy it covers. Pass a single code, an array, or one string separated by commas or semicolons. Regional, income-group, and world aggregate codes (WLD, SSF, HIC) are not served by this dataset — query the individual economies instead."New value: +"Country codes: a single code, an array, or one string separated by commas or semicolons. Economies go by ISO3 (IND, USA) or ISO2 (IN, US) code, including those PIP publishes only as model estimates (AFG); \"all\" returns every economy. PIP's aggregates are served too: WLD; the World Bank regions AFE, AFW, EAS, ECS, LCN, MEA, NAC, SAS, SSF; the income groups HIC, LIC, LMIC (or LMC), UMIC (or UMC); and the lending groups IDX (IDA only), IDB or BLND (IDA blend), IBD or IBRD (IBRD only), and REST. Income groups follow the fiscal-year classification PIP's data release was built with — FY2026 (July 2025) for release 20260922 — applied to every year, so membership can differ from the current one worldbank_get_country reports. IDA (IDA total) is rejected because PIP computes no IDA total: ask for IDX and IDB together. Other aggregate codes (SSA, EAP, FCVY, MIC, LMY) are rejected, and welfare_type and reporting_level cannot be combined with an aggregate."
changedInput schema / properties / fill_gaps / description
Previous value: -"When true (the default), any year the surveys do not cover falls back to PIP's own estimate for it instead of being left out — so a single-year query still answers, and a full-history query returns a row per year rather than only the survey years. Those fallback rows carry no inequality data. Set false to return survey-derived rows only, accepting an empty result for years no survey covers."New value: +"When true (the default), any year the surveys do not cover falls back to PIP's own estimate for it instead of being left out — so a single-year query still answers, and a full-history query returns a row per year rather than only the survey years. Those fallback rows carry no inequality data. Set false to return survey-derived rows only, accepting an empty result for years no survey covers and for economies PIP publishes only as model estimates. It also decides what \"MRV\" resolves to, and has no effect on aggregate rows."
changedInput schema / properties / year / description
Previous value: -"Reporting year to return. A four-digit year (2022), \"all\" for the full history, or \"MRV\" for the most recent year available. Omitted behaves as \"all\". PIP coverage starts in 1963 and runs to the current year."New value: +"Reporting year to return. A four-digit year (2022), \"all\" for the full history, or \"MRV\" for the most recent year. Omitted behaves as \"all\". MRV follows fill_gaps: with fill_gaps true each economy resolves to PIP's latest estimate year, and with fill_gaps false to its latest survey year; an aggregate resolves to its newest reporting year. PIP coverage starts in 1963 and ends at the last year of the data release in use; a year outside that span fails with the span named."
changedOutput schema / properties / appliedFilters / properties / countries / description
Previous value: -"Country codes as sent to PIP — arrays and semicolon-separated input are normalized to a comma-joined list, so this shows the value actually queried."New value: +"Codes as queried, comma-joined across economies and aggregates: uppercased and deduplicated, two-character codes resolved to their three-character form (NG → NGA), and WDI group spellings read as PIP's (LMC → LMIC, IDB → BLND, IBD → IBRD). PIP's IDA-only group stays IDX, since IDA means IDA total. Every code here can be sent back as countries and asks for the same economy or group."
changedOutput schema / properties / error / properties / data / properties / reason / description
Previous value: -"Machine-readable failure mode. Declared by this tool: `country_not_found`: PIP does not recognize one or more of the country codes. `invalid_parameter`: PIP rejected the value supplied for a query parameter other than country. `ppp_version_unavailable`: ppp_version names a PPP vintage PIP's current data release is not published at. `upstream_unavailable`: PIP answered with a server error, which an aggregate country code also produces. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `country_not_found`: No economy or aggregate PIP publishes goes by one or more of the codes, including a two-character code the World Bank country listing does not carry. `ambiguous_aggregate`: IDA or its ISO2 code XG names WDI's IDA total, which PIP does not compute. `unserved_aggregate`: An aggregate code this tool does not serve: an FCV or PovcalNet grouping from PIP's regions table (FCVY, SSA, EAP), or a WDI income aggregate PIP computes none for (MIC, LMY). `aggregate_filter_conflict`: welfare_type or reporting_level was set alongside an aggregate code. `invalid_parameter`: PIP rejected the value supplied for a query parameter other than country. `ppp_version_unavailable`: ppp_version names a PPP vintage PIP's current data release is not published at. `upstream_unavailable`: PIP answered with a server error. Other values are possible when a failure originates below the handler."
changedOutput schema / properties / error / properties / data / properties / reason / examples
Previous value: -[
- "country_not_found",
- "invalid_parameter",
- "ppp_version_unavailable",
- "upstream_unavailable"
-]New value: +[
+ "country_not_found",
+ "ambiguous_aggregate",
+ "unserved_aggregate",
+ "aggregate_filter_conflict",
+ "invalid_parameter",
+ "ppp_version_unavailable",
+ "upstream_unavailable"
+]
changedOutput schema / properties / estimates / description
Previous value: -"Poverty and inequality estimates for this page, ordered by country, year, reporting level, then welfare type."New value: +"Poverty and inequality estimates for this page — economies and aggregates in one list, ordered by code, year, reporting level, then welfare type."
changedOutput schema / properties / estimates / items / description
Previous value: -"One country × year × reporting-level × welfare-type estimate."New value: +"One economy × year × reporting-level × welfare-type estimate, or one aggregate × year."
changedOutput schema / properties / estimates / items / properties / countryCode / description
Previous value: -"ISO3 country code."New value: +"ISO3 code of the economy, or the aggregate code (SSF, LIC, WLD) on an aggregate row — IDX for PIP's IDA-only group. Accepted back as countries."
changedOutput schema / properties / estimates / items / properties / countryName / description
Previous value: -"Economy name."New value: +"Economy or aggregate name — \"IDA only\" for IDX, as WDI names it."
changedOutput schema / properties / estimates / items / properties / estimationType / description
Previous value: -"How the row was produced: \"survey\" carries the full inequality block; \"interpolation\", \"extrapolation\", and \"CMD estimation\" are gap-filled and carry none. The last is what PIP publishes for economies it has no survey for at all."New value: +"How the row was produced. On an economy: \"survey\" carries the full inequality block; \"interpolation\", \"extrapolation\", and \"CMD estimation\" are gap-filled and carry none, the last being what PIP publishes for economies it has no survey for at all. On an aggregate: \"actual\", \"nowcast\", or \"projection\"."
addedOutput schema / properties / estimates / items / properties / isAggregate
Added value: +{
+ "description": "True on a PIP aggregate — World, a region, an income group, or a lending group — whose median, distributional block, survey fields, welfareType, and reportingLevel are null.",
+ "type": "boolean"
+}
changedOutput schema / properties / estimates / items / properties / isInterpolated / description
Previous value: -"True on the interpolated and extrapolated rows. Read estimationType instead of relying on this alone — a \"CMD estimation\" row is also gap-filled but reports false here."New value: +"True on the interpolated and extrapolated rows. Read estimationType instead of relying on this alone — a \"CMD estimation\" row is also gap-filled but reports false here. Null on aggregate rows."
changedOutput schema / properties / estimates / items / properties / isInterpolated / type
Previous value: -"boolean"New value: +[
+ "boolean",
+ "null"
+]
changedOutput schema / properties / estimates / items / properties / median / description
Previous value: -"Median daily welfare per person in PPP dollars."New value: +"Median daily welfare per person in PPP dollars. Null on aggregate rows, which PIP publishes without one."
addedOutput schema / properties / estimates / items / properties / popInPoverty
Added value: +{
+ "description": "Number of people below the poverty line, as PIP publishes it on aggregate rows. Null on economy rows, where population × headcount gives it.",
+ "type": [
+ "number",
+ "null"
+ ]
+}
changedOutput schema / properties / estimates / items / properties / regionCode / description
Previous value: -"PIP region code (e.g. SAS, NAC, SSA)."New value: +"PIP region code of the economy (e.g. SAS, NAC, SSF); null on an aggregate row."
changedOutput schema / properties / estimates / items / properties / regionCode / type
Previous value: -"string"New value: +[
+ "string",
+ "null"
+]
changedOutput schema / properties / estimates / items / properties / regionName / description
Previous value: -"PIP region name."New value: +"PIP region name of the economy; null on an aggregate row."
changedOutput schema / properties / estimates / items / properties / regionName / type
Previous value: -"string"New value: +[
+ "string",
+ "null"
+]
changedOutput schema / properties / estimates / items / properties / reportingLevel / description
Previous value: -"Coverage of this estimate: national, urban, or rural."New value: +"Coverage of this estimate: national, urban, or rural. Null on an aggregate row."
changedOutput schema / properties / estimates / items / properties / reportingLevel / type
Previous value: -"string"New value: +[
+ "string",
+ "null"
+]
changedOutput schema / properties / estimates / items / properties / welfareType / description
Previous value: -"Whether the underlying survey measures income or consumption. The two are not directly comparable across economies."New value: +"Whether the underlying survey measures income or consumption. The two are not directly comparable across economies. Null on an aggregate row, which spans both."
changedOutput schema / properties / estimates / items / properties / welfareType / type
Previous value: -"string"New value: +[
+ "string",
+ "null"
+]
changedOutput schema / properties / estimates / items / required
Previous value: -[
- "countryCode",
- "countryName",
- "regionCode",
- "regionName",
- "reportingYear",
- "reportingLevel",
- "welfareType",
- "povertyLine",
- "headcount",
- "povertyGap",
- "povertySeverity",
- "watts",
- "mean",
- "median",
- "gini",
- "mld",
- "polarization",
- "decileShares",
- "population",
- "surveyYear",
- "surveyAcronym",
- "surveyComparability",
- "comparableSpell",
- "estimationType",
- "isInterpolated"
-]New value: +[
+ "countryCode",
+ "countryName",
+ "regionCode",
+ "regionName",
+ "reportingYear",
+ "reportingLevel",
+ "welfareType",
+ "povertyLine",
+ "headcount",
+ "povertyGap",
+ "povertySeverity",
+ "watts",
+ "mean",
+ "median",
+ "gini",
+ "mld",
+ "polarization",
+ "decileShares",
+ "population",
+ "popInPoverty",
+ "surveyYear",
+ "surveyAcronym",
+ "surveyComparability",
+ "comparableSpell",
+ "estimationType",
+ "isInterpolated",
+ "isAggregate"
+]
changedOutput schema / properties / notice / description
Previous value: -"Context for an empty result set, for a page past the end of the results, for a page size reduced to the page cap, or for a result carrying gap-filled rows with no inequality data."New value: +"Context for an empty result set, for a page past the end of the results, for a page size reduced to the page cap, for a result carrying gap-filled or aggregate rows with no inequality data, and for economies fill_gaps false left out."