# nairarate.dev — methodology How these rates are derived, so you can decide whether to trust them. ## Sources Official Central Bank of Nigeria's own JSON endpoints. USD uses the NFEM volume-weighted average, CBN's stated official rate for the day, and carries high/low/close and market turnover. Parallel Every changer quoting the pair via Monierate, aggregated here rather than taken pre-blended. ## Screening Raw provider lists cannot be averaged. Unfiltered, USD returns a mid of 1181 against a true ~1392. Four exclusions: 1. A quote of 0 means "no quote on that side", not a rate of zero. Remittance corridors publish only a send rate — 19 of 65 USD providers. Averaging the zero halves the mid. 2. The central bank itself quotes inside the provider list. Including it drags the parallel rate toward the official one and understates the spread, which is the number this API exists to publish. 3. Reference and institutional feeds are not street rates: one quotes bid equal to ask, another a mechanical 0.50% band around a reference mid. 4. Outright bad data. One feed quoted GBP at 130 against a ~1850 market. Survivors are aggregated by median, not mean — robust to the long tail of outlying changers. A quote more than 3x from the peer median is discarded. provider_count reports the surviving two-sided quotes, so a rate resting on a single provider is visible as such. Official history is screened against neighbouring days, which catches genuine CBN data-entry errors (a Danish krone printed at 198,024 against a ~200 baseline). Two-sided bands are reconciled against the mid, which CBN publishes directly; where a band is incoherent the offending side is dropped and the mid kept. ## Validation Our screened USD/NGN parallel mid, 1392.47, against Monierate's own independently computed composite, 1397.82 — a 0.4% variance between different methodologies on the same market. Full detail: https://nairarate.dev/llms.txt