Methodology
How a figure goes from an NMDPRA PDF onto this page, and what stops it.
The rule
Each number on these pages links to the archived page of the NMDPRA document that it comes from. We do not estimate a figure. We do not copy a figure forward from an earlier month. When NMDPRA does not publish a figure, we show a disclosure gap.
The archive
Two times each month, on the 12th and the 26th, the system collects the public documents of NMDPRA. It reads three sources: the document API of the NMDPRA website, the pages of the website, and the public list of the NMDPRA document storage.
The system keeps each file under its SHA-256 hash and does not overwrite it. When NMDPRA changes a document but keeps its address, the archive keeps the two versions and records the change. The system also sends each document to the Internet Archive, which keeps an independent copy with a date. The system does not collect documents that need a password. It does not collect documents behind a login.
The archive marks a document removed at source only when the two conditions that follow are true:
- At least 4 collections in sequence did not get the document.
- At least 14 days went by since the last download.
During all that time, the NMDPRA servers must be serviceable. A failure during an NMDPRA outage changes nothing.
Period basis
Each figure shows the period that it covers and the basis of that period. The system reads the basis from the label next to the figure in the fact sheet:
- month
- quarter
- year to date
- multi-month average
- point in time
One fact sheet can use different bases. For example, it can give sector supply as an average of nine months, and facility utilisation for one month. The system does not join figures on different bases into one line. It does not make an index or a gap from them.
Extraction and review
A fixed program (a parser) reads each fact sheet. If a fact sheet does not agree with the expected layout, a language model (Claude) reads it. A person must then compare each figure from the language model with the page before the figure is published.
A person must also examine a figure from the parser if one of these conditions is true:
- The figure changes by more than 25% from the month before.
- NMDPRA changed the document at the source.
Validation
The system does these checks at each update. If a check fails, the system does not publish:
- Each figure has a document and a page. The quoted text is on that page, and the value is the value printed there.
- Each change of unit (for example, mmscf/d to bscf/d) is calculated and recorded.
- The three strategic sectors are not more than the domestic supply. The domestic supply is not more than the total supply.
- No index or gap uses figures on different period bases.
Gap definitions
Commentary
A language model writes a draft of the commentary for each edition. It must obey fixed rules: facts come before interpretation, each causal claim has an alternative explanation, and each figure has a citation. A person edits the draft before publication.
Source uptime
The system checks the NMDPRA website and the document storage every six hours. The record is public: source_health.csv.
- Document storage: 99.1% of 113 checks passed
- NMDPRA site: 94.7% of 113 checks passed
Data
- observations.csv: each published figure, with its citation
- gap_metrics.csv · disclosure_gaps.csv: the calculated gaps and the disclosure gaps
- documents.csv: the list of all archived documents, with their hashes
Attribution
The source documents come from the Nigerian Midstream and Downstream Petroleum Regulatory Authority (NMDPRA), nmdpra.gov.ng. Afrindustria is not affiliated with NMDPRA.