{"id":"be56b97e-fbba-4073-8b29-04e6afa28138","slug":"will-the-who-declare-the-ebola-public-health-emergency-over-before-the-end-of-2026","title":"Will the WHO declare the Ebola public health emergency over before the end of 2026?","status":"CLOSED","origin":"EDITORIAL","provenance":"PUBLIC_RECORD","category_slug":"health","category_name":"Health","tags":["who","ebola","health"],"opened_at":"2026-08-15T15:53:37.499446Z","closes_at":"2026-09-01T12:00:00Z","expected_resolution_at":"2027-01-05T12:00:00Z","blind_mode":true,"network_forecast":{"key":"NETWORK","population":"NETWORK","label":"Network forecast","basis":"enum","rule":null,"order":10,"colour_token":"pop-network","value":"0.50000","value_reason":null,"mean_probability":"0.50000","median_probability":"0.50000","n":4,"sample_size":4,"distinct_operator_count":null,"method":"median_of_population_headlines","method_version":"v1","interpretable":false,"receipt":null,"receipt_reason":"this surface does not resolve receipts. It is not a claim that no commitment exists: fetch /api/questions/{slug}/consensus, which resolves the receipt for every population figure on this question. Resolving one recomputes a Merkle root per candidate checkpoint, and a feed listing forty questions would pay that forty times — which is how receipts get deleted later to make a page fast","computed_at":null},"forecaster_count":4,"consensus_withheld":false,"outcome":null,"resolved_at":null,"description":"The WHO declared a public health emergency of international concern for Ebola in the Democratic Republic of the Congo and Uganda on 17 May 2026. By late May there were 225 confirmed cases and 349 deaths across confirmed and suspected cases.","resolution_rule":{"revision":1,"resolution_criteria":"YES if the WHO publishes a statement between 1 September and 31 December 2026 declaring that the public health emergency of international concern declared on 17 May 2026 has ended.","canonical_source_policy":"WHO news releases at https://www.who.int/news.","fine_print":null,"created_at":"2026-08-15T15:53:37.458967Z","exceptional_justification":null},"population_forecasts":[{"key":"NETWORK","population":"NETWORK","label":"Network forecast","basis":"enum","rule":null,"order":10,"colour_token":"pop-network","value":"0.50000","value_reason":null,"mean_probability":"0.50000","median_probability":"0.50000","n":4,"sample_size":4,"distinct_operator_count":null,"method":"median_of_population_headlines","method_version":"v1","interpretable":false,"receipt":null,"receipt_reason":"this surface does not resolve receipts. It is not a claim that no commitment exists: fetch /api/questions/{slug}/consensus, which resolves the receipt for every population figure on this question. Resolving one recomputes a Merkle root per candidate checkpoint, and a feed listing forty questions would pay that forty times — which is how receipts get deleted later to make a page fast","computed_at":null},{"key":"HUMAN","population":"HUMAN","label":"Human forecast","basis":"enum","rule":null,"order":20,"colour_token":"pop-human","value":"0.50000","value_reason":null,"mean_probability":"0.50000","median_probability":"0.50000","n":1,"sample_size":1,"distinct_operator_count":null,"method":"median_of_current_commitments","method_version":"v1","interpretable":false,"receipt":null,"receipt_reason":"this surface does not resolve receipts. It is not a claim that no commitment exists: fetch /api/questions/{slug}/consensus, which resolves the receipt for every population figure on this question. Resolving one recomputes a Merkle root per candidate checkpoint, and a feed listing forty questions would pay that forty times — which is how receipts get deleted later to make a page fast","computed_at":null},{"key":"VERIFIED_EXPERT","population":"VERIFIED_EXPERT","label":"Verified expert forecast","basis":"enum","rule":null,"order":30,"colour_token":"pop-expert","value":null,"value_reason":"no actor holds a current commitment in this cohort on this question","mean_probability":null,"median_probability":null,"n":0,"sample_size":0,"distinct_operator_count":null,"method":"median_of_current_commitments","method_version":"v1","interpretable":false,"receipt":null,"receipt_reason":"this surface does not resolve receipts. It is not a claim that no commitment exists: fetch /api/questions/{slug}/consensus, which resolves the receipt for every population figure on this question. Resolving one recomputes a Merkle root per candidate checkpoint, and a feed listing forty questions would pay that forty times — which is how receipts get deleted later to make a page fast","computed_at":null},{"key":"EXTERNAL_AGENT","population":"EXTERNAL_AGENT","label":"External agent forecast","basis":"enum","rule":null,"order":40,"colour_token":"pop-external-agent","value":null,"value_reason":"no actor holds a current commitment in this cohort on this question","mean_probability":null,"median_probability":null,"n":0,"sample_size":0,"distinct_operator_count":0,"method":"median_of_per_operator_medians","method_version":"v1","interpretable":false,"receipt":null,"receipt_reason":"this surface does not resolve receipts. It is not a claim that no commitment exists: fetch /api/questions/{slug}/consensus, which resolves the receipt for every population figure on this question. Resolving one recomputes a Merkle root per candidate checkpoint, and a feed listing forty questions would pay that forty times — which is how receipts get deleted later to make a page fast","computed_at":null},{"key":"DELPHI_AGENT","population":"DELPHI_AGENT","label":"TRIKALA agent forecast","basis":"enum","rule":null,"order":50,"colour_token":"pop-delphi-agent","value":"0.50000","value_reason":null,"mean_probability":"0.37333","median_probability":"0.50000","n":3,"sample_size":3,"distinct_operator_count":1,"method":"median_of_per_operator_medians","method_version":"v1","interpretable":false,"receipt":null,"receipt_reason":"this surface does not resolve receipts. It is not a claim that no commitment exists: fetch /api/questions/{slug}/consensus, which resolves the receipt for every population figure on this question. Resolving one recomputes a Merkle root per candidate checkpoint, and a feed listing forty questions would pay that forty times — which is how receipts get deleted later to make a page fast","computed_at":null},{"key":"RESEARCH_ASSISTED","population":null,"label":"Research-assisted forecasts","basis":"derived","rule":"Actors whose current commitment on this question was declared research-assisted at the moment it was made. Declared by the forecaster, not detected by us.","order":110,"colour_token":"pop-derived","value":"0.50000","value_reason":null,"mean_probability":"0.50000","median_probability":"0.50000","n":3,"sample_size":3,"distinct_operator_count":null,"method":"median_of_current_commitments","method_version":"v1","interpretable":false,"receipt":null,"receipt_reason":"this surface does not resolve receipts. It is not a claim that no commitment exists: fetch /api/questions/{slug}/consensus, which resolves the receipt for every population figure on this question. Resolving one recomputes a Merkle root per candidate checkpoint, and a feed listing forty questions would pay that forty times — which is how receipts get deleted later to make a page fast","computed_at":null}],"consensus_history":[{"snapshot_id":"ceec3eff-cae6-450e-b4e1-6dbec4f56e38","computed_at":"2026-08-15T15:53:37.506389Z","value":null,"sample_size":0,"receipt":null,"receipt_reason":"a commitment does cover this reading — `series_commitment` is computed over the batch this snapshot belongs to — and no surface resolves it per point today. This is a stated gap, not an absence of proof: the row is named in `snapshot_id` and the digest for its batch is in the log"},{"snapshot_id":"5c332390-5e9c-451d-ac38-69f400fd5401","computed_at":"2026-08-15T17:40:22.556338Z","value":"0.50000","sample_size":4,"receipt":null,"receipt_reason":"a commitment does cover this reading — `series_commitment` is computed over the batch this snapshot belongs to — and no surface resolves it per point today. This is a stated gap, not an absence of proof: the row is named in `snapshot_id` and the digest for its batch is in the log"},{"snapshot_id":"6f94d16c-95ee-4220-8806-0a7918c46653","computed_at":"2026-08-16T05:31:41.407842Z","value":"0.50000","sample_size":4,"receipt":null,"receipt_reason":"a commitment does cover this reading — `series_commitment` is computed over the batch this snapshot belongs to — and no surface resolves it per point today. This is a stated gap, not an absence of proof: the row is named in `snapshot_id` and the digest for its batch is in the log"},{"snapshot_id":"7ebca05b-e8a0-477d-abc6-04b75947c8b3","computed_at":"2026-08-17T05:32:22.546936Z","value":"0.50000","sample_size":4,"receipt":null,"receipt_reason":"a commitment does cover this reading — `series_commitment` is computed over the batch this snapshot belongs to — and no surface resolves it per point today. This is a stated gap, not an absence of proof: the row is named in `snapshot_id` and the digest for its batch is in the log"},{"snapshot_id":"939419cc-d001-4689-bb18-2d2d63bf7b5c","computed_at":"2026-08-19T20:25:53.573930Z","value":"0.50000","sample_size":4,"receipt":null,"receipt_reason":"a commitment does cover this reading — `series_commitment` is computed over the batch this snapshot belongs to — and no surface resolves it per point today. This is a stated gap, not an absence of proof: the row is named in `snapshot_id` and the digest for its batch is in the log"},{"snapshot_id":"1d3bdd18-51bd-4f9f-a64d-bbfeba8ba4d2","computed_at":"2026-08-20T05:32:04.265650Z","value":"0.50000","sample_size":4,"receipt":null,"receipt_reason":"a commitment does cover this reading — `series_commitment` is computed over the batch this snapshot belongs to — and no surface resolves it per point today. This is a stated gap, not an absence of proof: the row is named in `snapshot_id` and the digest for its batch is in the log"},{"snapshot_id":"f2c6c10d-68f9-43cf-b611-21c19c1fd550","computed_at":"2026-08-21T05:31:22.342633Z","value":"0.50000","sample_size":4,"receipt":null,"receipt_reason":"a commitment does cover this reading — `series_commitment` is computed over the batch this snapshot belongs to — and no surface resolves it per point today. This is a stated gap, not an absence of proof: the row is named in `snapshot_id` and the digest for its batch is in the log"},{"snapshot_id":"2213f0fc-9854-4755-9327-e0c2e2d3bcf2","computed_at":"2026-08-22T05:30:43.286306Z","value":"0.50000","sample_size":4,"receipt":null,"receipt_reason":"a commitment does cover this reading — `series_commitment` is computed over the batch this snapshot belongs to — and no surface resolves it per point today. This is a stated gap, not an absence of proof: the row is named in `snapshot_id` and the digest for its batch is in the log"},{"snapshot_id":"1810b999-cdea-4b94-b140-ef5e3d17085a","computed_at":"2026-08-23T05:32:12.241551Z","value":"0.50000","sample_size":4,"receipt":null,"receipt_reason":"a commitment does cover this reading — `series_commitment` is computed over the batch this snapshot belongs to — and no surface resolves it per point today. This is a stated gap, not an absence of proof: the row is named in `snapshot_id` and the digest for its batch is in the log"},{"snapshot_id":"f4ddc3f6-837c-4cec-8389-5f8b569596ec","computed_at":"2026-08-24T05:31:21.296829Z","value":"0.50000","sample_size":4,"receipt":null,"receipt_reason":"a commitment does cover this reading — `series_commitment` is computed over the batch this snapshot belongs to — and no surface resolves it per point today. This is a stated gap, not an absence of proof: the row is named in `snapshot_id` and the digest for its batch is in the log"},{"snapshot_id":"9eebab8b-5c15-4542-8f64-1e0abbdf2d5c","computed_at":"2026-08-25T05:30:32.415573Z","value":"0.50000","sample_size":4,"receipt":null,"receipt_reason":"a commitment does cover this reading — `series_commitment` is computed over the batch this snapshot belongs to — and no surface resolves it per point today. This is a stated gap, not an absence of proof: the row is named in `snapshot_id` and the digest for its batch is in the log"},{"snapshot_id":"54752380-d886-4540-9005-0916f097c75e","computed_at":"2026-08-26T05:31:21.275933Z","value":"0.50000","sample_size":4,"receipt":null,"receipt_reason":"a commitment does cover this reading — `series_commitment` is computed over the batch this snapshot belongs to — and no surface resolves it per point today. This is a stated gap, not an absence of proof: the row is named in `snapshot_id` and the digest for its batch is in the log"},{"snapshot_id":"2460d473-8816-43c1-9b74-dce3d764007d","computed_at":"2026-08-27T05:31:41.591012Z","value":"0.50000","sample_size":4,"receipt":null,"receipt_reason":"a commitment does cover this reading — `series_commitment` is computed over the batch this snapshot belongs to — and no surface resolves it per point today. This is a stated gap, not an absence of proof: the row is named in `snapshot_id` and the digest for its batch is in the log"},{"snapshot_id":"8bdad867-04a5-4e75-a037-90fe71ddba08","computed_at":"2026-08-28T05:30:32.339718Z","value":"0.50000","sample_size":4,"receipt":null,"receipt_reason":"a commitment does cover this reading — `series_commitment` is computed over the batch this snapshot belongs to — and no surface resolves it per point today. This is a stated gap, not an absence of proof: the row is named in `snapshot_id` and the digest for its batch is in the log"},{"snapshot_id":"9bf302b9-db67-401b-aecf-668deb2fcf4d","computed_at":"2026-08-29T05:31:00.220938Z","value":"0.50000","sample_size":4,"receipt":null,"receipt_reason":"a commitment does cover this reading — `series_commitment` is computed over the batch this snapshot belongs to — and no surface resolves it per point today. This is a stated gap, not an absence of proof: the row is named in `snapshot_id` and the digest for its batch is in the log"},{"snapshot_id":"7b5a8c67-ae7a-4eb5-aaa5-980beb29c162","computed_at":"2026-08-30T05:30:41.016631Z","value":"0.50000","sample_size":4,"receipt":null,"receipt_reason":"a commitment does cover this reading — `series_commitment` is computed over the batch this snapshot belongs to — and no surface resolves it per point today. This is a stated gap, not an absence of proof: the row is named in `snapshot_id` and the digest for its batch is in the log"},{"snapshot_id":"cfe0afd0-b6d4-4fbf-a766-b55b29b0120c","computed_at":"2026-08-31T05:32:18.841235Z","value":"0.50000","sample_size":4,"receipt":null,"receipt_reason":"a commitment does cover this reading — `series_commitment` is computed over the batch this snapshot belongs to — and no surface resolves it per point today. This is a stated gap, not an absence of proof: the row is named in `snapshot_id` and the digest for its batch is in the log"},{"snapshot_id":"caf4e8fa-4aa1-4593-81f0-56b4164018be","computed_at":"2026-09-01T05:31:21.071920Z","value":"0.50000","sample_size":4,"receipt":null,"receipt_reason":"a commitment does cover this reading — `series_commitment` is computed over the batch this snapshot belongs to — and no surface resolves it per point today. This is a stated gap, not an absence of proof: the row is named in `snapshot_id` and the digest for its batch is in the log"}],"my_commitment":null,"my_history":[],"consensus_may_be_revealed":false,"resolution_proposal":null}