0 · Abstract, review status & nomenclature
Objective. PortfolioCheck is an asset-level climate and environmental screening system for Ghanaian secured lending. It converts geolocation evidence into six dimensionless prioritisation indices, an overall vulnerability index and a conditional financial sensitivity overlay. This thesis documents the complete chain from input data to output, including assumptions, equations, uncertainty and validation gaps.
Review conclusion. The hazard layer is suitable for screening and due-diligence prioritisation when its evidence and confidence labels are retained. The financial layer is an illustrative, parameterised sensitivity model—not a validated loss model, property valuation or IFRS 9 model—until a bank calibrates it to observed claims, recoveries, defaults and collateral-sale data and commissions independent validation.
Abbreviations and symbols
| Term | Definition |
|---|
| AAL | Average Annual Loss: expected physical damage per year as a share of value. |
| AR6 | Sixth Assessment Report of the Intergovernmental Panel on Climate Change. |
| CDD | Consecutive Dry Days, a drought indicator. |
| CMIP6 | Coupled Model Intercomparison Project Phase 6. |
| DEM / DTM | Digital Elevation Model / bare-earth Digital Terrain Model. |
| DSAS | Digital Shoreline Analysis System. |
| EAD / ECL | Exposure at Default / Expected Credit Loss. |
| IFRS 9 / IFRS S2 | Financial-instruments impairment / climate-disclosure standards. |
| InSAR / SAR | Interferometric / Synthetic Aperture Radar. |
| LGD / LTV / PD | Loss Given Default / Loan-to-Value / Probability of Default. |
| NDVI / VCI | Normalized Difference Vegetation Index / Vegetation Condition Index. |
| NGFS | Network for Greening the Financial System. |
| PCAF | Partnership for Carbon Accounting Financials. |
| PFR / SuDS | Property Flood Resilience / Sustainable Drainage Systems. |
| RFI | Regulated Financial Institution. |
| Rx1day | Annual maximum one-day precipitation. |
| SEED | Deterministic offline screening proxy used when live evidence is unavailable. |
| SLR / SSP | Sea-Level Rise / Shared Socioeconomic Pathway. |
| UHI / WBGT | Urban Heat Island / Wet-Bulb Globe Temperature. |
| s_h / w_h | Normalised score / materiality weight for hazard h. |
Assertion classes
| Class | Meaning | Permitted use |
|---|
| Observed | Sensor, incident or dated-change evidence covering the location. | Risk escalation; loss only with a calibrated vulnerability relationship. |
| Modelled | Physical model or mapped susceptibility at stated resolution. | Screening; loss only after local validation and calibration. |
| Contextual | Proximity, regional publication, planning report or coarse proxy. | Due diligence only; never automatic loss. |
| Assumption | Expert prior or bank-replaceable parameter. | Sensitivity analysis; calibrate before reliance. |
1 · Purpose & scope
PortfolioCheck screens a Ghanaian bank's property / mortgage book for physical climate risk at the level of each individual asset and translates it into the collateral and credit terms a lender and the Bank of Ghana need. It is screening-grade decision-support that feeds, and does not replace, a bank's IFRS 9 / PD-LGD models.
This document is the technical specification. It is generated from the running engine, so the formulas and constants below are exactly those in production.
Deliberate boundaries
- Not a property valuation, an insurance determination, or the bank's IFRS 9 ECL / PD-LGD model.
- Covers PHYSICAL climate risk; transition risk is out of scope.
- Forward figures are scenario estimates, not forecasts.
- Financial constants are illustrative until calibrated to a bank's own loss data.
- Does not constitute or replace an Environmental Impact Assessment / EPA permit (LI 1652, Act 1124).
2 · Processing pipeline
- Ingest — a CSV book (location + exposure + LTV; optional type, adaptations, insurance, construction).
- Geolocate — coordinates, GhanaPostGPS digital address, or geocoded free-text → a point.
- Screen — six hazards scored 0–1 from the location SEED model (+ live engines where enabled).
- Adapt — recorded, evidence-gated adaptation measures reduce the relevant hazard scores.
- Composite — combine the six hazards into a 0–100 vulnerability score and a band.
- Money — AAL → collateral repricing → climate ECL overlay (PD × LGD × EAD).
- Project — pull each asset through IPCC AR6 / NGFS scenarios and horizons.
- Output — dashboard, board report, BoG semi-annual return, supervisor aggregation.
3 · Hazard model
Six hazards are scored 0–1 per asset. The SEED model is a transparent, deterministic proxy keyed to Ghana's physical geography (flood basins, the coastal-erosion belt, river lines, urban-heat and savanna-drought gradients, protected/Ramsar land). LIVE mode overlays the SafeGround / FloodGuard engines and climate reanalysis.
Mode disclosure for the demonstration. The engine mode is shown in the dashboard header and retained in the assessment provenance. Institution workbooks with more than 80 assets remain in SEED mode; therefore the 200-asset Ecobank demonstration is a deterministic screening demonstration, not a live satellite assessment.
3.0 Engines, execution modes and fallback behaviour
| Mode | Execution | Data role | Control / limitation |
|---|
| SEED | PortfolioCheck deterministic offline engine | No external request. Ghana geographic anchors and published-context heuristics are transformed by the exact formulas in section 3.1. | Always available; contextual screening only. |
| LIVE — SafeGround | POST /screen at the asset coordinate | Water, wetland, river, protected-area, contamination, illegal-mining and coastal-context checks assembled from vector and raster layers. | Layer-specific traffic lights are ordinal; missing layers do not become green. |
| LIVE — FloodGuard | Point endpoints and polygon endpoints for agricultural parcels | Flood susceptibility; observed Sentinel-1 flood; heat; rainfall/drought; crop condition; coastal evidence. Runtime responses retain source, resolution and observation date where supplied. | Overlays SEED layer by layer; an unavailable call leaves that layer explicitly in SEED mode. |
| Workbook demo | Asynchronous LIVE overlay only when the submitted institution has 80 assets or fewer | Books above the live cap remain SEED to protect the connected services. | The 200-asset Ecobank demonstration is SEED, not a live satellite screen. |
SafeGround and FloodGuard are processing and integration engines, not primary datasets. They query or serve the named source layers, apply the documented transformations and return source metadata. PortfolioCheck never treats an unavailable endpoint or absent layer as proof of low risk: that hazard retains its SEED result and the mode remains disclosed.
| Hazard | Composite weight | What it captures |
|---|
| Flood | 0.34 | Pluvial / riverine flood susceptibility (urban basins, drainage). |
| Coastal / sea-level | 0.18 | Coastal erosion & sea-level rise from shoreline proximity + hotspots. |
| Extreme heat | 0.16 | Extreme-heat / thermal stress (latitude + urban-heat-island). |
| Riparian proximity | 0.12 | Proximity to watercourses and their buffers (Buffer Zone Policy 2014). |
| Land / contamination | 0.10 | Protected-area / Ramsar / contamination land constraint. |
| Drought / water stress | 0.10 | Water-stress / dry-spell exposure (savanna north). |
Weights are read live from core.hazards.HAZARD_WEIGHTS and sum to 1.00.
3.1 Exact SEED calculations
SEED scores are deterministic geographic heuristics. They preserve workflow when live services are unavailable, but they are not probabilities, return periods or measured hazard intensities. Distances use the haversine great-circle equation:
d = 2R · asin(sqrt[sin²(Δφ/2) + cos(φ₁)cos(φ₂)sin²(Δλ/2)]), R = 6,371 km
| Hazard | SEED transformation | Scientific status |
|---|
| Flood | Maximum decaying score inside curated urban-basin radii; minimum 0.05; near-coast drainage floor 0.35. | Contextual heuristic; anchors are partly informed by known events. |
| Coastal | Piecewise shoreline-distance baseline plus decaying hotspot context; capped at 0.49. | Context only; excluded from loss unless observed evidence is attached. |
| Heat | 0.25 + 0.60·clamp[(latitude−5)/6] + UHI uplift up to 0.25 within 12 km. | Proxy only; live ERA5 replaces it where available. |
| Riparian | Nearest named-river anchor: 0.85 at ≤0.5 km; 0.55 at ≤2 km; 0.30 at ≤6 km; else 0.08. | Coarse proximity proxy; not an authoritative buffer determination. |
| Land | Maximum decaying score within curated Ramsar/protected/contamination radii; minimum 0.05. | Due-diligence trigger; not title or contamination proof. |
| Drought | 0.08 south of latitude 6.5; then clamp[(latitude−6.5)/4]. | Climate-zone proxy; live rainfall/vegetation evidence replaces it. |
3.2 Live transformations and evidence gates
| Hazard | Live evidence and transformation | Loss eligibility |
|---|
| Flood | FloodGuard returns its 0–1 susceptibility. SafeGround green/amber/red maps to 0.15/0.45/0.80. Recent Sentinel-1 observed flood floors the score at 0.85. | Susceptibility is a screening prior. Local depth-frequency and vulnerability calibration remain required. |
| Coastal | Observed shoreline retreat floors score at 0.85. Low-lying DEM, proximity, publications and reported defences trigger due diligence. | Only observed retreat or incident evidence currently enters the coastal financial channel. |
| Heat | ERA5 apparent maximum maps as clamp[(T−28)/(46−28)]; durable change floors score at 0.80. | Screening sensitivity only; indoor exposure, occupancy and energy-cost calibration are absent. |
| Riparian | SafeGround river traffic light maps to 0.15/0.45/0.80. | Proximity/legal trigger; flood damage belongs in the flood channel to avoid double counting. |
| Land | Worst protected-area, contamination or galamsey traffic light maps to 0.15/0.45/0.80. | Constraint/remediation sensitivity, not damage probability. |
| Drought | NASA POWER rainfall maps between wet/dry anchors; observed rainfall or NDVI/VCI stress floors score at 0.80. | Crop production loss only for agricultural assets and still requires crop/value calibration. |
Traffic-light representative scores are ordinal encodings, not measured probabilities. The 0.15/0.45/0.80 values preserve ordering and band placement and are assumptions.
3.2a Hazard-by-hazard data and decision lineage
The following register answers the reviewer questions behind every risk number: which engine ran, which underlying information it used, how it became a score, what uncertainty remains, and whether it is allowed to affect a monetary result.
Flood / surface water
| Field | Current production methodology |
|---|
| Engine | FloodGuard + SafeGround |
| Underlying data and effective resolution | FloodGuard national susceptibility (250 m; Accra detail where available at 100 m); SafeGround OSM water/wetland and river context, MERIT hydrology/HAND, JRC Global Surface Water 1984–2021 and ESA WorldCover; Sentinel-1 SAR event extents at 10 m where an observed event is loaded. |
| Vintage / update rule | Baseline dataset vintage; SafeGround snapshot/runtime; observed-flood query limited to the most recent 730 days. |
| Transformation into the 0–1 score | FloodGuard band/susceptibility is primary; the worst SafeGround flood/wetland/dam-spillage traffic light may raise it; a recent observed Sentinel-1 flood floors the score at 0.85. |
| Quality and interpretation limit | Modelled susceptibility, ordinal constraints and observed-event evidence remain separately labelled. Raster resolution is not parcel accuracy. |
| Financial-use gate | Building loss sensitivity only through the flood channel; requires local depth-frequency and vulnerability calibration for regulatory reliance. |
Coastal / sea-level
| Field | Current production methodology |
|---|
| Engine | FloodGuard coastal evidence + SafeGround context |
| Underlying data and effective resolution | OpenStreetMap reference shoreline and defence inventory; ESA WorldCover 2021 10 m land/water QA (currently aggregated to about 111 m for coordinate quarantine); Copernicus DEM GLO-30 surface elevation; dated shoreline observations and Ghana coastal literature where registered. |
| Vintage / update rule | Reference snapshots and dated observations; every dated shoreline item retains its observation period. |
| Transformation into the 0–1 score | Water/seaward-suspect coordinates are quarantined. Observed retreat may floor risk at 0.85; low terrain, publications, defences and distance trigger due diligence only. |
| Quality and interpretation limit | DEM is a surface model and is not tide-corrected inundation depth. Shoreline proximity is not erosion probability. Unverified defences receive zero benefit. |
| Financial-use gate | No coastal loss from proximity, DEM or publications. Financial contribution is enabled only by site-covering observed retreat or accepted incident evidence. |
Extreme heat
| Field | Current production methodology |
|---|
| Engine | FloodGuard heat |
| Underlying data and effective resolution | ERA5-derived hot-season apparent maximum and seasonal change evidence; SEED otherwise uses latitude plus an urban-heat-island proximity proxy. |
| Vintage / update rule | ERA5 climate/reanalysis vintage through 2024 in the current registry; durable change endpoints report their observation epoch. |
| Transformation into the 0–1 score | Apparent maximum maps to clamp[(T−28)/(46−28)]; a durable measured change floors the score at 0.80. |
| Quality and interpretation limit | ERA5 is regional-scale reanalysis (roughly 9–25 km in the connected product), not building indoor temperature. No false parcel precision is claimed. |
| Financial-use gate | Buildings: prioritisation only, no direct AAL. Agriculture: uncalibrated production-loss sensitivity, clearly labelled. |
Riparian proximity
| Field | Current production methodology |
|---|
| Engine | SafeGround |
| Underlying data and effective resolution | Mapped watercourses, water bodies, wetland context and applicable buffer triggers; SEED uses coarse named-river anchors. |
| Vintage / update rule | SafeGround vector snapshot/runtime response. |
| Transformation into the 0–1 score | Green/amber/red maps to 0.15/0.45/0.80 and triggers buffer/permit due diligence. |
| Quality and interpretation limit | Proximity and legal-screening signal, not discharge, water level, return period or proof of statutory non-compliance. |
| Financial-use gate | No separate riparian AAL; inundation damage belongs in flood to prevent double counting. |
Land / environmental constraint
| Field | Current production methodology |
|---|
| Engine | SafeGround |
| Underlying data and effective resolution | Protected and Ramsar areas, contamination and illegal-mining indicators from mapped Ghana layers, including OSM and protected-area datasets where available. |
| Vintage / update rule | Dataset snapshot/runtime response; authoritative Ghana agency data should supersede global layers when supplied. |
| Transformation into the 0–1 score | Worst applicable traffic light maps to 0.15/0.45/0.80. |
| Quality and interpretation limit | A due-diligence trigger, not title search, contamination sampling, permit determination or Environmental Impact Assessment. |
| Financial-use gate | No direct AAL. Any remediation or market-value effect must be supported by bank valuation and site evidence. |
Drought / water stress
| Field | Current production methodology |
|---|
| Engine | FloodGuard + NASA POWER |
| Underlying data and effective resolution | NASA POWER/MERRA-2 rainfall climatology (meteorology grid about 0.5° × 0.625°, approximately 50–60 km), observed rainfall-deficit epochs and crop NDVI/VCI evidence. Optional parcel deep reads use Sentinel-2 at 10 m; the bulk portfolio route does not imply that resolution. |
| Vintage / update rule | POWER climatology plus dated rainfall/crop epochs registered by FloodGuard. |
| Transformation into the 0–1 score | Rainfall is normalised between wet/dry anchors; observed deficit or crop stress may floor risk at 0.80. Polygon results use area-weighted mean and affected fraction. |
| Quality and interpretation limit | Regional climate evidence does not resolve farm management, irrigation or soil. A single provisional season is labelled provisional. |
| Financial-use gate | Buildings: no direct AAL. Agriculture: production-loss sensitivity only until crop, yield, value and Ghana loss data are calibrated and independently validated. |
3.3 Coastal decision hierarchy
- Coordinate quarantine: a water/suspect point is not scored until corrected.
- Grade A: dated observed shoreline retreat covering the site → engineering assessment; financial channel may be enabled.
- Grade B: low-lying terrain context → site survey and storm-tide assessment; no automatic loss.
- Grade C: published sector evidence → enhanced due diligence; no automatic loss.
- Grade D: proximity or unresolved gap → context only; no automatic loss.
- A defence receives zero benefit unless footprint, frontage, crest, design, condition and maintenance are verified.
4 · Composite vulnerability
The composite blends the weighted average hazard load with the single worst hazard, so a lone severe hazard cannot be averaged away:
composite = (1 − w) · (Σ weightₕ · scoreₕ / Σ weightₕ) + w · max(scoreₕ), w = 0.5
Scaled to 0–100 and banded:
| Band | Score range |
|---|
| Low | < 25 |
| Moderate | 25 – 50 |
| High | 50 – 75 |
| Critical | ≥ 75 |
Weights, the dominant-hazard share and band thresholds are governance parameters, not natural constants. The composite ranks assets; it is not a probability of damage or default and requires outcome-based calibration.
5 · Hazard → money
Conditional sensitivity model. Every monetary output depends on illustrative parameters. It must remain labelled illustrative until the bank replaces PD, LGD, recovery, insurance, damage and repricing assumptions with approved values.
5.1 Average Annual Loss (physical damage)
Per-hazard AAL is a ceiling × a convex function of the hazard score; the per-hazard ceilings are INFORMED BY the JRC Africa flood depth-damage curve (Huizinga et al. 2017 — depth-damage × an assumed event frequency) and First Street / UNDRR AAL tiers, and are ILLUSTRATIVE until back-solved from a bank's own loss data. This is a transparent screening proxy, not a full per-parcel depth-damage integration. Hazards combine as independent damages:
AALₕ = MAX_AALₕ · AAL_MULTIPLIER · scoreₕ^AAL_EXP
AAL = 1 − Πₕ (1 − AALₕ), then × construction factor, capped at 0.99
| Hazard | MAX_AAL ceiling |
|---|
| Flood | 0.050 |
| Coastal / sea-level | 0.055 |
| Extreme heat | 0.000 |
| Riparian proximity | 0.000 |
| Land / contamination | 0.000 |
| Drought / water stress | 0.000 |
A zero building MAX_AAL is deliberate: heat, riparian proximity, land constraints and drought remain material screening dimensions but do not independently prove structural damage. Riparian damage is captured by flood to prevent double counting. They require separate, case-specific operating-cost, remediation or water-security models before monetary loss can be assigned.
| Constant | Value | Meaning |
|---|
| AAL_EXP | 1.2000000000000002 | Convexity (JRC curve is concave/front-loaded → 1.5) |
| AAL_MULTIPLIER | 1.0 | Global loss scale (calibration knob) |
Construction quality scales the damage an asset suffers (structural vulnerability):
| Construction tier | Damage factor |
|---|
| informal | ×1.4 |
| semi_permanent | ×1.15 |
| permanent | ×1.0 |
5.1a Agricultural / farmland asset class
Where the collateral is a FIELD, not a building, PortfolioCheck routes it to a farmland model (classified from the asset's property type — see core/agri.py). Three things change, because a field is not a building: (1) the perils are agronomic — drought leads (a rainfall-failure year wipes much of the season), then flood, then heat stress, so a drought-led weighting and a production-loss AAL table replace the structural ones; (2) the value at risk is a flow (one season's production, hitting the borrower's cash-flow / PD) not a stock (the land, the collateral, survives a single event), so the collateral repricing / LGD is land-resilient and capped lower; (3) the remedies are agronomic (irrigation, drought-tolerant varieties, field drainage, crop insurance), not building retrofits. The observed crop-health signal (NDVI / VCI vs the field's own green-season normal) is supplied by FloodGuard and folded into the drought hazard. This is the classification the Directive implies for a mixed book (Para 43(f)(iv) counterparty activity + 48(b) vulnerable sectors — agriculture the archetypal one).
| Hazard | Building MAX_AAL | Farmland MAX_AAL |
|---|
| Flood | 0.050 | 0.100 |
| Coastal / sea-level | 0.055 | 0.090 |
| Extreme heat | 0.000 | 0.060 |
| Riparian proximity | 0.000 | 0.000 |
| Land / contamination | 0.000 | 0.000 |
| Drought / water stress | 0.000 | 0.140 |
Farmland collateral repricing is damped by land resilience (×0.5) and capped at 20% (building cap 40%). Illustrative — calibrate to the bank's crop-loss / weather-index data.
A field is an AREA, not a pin. Where an asset carries a parcel boundary (a GeoJSON polygon, WKT, or a coordinate list in a geometry column, or via /api/screen?geometry=), the live screen reads the hazards area-weighted across the whole polygon rather than at a single centroid: it samples every ~100–250 m grid cell inside the field and returns the mean plus the AFFECTED FRACTION — the share of the field in the high-flood band, or the share of the field's cropland under NDVI/VCI stress (= the share of the season's production at risk). This corrects the centroid blind spot where half a field floods while the pin sits on the dry half. A sub-cell parcel falls back to the centroid reading. Powered by FloodGuard's /api/{floodrisk,droughtchange,cropchange}/poly.
Current validation status: Screening prototype — Ghana crop/loss calibration required. Agricultural hazard bands are screening outputs. Production loss, land repricing and ECL are illustrative sensitivities, not validated predictions, valuations, accounting estimates or automated credit decisions. Regulatory reliance: NO. Independent validation: NO.
5.1b Agricultural source-to-variable and evidence register
| ID | Source | Role in methodology | Used now | Quality |
|---|
| BOG-CRFR-2024 | Bank of Ghana: Climate-Related Financial Risks Directive (2024) | Governance, physical-risk assessment, vulnerable sectors and reporting alignment. | Yes | A |
| IPCC-AR6-WGII-AFRICA | IPCC: AR6 WGII Chapter 9: Africa (2022) | Climate-risk pathways, African agricultural vulnerability and adaptation context. | Yes | A |
| NASA-POWER | NASA: POWER meteorology and rainfall (runtime) | Current rainfall-climatology screening input; coarse proxy, not parcel rainfall. | Yes | D |
| S2-NDVI-VCI | European Commission / ESA: Copernicus Sentinel-2 crop condition observations (runtime) | Crop-condition anomaly evidence through FloodGuard; cloud and phenology QA required. | Yes | C |
| FAO-WAPOR-3 | FAO: WaPOR v3 water and land productivity database (2009–present) | Required enhancement: evapotranspiration, relative soil moisture, biomass and water productivity. | Required enhancement | C |
| CHIRPS-3 | UCSB Climate Hazards Center: CHIRPS v3 rainfall (1981–present) | Required enhancement: rainfall anomaly, dry-spell and event-frequency baselines; approximately 0.05 degree, not parcel truth. | Required enhancement | C |
| SOILGRIDS-2 | ISRIC — World Soil Information: SoilGrids 2.0 (2021) | Required enhancement: soil texture, organic carbon and water-related properties with prediction uncertainty. | Required enhancement | D |
| MOFA-SRID | Ghana Ministry of Food and Agriculture, SRID: Agricultural production estimates and Facts & Figures (annual) | Required Ghana calibration: crop area, average yield and production baselines. | Required enhancement | B |
| FAO-AQUACROP | FAO: AquaCrop crop-water productivity model (current) | Candidate crop-specific water/yield response framework; not yet implemented. | Required enhancement | A |
5.1c Minimum data required before agricultural loss calibration
| Field | Format | Status | Reason |
|---|
| parcel_geometry | GeoJSON/WKT polygon | Required | Avoids centroid-only exposure. |
| crop_or_enterprise | Controlled crop/livestock class | Required | Selects crop-specific thresholds and calendar. |
| season | Planting/harvest dates or season code | Required | Links hazards to vulnerable growth stages. |
| area_ha | Verified hectares | Required | Normalises yield and production value. |
| annual_production_value_ghs | Audited or evidenced value | Required for loss | Correct denominator for production loss. |
| baseline_yield_t_ha | Farm or district baseline | Required for loss | Supports anomaly and yield-loss calculation. |
| irrigation | rainfed/partial/full + reliability | Required | Material drought vulnerability modifier. |
| soil_or_water_holding | Field test or quality-screened soil layer | Required for calibrated drought | Controls plant-available water. |
| management_and_adaptation | Measure, date, capacity, condition | Required for credit | Prevents generic adaptation credit. |
| insurance | Peril, limit, deductible, expiry | Required for insured loss | Separates gross and retained loss. |
5.1d Agricultural data-quality hierarchy
| Grade | Class | Definition |
|---|
| A | Bank/field verified | Parcel polygon, crop, season, area, yield, price, irrigation, soil/management and dated evidence. |
| B | Authoritative local | MoFA/GMet/WRC/insurance or other Ghana source at suitable crop, time and spatial resolution. |
| C | Earth observation | Quality-screened satellite/reanalysis indicator with resolution, date, uncertainty and aggregation disclosed. |
| D | Global proxy | Global or regional proxy; suitable for screening, not parcel truth. |
| E | Synthetic/default | Demonstration or missing-data default; never suitable for calibrated loss. |
5.1e Output status and permitted interpretation
| Output | Status |
|---|
| Hazard Screen | SCREENING |
| Composite Band | EXPERT_PRIOR_UNCALIBRATED |
| Production Loss | ILLUSTRATIVE_SENSITIVITY |
| Land Repricing | ILLUSTRATIVE_SENSITIVITY |
| Pd Lgd Ecl | NOT_A_BANK_MODEL |
| Adaptation Credit | EXPERT_PRIOR_REQUIRES_VERIFICATION |
5.1f Calibration, back-testing and independent-validation gate
- At least 5–10 years of crop/season/region observations where available.
- Observed yield, production value and loss/claim outcomes linked to parcel and hazard date.
- Train/validation separation with spatial and temporal cross-validation.
- Crop-specific discrimination and calibration diagnostics, including uncertainty intervals.
- Sensitivity, specificity, false-positive/false-negative and stability analysis.
- Bank PD/LGD/EAD integration only after bank model governance and independent validation.
- Independent agronomist, geospatial specialist and quantitative model-validator sign-off.
Production gate: calibrated agricultural monetary loss remains disabled as a claim until the minimum input fields are present, Ghana crop/season baselines are versioned, performance is tested out of sample, and independent model validation signs off. Until then the numerical loss overlay is shown only as an illustrative sensitivity with an explicit label.
5.2 Market repricing (collateral devaluation)
A forward collateral haircut as the market prices in a share of the AAL, plus an insurability penalty an insured asset does not carry:
reprice = min(REPRICE_CAP, MARKET_CAP_FACTOR · AAL / CAP_RATE + insurability), insurability = 0 if insured else INSURABILITY_ADD · max(flood, coastal)
| Constant | Value |
|---|
| CAP_RATE | 0.108 |
| MARKET_CAP_FACTOR | 0.42 |
| INSURABILITY_ADD | 0.04 |
| REPRICE_CAP | 0.4 |
5.3 Stressed value & LTV
property_value = exposure / (LTV / 100)
stressed_value = property_value · (1 − reprice)
stressed_LTV = 100 · exposure / stressed_value (≥ 100% = under-collateralised)
5.4 Loss Given Default
A smooth, band-free downturn liquidation recovery, Basel-style floored so LGD is never zero:
downturn_liq = NORMAL_LIQUIDATION − DOWNTURN_DROP · worst_hazard
LGD = max(LGD_FLOOR, 1 − min(1, stressed_value · downturn_liq / exposure))
| Constant | Value |
|---|
| NORMAL_LIQUIDATION | 0.75 |
| DOWNTURN_DROP | 0.2 |
| LGD_FLOOR | 0.06 |
5.5 Probability of Default
PD rises with negative equity (strategic default) and uninsured-damage cash-flow stress:
PD = PD_BASE · (1 + NEG_EQ_SENS · max(0, stressed_LTV/100 − 1) + DAMAGE_PD_SENS · uninsured · AAL)
uninsured = INSURED_UNINSURED (0.1) if insured else UNINSURED (0.7200000000000001)
| Constant | Value |
|---|
| PD_BASE | 0.024 |
| NEG_EQ_SENS | 1.5 |
| DAMAGE_PD_SENS | 3.0 |
| UNINSURED | 0.7200000000000001 |
| INSURED_UNINSURED | 0.1 |
5.6 Expected Credit Loss overlay
ECL = PD · LGD · EAD (EAD = exposure); climate uplift = ECL_stressed − ECL_base
An indicative annual-marginal overlay — NOT a 12-month/lifetime staged IFRS 9 ECL.
6 · Forward-looking scenarios (IPCC AR6 / NGFS)
Each hazard score is projected with a bounded, saturating odds map, so a projection never exceeds 1.0 and a high-risk asset saturates while mid-range assets move most:
s' = s · (1 + k·f) / (1 + s·k·f), k = 1.0 (per-hazard sensitivity)
The forcing f converts an intensification factor to a unit forcing: multiplier hazards (flood, riparian, heat, drought) f = factor − 1; coastal f = sea-level-rise(cm) / 50.
Intensification factors by scenario × horizon (vs today)
Flood / riparian — extreme-rainfall (Rx1day) multiplier
| Scenario | 2030 | 2050 | 2100 |
|---|
| SSP1-2.6 | ×1.04 | ×1.06 | ×1.07 |
| SSP2-4.5 | ×1.05 | ×1.09 | ×1.14 |
| SSP5-8.5 | ×1.06 | ×1.13 | ×1.22 |
Heat — hot-day-count multiplier
| Scenario | 2030 | 2050 | 2100 |
|---|
| SSP1-2.6 | ×1.40 | ×1.80 | ×2.00 |
| SSP2-4.5 | ×1.60 | ×2.50 | ×4.00 |
| SSP5-8.5 | ×1.80 | ×3.00 | ×6.00 |
Drought — consecutive-dry-days multiplier
| Scenario | 2030 | 2050 | 2100 |
|---|
| SSP1-2.6 | ×1.05 | ×1.08 | ×1.10 |
| SSP2-4.5 | ×1.08 | ×1.15 | ×1.25 |
| SSP5-8.5 | ×1.10 | ×1.20 | ×1.40 |
Coastal — sea-level rise
| Scenario | 2030 | 2050 | 2100 |
|---|
| SSP1-2.6 | 10 cm | 20 cm | 40 cm |
| SSP2-4.5 | 11 cm | 24 cm | 55 cm |
| SSP5-8.5 | 12 cm | 29 cm | 80 cm |
NGFS pathways map to the AR6 physical forcing consistent with their warming outcome:
| NGFS pathway | → AR6 (SSP) |
|---|
| NGFS Net Zero 2050 | SSP1-2.6 |
| NGFS Delayed Transition | SSP2-4.5 |
| NGFS Current Policies | SSP5-8.5 |
7 · Adaptation measures & evidence gating
Recorded completed measures reduce the relevant hazard score only after supervisory evidence acceptance; credits combine on residual risk and are capped. A bank declaration alone receives no credit.
credit_combinedₕ = min(CAPₕ, 1 − Πᵢ (1 − cᵢ · ev)), ev = 1 if verified else SELF_REPORTED_FACTOR (0.0)
A +1 m raised plinth subsumes the +0.3 m credit; where elevated ≥1 m, floodproofing / PFR credits are damped ×0.5 (they protect against the same residual). Measure credits:
| Measure | Hazard credits |
|---|
| Engineered + maintained drainage / SuDS | flood 20%, riparian 15% |
| Raised plinth / finished floor +0.3 m | flood 20%, riparian 20% |
| Raised plinth / finished floor +1 m | flood 55%, riparian 55% |
| Floodproofing + barriers (sealed openings) | flood 35% |
| Property flood resilience (resistant materials) | flood 30% |
| Sea defence / revetment / managed setback | coastal 40% |
| Cool / reflective roof + shading | heat 20% |
| Green roof / insulation | heat 15% |
| Rainwater storage / on-site retention | flood 10%, drought 15% |
| Irrigation / verified on-farm water storage | drought 35%, heat 10% |
| Drought-/heat-tolerant crop or variety | drought 20%, heat 20% |
| Soil-moisture conservation | drought 15%, heat 8% |
| Field drainage / bunding / raised beds | flood 25%, riparian 10% |
| Agroforestry / productive shade | heat 18%, drought 10% |
| Per-hazard cap | Value |
|---|
| flood | 85% |
| riparian | 85% |
| coastal | 80% |
| heat | 50% |
| drought | 50% |
Verified measures that materially lower risk are candidate climate-adaptation finance under the MDB–IDFC Common Principles for Climate Adaptation Finance (indicative tagging, not certification).
8 · Data quality (PCAF)
Every asset carries a PCAF-style 1–5 data-quality flag; a screening tool is never better than 3. This is the honesty layer a supervisor weights submissions by.
| Confidence | PCAF score | Meaning |
|---|
| High | 3 | Precise geolocation (coordinates / GhanaPostGPS), best a screen achieves |
| Medium | 4 | Modelled / screening-grade |
| Low | 5 | Address-only / centroid fallback |
Coordinate precision is not evidence accuracy: extra decimal places do not prove that a pin identifies the correct building. High confidence means precise input geometry, not validated hazard or loss. Address and parcel verification remain required.
9 · Validation
Accra 3-June-2015 flood hindcast. At a flood-score threshold of 0.50, the flood layer flags 12/12 documented-flooded localities (sensitivity 100%) and spares 6/6 higher-ground controls (specificity 100%).
Parameter sensitivity. Each finance constant varied ±20%; % change in the demo book's total climate-ECL uplift (base GHS 577,177), ranked by impact:
| Constant | −20% | +20% | Span |
|---|
| Forced-sale recovery | +54.5% | -59.7% | 114.2 |
| Through-the-cycle base PD | -20.0% | +20.0% | 40.0 |
| AAL multiplier (global loss scale) | -13.3% | +15.2% | 28.5 |
| Capitalisation rate | +17.1% | -9.8% | 26.9 |
| Market repricing share of AAL | -11.7% | +13.4% | 25.1 |
| AAL convexity exponent | +9.6% | -7.4% | 17.0 |
| Downturn LGD floor | +4.2% | -4.1% | 8.3 |
| Uninsured share of damage | -1.8% | +1.8% | 3.6 |
9.1 Validation status by component
| Component | Current evidence | Status | Required before regulatory reliance |
|---|
| SEED flood | Small in-sample Accra 2015 locality design check. | Development check only | Independent events, random controls, ROC/AUC, calibration and spatial cross-validation. |
| Other SEED hazards | Logic tests and geographic plausibility. | Not outcome-validated | Independent Ghana observations and false-positive/false-negative analysis. |
| Live hazard layers | Source-contract and regression tests. | Screening validation | Benchmark against authoritative events/maps with resolution and uncertainty. |
| Composite index | Deterministic and sensitivity-tested. | Not empirically calibrated | Fit weights/thresholds to agreed outcomes; test stability and discrimination. |
| Financial overlay | Formula, parity and parameter-sensitivity tests. | Illustrative | Bank claims, defaults, recovery, valuation and insurance calibration; back-test and independent sign-off. |
| Scenarios | AR6-consistent directional forcing. | Exploratory | Location-specific downscaling, response functions and uncertainty ranges. |
| Adaptation credits | Transferred literature priors with evidence gate. | Illustrative | Ghana engineering, maintenance and post-event validation. |
9.2 Minimum calibration protocol
- Freeze a development sample and a later or out-of-region validation sample.
- Define outcomes before fitting: inundation/depth, damage ratio, claim, arrears/default, realised recovery and sale discount.
- Assess discrimination (ROC/AUC or precision-recall), calibration/Brier score, spatial residuals and confidence intervals.
- Fit hazard-to-damage relationships by construction and property type; never infer damage directly from an ordinal traffic light.
- Estimate PD/LGD overlays inside the bank's IFRS 9 governance with conservatism and overrides documented.
- Back-test annually, monitor drift and disparate impact, version every parameter change, and obtain independent validation.
9.3 Governed loss-data onboarding and approval
LOSS-1.0 registers events, assets, agricultural seasons, insurance claims, loan outcomes, valuation history and adaptation evidence using pseudonymous identifiers. Uploads are validated row by row, linked to the selected institution portfolio and stored as drafts. A separate reviewer from the same institution must approve; makers cannot approve their own submissions.
- Observed gross loss, verified loss, insurance recovery and modelled annual loss remain separate fields.
- Grade D modelled or remotely sensed values and Grade E unverified/synthetic values cannot independently calibrate observed loss.
- The development gate requires at least 30 matched Grade A-C events, three event years, two hazards and 30 verified loss/exposure pairs.
- Passing the development gate is not model approval: holdout testing, uncertainty estimation, stability analysis and independent validation remain mandatory.
- Approved observations can be displayed beside modelled AAL but never overwrite or silently tune it.
10 · Regulatory framework mapping
Active parameter set: BoG baseline v1 (2026-06) (stamped on every report and return). Outputs map to:
- Bank of Ghana Climate-Related Financial Risk Directive (2024) — the semi-annual return (Para 48); the physical-risk disclosure method (Para 43(f)); the example physical metrics (Table 1). The forthcoming Standardized Disclosure Template is Para 46.
- IFRS S2 / TCFD — risk-management and metrics disclosure.
- NGFS — the prescribed scenario family.
- PCAF — per-asset data-quality flagging.
- Ghana Sustainable Banking Principles — asset-level E&S risk + green-loan origination.
The full clause-by-clause alignment is a living page at /directive (14 core outputs, 4 partial (physical half), 6 feed the bank's process, 3 need the bank's wider book, 6 out of scope). Paragraph references verified against the BoG CRFR Directive, November 2024. The coverage block on every physical-risk-section return:
BoG semi-annual return (Para 48) coverage
| Clause | Requirement | PortfolioCheck |
|---|
| 48(h) | Physical-risk data on the vulnerability of assets, climate risk drivers and exposures | Core output |
| 48(l) | Exposures subject to physical risks (chronic & acute) split by geographical region/location, and the proportion of total exposures and total assets | Core output |
| 48(m) | Details of the methodology used to determine exposures subject to physical risk | Core output |
| 48(f) | Description of risk-assessment methodologies including stress-testing scenarios and assumptions | Partial |
| 48(b) | Metrics on assets in highly vulnerable sectors and geographical locations | Partial |
| 48(i) | Forward-looking information — scenario-analysis results and forward-looking metrics | Partial |
| 48(k) | The process for identifying vulnerable concentrated exposures and assessing likelihood and impact | Core output |
| 48(j) | Exposure to transition-risk sectors (mining, carbon-intensive) as a proportion of total | Needs bank's book |
| 48(a) | Description of material risks and the governance / risk-management / strategy approach | Needs bank's book |
| Para 46 | Format per BoG's Standardized Disclosure Template (issued with ICAG) | Feeds bank process |
| Part III-A / V | Governance, board oversight, transition plan, ICAAP integration | Needs bank's book |
11 · Limitations & gap register
Every board report carries this gap register — what the screen does not replace and who must close it:
| Area | Owner | Blocking | What remains |
|---|
| Property valuation | Bank credit / valuation | Yes | Climate haircuts are applied to an implied collateral value, not a surveyed valuation. The bank's valuation must confirm property values. |
| PD / LGD models | Bank risk modelling | Yes | ECL figures use illustrative default PD/LGD parameters. The bank must substitute its own IFRS 9 term-structure and recovery model. |
| Building-level resilience | Survey / site inspection | Yes | Finished-floor elevation, flood defences and construction quality are not observed unless the bank records completed adaptation measures per asset; absent that, resilience is assumed unmitigated. |
| Adaptation evidence | Bank / site verification | Yes | Recorded adaptation measures that reduce an asset's risk are SELF-REPORTED until accepted by the supervisor; they receive no regulatory credit until taken in full once the bank holds evidence (site inspection / as-built / maintenance covenant). The bank must hold that evidence before relying on the reduced figures in a regulatory return. |
| Insurance status | Bank / borrower records | Yes | Whether each property carries valid flood/peril cover is a key loss mitigant and is not in the book; confirm per asset. |
| Governance & disclosure | Bank governance | Yes | Board oversight, the bank's own footprint and the formal disclosure statement are governance items this screen cannot produce. |
| Scenario calibration | Climate science / consultant | Advisory | Forward views use IPCC AR6 SSP intensification factors applied with a bounded saturating map — screening estimates, not downscaled climate projections. Confirm the pathway and horizon assumptions before external disclosure. |
| Transition risk out of scope | Bank / consultant | Advisory | This screen covers PHYSICAL climate risk only. The BoG Directive also requires transition risk (policy, carbon, stranded-asset) — material for a mortgage book mainly via energy-efficiency repricing; assess separately. |
| Nature / biodiversity (TNFD) out of scope | Bank / consultant | Advisory | This screen covers PHYSICAL CLIMATE risk only. Nature-related financial risk (TNFD dependencies & impacts) is deliberately out of scope; the Land hazard is a proximity screen (Ramsar/protected/contamination), NOT a nature dependency/impact assessment. Assess via a TNFD-aligned process. |
| Social / inclusion & just transition | Bank / SBP programme | Advisory | Financial-inclusion, gender and just-transition dimensions (SBP P3/P4; IFC SBFN) are out of scope of a physical-collateral screen. The tool's anti-redlining safeguard keeps credit flowing to exposed communities via a financeable fix (never a location denial), but inclusion is assessed by the bank. |
| Price-based exclusion (market conduct) | Bank market-conduct / BoG conduct | Advisory | The origination safeguard prevents a location DENIAL, but risk-based repricing/ECL can still price a poor flood-zone borrower out. Price-based exclusion is a market-CONDUCT matter the bank must govern (affordability, conduct rules); the tool flags it but does not cap pricing. |
| Refer-resolution audit | Bank credit workflow | Advisory | A high-risk 'Refer for adaptation structuring' hands off to a credit officer who could still decline. The bank must LOG each refer's resolution (offer made / adaptation loan structured / declined-with-reason) and report the split so the anti-redlining safeguard is auditable, not just a suggestion. |
11.1 Known methodological limitations
- Hazard scores mix observed, modelled, ordinal and contextual evidence; they are harmonised indices, not equal physical units.
- The independent-damage product assumes separable marginal damages; compound flood/coastal/riparian events can violate this assumption.
- The tail model and scenario projection are screening constructs, not catastrophe-model event sets.
- Property value inferred from exposure/LTV inherits valuation-date, seniority and data-quality errors.
- Missing live data degrades to SEED rather than statistical imputation; absence of a flag is never proof of safety.
- Resolution mismatch can create parcel errors near coastlines, rivers, lagoons, defences and steep terrain.
- Model uncertainty is disclosed qualitatively; predictive intervals require calibration data.
12 · Hazard & data sources (with vintage)
| Layer | Source | Vintage |
|---|
| Flood / surface water | FloodGuard susceptibility grid · MERIT Hydro · JRC Global Surface Water · SafeGround constraints · Sentinel-1 observed-event extents | 2021–2026 |
| Coastal reference | OpenStreetMap coastline snapshot · ESA WorldCover 2021 land/water QA · Copernicus DEM elevation | 2021 / snapshot 2026-07-27 |
| Coastal change | Dated shoreline observations where available · Ghana sector literature registry · Ghana Hydrological Authority project reports | 2008–2025 / registry 2026-07-27 |
| Coastal sea level | IPCC AR6 scenario increments · PSMSL Takoradi station 331 retained with quality warning and excluded from trend fitting | AR6 / PSMSL 1929–2012 |
| Heat | ERA5 hot-season apparent maximum and durable seasonal change · latitude + urban-heat-island + highland cooling in SEED mode | ERA5 through 2024 |
| Riparian | SafeGround mapped watercourse proximity · continuous major-river polyline network (Volta system, Pra, Ankobra, Tano, Densu…) with point-to-segment distance in SEED mode | runtime / SEED |
| Land / protected | SafeGround protected-area, contamination and galamsey checks · Ramsar/protected anchors in SEED mode | runtime / SEED |
| Drought / water stress | NASA POWER rainfall climatology · FloodGuard rainfall deficit · Sentinel NDVI/VCI crop stress · aridity geography (savanna north + SE coastal dry belt) in SEED mode | runtime through 2026 |
| Scenarios | IPCC AR6 SSP + NGFS (mapped) · World Bank Climate Knowledge Portal | AR6 / 2024 |
| Damage basis | JRC Africa flood depth-damage curve (Huizinga et al. 2017) · First Street / UNDRR AAL tiers | 2017 / 2025 |
| Agricultural governance | Canonical source-to-variable, quality, minimum-input and validation register in core/agri_governance.py | 2026-07-31 |
| Agricultural calibration candidates | Ghana MoFA SRID yields/production · FAO WaPOR v3 · CHIRPS v3 · ISRIC SoilGrids 2.0 · FAO AquaCrop | Not yet used in scoring; registered 2026-07-31 |
| Bank loss-data schema | PortfolioCheck LOSS-1.0: event, exposure, physical/production loss, insurance, credit outcome and evidence lineage fields | 2026-07-31 |
13 · Version history
| Version | Date | Change |
|---|
| 2.8.2 | 2026-08-11 | Accessibility self-audit pass (toward WCAG 2.2 AA). A visible keyboard-focus indicator on every focusable element and a prefers-reduced-motion guard now ship globally (via the theme block, and added to the pages that render their own CSS); a lang attribute on every page; an accessible name on the icon-only close control; and grey body/footer text darkened so it meets the 4.5:1 contrast minimum. Risk was already conveyed by text as well as colour, the map has a sortable-table equivalent, and forms are labelled — this pass closes the focus-visibility, contrast, lang and reduced-motion gaps. A formal independent audit remains recommended before a production go-live. |
| 2.8.1 | 2026-08-11 | Production hardening for a regulated deployment: a tamper-evident AUDIT TRAIL. A new append-only audit_log records every security-relevant action — logins and failed logins, filed BoG returns (with fingerprint), adaptation submissions, supervisory verdicts, issued directives and account changes — with who, when, target and source IP. A BoG administrator views and filters it at /bog/audit. Confirmed already-present controls: DB-backed revocable sessions, PBKDF2 password hashing, a strict security-header set, and an Origin/Referer CSRF check with SameSite=Lax cookies on state-changing requests. +1 test (171). |
| 2.8.0 | 2026-08-11 | Methodology depth pass (the review's non-loss-data calibration items). SEED riparian now uses a CONTINUOUS major-river polyline network (Volta system incl. White/Black Volta and Oti, Pra, Ofin/Birim, Ankobra, Tano, Densu, northern tributaries) with point-to-segment distance, so riverfront collateral between the old ~12 anchor points is no longer scored Low (the Odaw is excluded as an engineered storm drain, not a natural river). Heat and drought are decorrelated: heat gains highland cooling (a plateau is cooler than its latitude implies) and drought is driven by aridity geography — high in the savanna north AND the south-eastern coastal dry belt (Accra–Ada–Keta / Dahomey Gap), low in the wet south-west — rather than both being pure latitude. Documented coastal-erosion hotspots (Keta, Ada, Cape Coast, Sekondi-Takoradi) now escalate above Moderate in SEED mode and are counted in the money view; distance-only coastal proximity stays capped. +6 tests (170). |
| 2.7.0 | 2026-08-07 | Methodology / GIS / correctness review — fixes from a four-lens adversarial audit before any bank relies on a number. CRITICAL: (1) LTV unit trap — an LTV keyed as a fraction (0.8) rather than percent (80) silently made a loan look 100x over-collateralised and hid all risk; LTV is now normalised (fraction->percent) and range-checked at ingest, the origination handlers and the finance engine. (2) Dashboard/report now agree — the client recompute dropped recorded incidents and the per-asset materiality weighting, mis-banding a flooded asset Moderate while the return said High; hz now ships raw with incident/profile applied client-side in the SAME order as the server, plus the server-authoritative band/score. (3) The Sentinel-1 observed-flood overlay is applied once, recency-gated (a stale historical extent is no longer replayed as a current observation) and banded consistently. HIGH: confidence now derives from the geolocation method + whether the screen was live (not from counting a float's decimal places), so a seed-only screen is never stamped HIGH; a single near-certain/observed peril can now reach Critical (a demonstrably-flooding property no longer bands like an ordinary house); the gazetteer matches whole words with a region cross-check (no more 400 km substring mis-geocode); the scenario 'today'/forward views and the portfolio projection reuse the exact effective findings, weighting and agri routing the asset was scored with. Also: no valuation is emitted for an out-of-Ghana/likely-swapped coordinate; PD capped at 100% and bank calibration params clamped to sane ranges; agricultural AAL expressed against production value (not land value); SafeGround fails closed to localhost; bare-list parcel rings sniff lat/lon orientation; one harmonised Ghana bounding box; the acute-tail convolution logs any event-regions excluded beyond its bound. +11 tests (167). |
| 2.6.0 | 2026-08-06 | Per-asset risk weighting (materiality profiles). The six-hazard weighting now adapts to an asset's dominant physical setting so its most eminent threat leads the composite: tag an asset coastal / floodplain / farmland / urban (Building.risk_profile, a 'risk_profile' CSV column, or the probe's Risk-weighting selector) and the weights shift accordingly. A coastal or floodplain designation is treated as the bank's professional judgment that the lead peril is materially present, and floors that hazard at High — transparently labelled on the finding, only ever raising a score, never lowering a higher measured/observed one, and overridable by re-tagging. Untagged books score exactly as before; farmland keeps its drought-led profile. The probe suggests the fitting profile from the asset's own setting and shows which weighting was applied. Every profile vector is recalibratable per bank. |
| 2.5.0 | 2026-08-06 | Sentinel-1 OBSERVED-flood scrutiny on the live screen. The probe/live screen now queries FloodGuard's Sentinel-1 SAR change-detection endpoint (C-band VH, UN-SPIDER) and, where the satellite actually saw water on the parcel, floors flood at High+ and surfaces it as measured reality distinct from modelled susceptibility — a red 'Sentinel-1 OBSERVED FLOOD on <date>' flag (bolder when it is a NEW flood the model rated lower), a green 'no observed flood' where clear, or an honest 'outside Sentinel-1 coverage (Greater Accra)' note elsewhere. So a bank can see whether the collateral it is lending against was recently underwater, not just its modelled odds. Nationwide coverage is the FloodGuard AOI-expansion build; Greater Accra is live now. |
| 2.4.2 | 2026-08-06 | Location-probe search box gains type-ahead suggestions (dropdown as you type): a GhanaPostGPS code, instant built-in Ghana localities, then OpenStreetMap for broader coverage (no Google, no API key, no per-use cost — addresses go to OSM, not Google, consistent with the data-protection posture). Pick a suggestion to zoom the map and drop the pin; still confirm the exact building by clicking. New /api/geocode/suggest. |
| 2.4.1 | 2026-08-06 | Origination probe defaults to LIVE (FloodGuard + SafeGround) — the seed model is a coarse portfolio-triage proxy and must never drive a single loan decision (it can read a riverbed as low flood). Live is now the default for the probe with its own generous rate budget (single-point screens are light); when live is momentarily unavailable the result is stamped a coarse estimate NOT VALID for underwriting, so a seed answer can never masquerade as the real assessment. A live screen shows FloodGuard rating the same Weija-reservoir point Critical where seed said Low. |
| 2.4.0 | 2026-08-06 | Map-first location probe for loan officers. Type a place, address or GhanaPostGPS -> the satellite map zooms to it (via a new /api/geocode) -> click the exact building to drop the pin (precise regardless of geocoder coverage) or drag to fine-tune -> screen. The map is now full-width and prominent, the address hint and region dominate over a coarse region centroid, and client-side timeouts keep search and screening from ever hanging. GhanaPostGPS resolves the pin precisely where the resolution service is enabled. Same insight output (decision, hazard breakdown, today->2050, lender & insurer lenses, adaptation levers) and the Lender/Insurer view toggle. |
| 2.3.0 | 2026-08-06 | Best-in-class single-location risk probe for loan officers and insurers. Probe one property (GhanaPostGPS, address or coordinates) and get, beyond the underwriting decision: a per-hazard plain-language breakdown (worst-first), a today->2050 forward view under a middle scenario, an insurer/broker lens (perils + insurability signal + cover-covenant note), and the adaptation levers that would most reduce THIS asset with their modelled band effect. A Lender/Insurer view toggle re-frames the same screen for either user. Mirrors First Street (per-peril property scores + forward view), Climate X / Jupiter asset-level scoring, and Cape Analytics / ZestyAI property underwriting. Served at /originate and via the /api/screen JSON (new 'insight' block) for embedding in an origination system. |
| 2.2.0 | 2026-08-05 | Real bank->BoG return-submission pipeline. An institution FILES its current physical-risk return from its portfolio ('Submit to BoG'); the tool snapshots the Para-48 figures + a SHA-256 fingerprint into a persistent submission and returns a filing receipt. A Bank-of-Ghana account sees a live 'Received submissions' inbox (/bog/submissions) — every filed return with its figures, downloadable CSV and links to that institution's adaptation cases — proving the end-to-end pipeline with logged-in accounts rather than synthetic demo banks. A 'manage.py gen-book' command generates a synthetic book and files it in one step so the pipeline can be exercised without real customer data. (A filed submission is exactly the payload a future federated ORASS/API channel would carry between separately hosted institutions.) |
| 2.1.5 | 2026-08-05 | In-app Bank-of-Ghana account administration: a BoG 'admin' tier manages its own department from /bog/users — add colleagues, set each as approver or read-only analyst, promote/demote and reset passwords, without server access. Scoped strictly to Bank-of-Ghana accounts, gated to admins (approvers and analysts get 403), with a self-role-change guard to prevent lock-out. New accounts default to least-privilege (analyst). Admin tooling also gains 'manage.py role <email> <role>' to change a tier without recreating the account. |
| 2.1.4 | 2026-08-05 | Dedicated Bank-of-Ghana supervisory workspace and a proper regulator role model. A supervisor account now lands on an intuitive /bog home — live 'awaiting review' count, one-click into the adaptation-evidence queue, the system-wide console and the Directive mapping. Two named tiers: 'regulator' (approver — issues verdicts) and 'analyst' (read-only oversight — can inspect every submission and its evidence but cannot accept/reject; the decision endpoint enforces this server-side). Departments provision one named account per person for attributable verdicts; login routes regulators to the workspace and banks to their portfolios. |
| 2.1.3 | 2026-08-05 | Persistent adaptation-evidence CASES for the authenticated book (ported and reconciled from a parallel Codex build): a logged-in institution opens a case per asset, attaches evidence (PDF/PNG/JPG/DOCX) and submits it; a Bank-of-Ghana supervisor account reviews the queue and issues an attributable verdict — accept, reject or request-more-information. Only an accepted verdict flips the asset's verified flag and re-scores it, recording baseline→improved. Adds a one-click BoG submission package (ZIP: physical-risk return + adaptation-case manifest + evidence files + fingerprinted receipt). This is the production acceptance path for the authenticated /p/{id} book, complementing the ephemeral demo-session review flow; class-filtered measures and nosniff evidence serving carried through. |
| 2.1.2 | 2026-08-03 | Adaptation-communication and report-delivery hardening (six-issue audit): a bank's evidence-accepted credit can no longer be silently voided by an unrelated insurance/construction re-save; the supervisory evidence review rejects stale/replayed decisions and pins the scored measures to exactly the accepted set; the top-down re-run now measures the 'unverified adaptation pipeline' (filed vs claimed) instead of an always-zero gap; cross-class adaptation measures earn no credit; uploaded evidence is served with a server-determined content-type + nosniff (no stored-XSS); and each supervisor drill-down shows an explicit report-delivery panel with the Directive return section and SHA-256 submission fingerprint. |
| 2.1.1 | 2026-07-31 | Supervisory landing-state hardening: no institution-level asset map or property details at sector level; the selector shows all 23 licensed banks, identifies received versus missing returns, and opens a scoped institution view only for a received return. |
| 2.1.0 | 2026-07-31 | Reviewer-facing data and engine lineage: hazard-by-hazard source, endpoint, native/effective resolution, update rule, score transformation, uncertainty and financial-use gate; explicit disclosure that the 200-asset workbook demo runs in SEED mode. |
| 2.0.0 | 2026-07-31 | Supervisory adaptation evidence gate: institutions may declare measures and upload supporting evidence, but only a BoG acceptance activates hazard, loss or regulatory-score credit; evidence is hashed and decisions retain an audit history. |
| 1.9.0 | 2026-07-31 | Institutional loss register: complete supporting-sheet ingestion, cross-sheet and portfolio asset matching, institution-isolated persistent drafts, auditable events, maker/reviewer segregation, approval and calibration-development gates, data-quality dashboard, and explicit observed/verified/insurance/modelled separation in the saved asset view. |
| 1.8.0 | 2026-07-31 | Loss Data Onboarding Centre: controlled multi-table XLSX template, flexible bank-header mapping, row-level validation, evidence grades, agricultural completeness tests, readiness stages, duplicate controls, short-lived upload sessions and separate accepted/correction exports. Observed, verified, modelled and unverified evidence remain explicitly separated. |
| 1.7.0 | 2026-07-31 | Agricultural model-governance hardening: canonical source-to-variable register, data-quality hierarchy, minimum production-data schema, output-by-output validation status, calibration and independent-validation gate; explicit uncalibrated sensitivity labels in dashboard and asset drill-down; living methodology and downloadable source now carry the agricultural annex automatically. |
| 1.6.0 | 2026-07-31 | Mixed-collateral dashboard: separate Combined, Buildings and Agriculture & land views; agricultural parcel polygons; farm-specific hazard weights, production-loss AAL, land-resilience repricing and climate-smart adaptation measures carried consistently through Python and browser calculations; dedicated 200-asset Ecobank synthetic workbook with 155 buildings and 45 agricultural parcels. |
| 1.5.0 | 2026-07-27 | Independent-review methodology hardening: comprehensive living methodology thesis and downloadable source; explicit abbreviation, formula, evidence-grade, uncertainty, calibration and audit-status sections; expanded coastal data lineage; low-elevation DEM excluded from coastal loss; unsupported building AAL contributions removed for heat, riparian, land and drought, with riparian loss represented through flood to avoid double counting. |
| 1.4.3 | 2026-07-24 | Stakeholder sign-off hardening (bank CRO, IT-security/DPO, consumer-protection, independent quant — all READY-WITH-CONDITIONS): disparate-impact/fairness monitor (per-locality High+ & repricing, outlier flag); anti-redlining banner surfaced in origination UI; price-exclusion + refer-resolution gap rows; CSV formula-injection guard on all exports; external climate/GhanaPostGPS connectors default OFF (air-gapped by default); supervisor write-endpoints rate-limited; submission fingerprint broadened to scenario/live-mode/all risk-modifier inputs; AAL per-term clamp; projected-finding band re-derived; dead repricing_fraction() removed; construction-factor source cited. |
| 1.4.2 | 2026-07-24 | Four-hat BoG/sustainability review hardening: honest relabel of the in-sample flood check (was headline 100%/100%); illustrative supervisor-set risk thresholds (not Directive ceilings); advisory reframed as a synthetic DRAFT template (not a BoG-issued letter); Para 48 PARTIAL status on half-met items; fixed 43(d)(iv) citation + added 43(d)(v)/SBP; short/medium/long-term horizon labels; top-down re-run now keeps observed incidents; PCAF derived from geolocation precision; SHA-256 return fingerprint; adaptation-first origination; independent-validation governance note; GSBP 7-principle + SBFN + nature/inclusion honesty. |
| 1.4.1 | 2026-07-22 | Living clause-by-clause Directive alignment (/directive) as the single source of truth; corrected the semi-annual return citation to Para 48 (Para 46 is the forthcoming Standardized Disclosure Template) with precise item-letter mapping (48(h)/(l)/(m), 43(f), Table 1). |
| 1.4.0 | 2026-06-26 | Model validation page (Accra-2015 hindcast + parameter sensitivity), version stamp on outputs, environmental hardening (Ramsar/riparian-buffer/EIA), insurance & construction asset fields. |
| 1.3.0 | 2026-06-26 | Knowledge Centre; NGFS scenario family; BoG return hardened with methodology-transparency block; Supervisor edition. |
| 1.2.0 | 2026-06-26 | IPCC AR6 per-object scenarios + saturating projection; property-level adaptation with evidence gating; realistic localities; cost recalibration. |
| 1.1.0 | 2026-06-25 | Accounts & saved portfolios; on-prem/air-gap; calibration framework; finance v2 (AAL → repricing → climate ECL). |
| 1.0.0 | 2026-06-24 | Initial release — six-hazard screen, dashboard, board report, BoG semi-annual return. |
14 · References and authoritative links
- Bank of Ghana (2024), Climate-Related Financial Risks Directive: https://www.bog.gov.gh/wp-content/uploads/2024/11/BOG-Climate-Related-Financial-Risks-Directive.pdf
- IPCC (2021), AR6 WGI Africa Regional Fact Sheet: https://www.ipcc.ch/report/ar6/wg1/downloads/factsheets/IPCC_AR6_WGI_Regional_Fact_Sheet_Africa.pdf
- IPCC (2021), AR6 WGI Chapters 11–12 and Interactive Atlas: https://www.ipcc.ch/report/ar6/wg1/
- IPCC (2022), AR6 WGII Chapter 9 Africa: https://www.ipcc.ch/report/ar6/wg2/chapter/chapter-9/
- Huizinga, de Moel & Szewczyk (2017), JRC depth-damage functions: https://publications.jrc.ec.europa.eu/repository/handle/JRC105688
- NGFS climate scenarios portal: https://www.ngfs.net/ngfs-scenarios-portal/
- NASA POWER methodology and data: https://power.larc.nasa.gov/
- NASA POWER API resolution and replacement of near-real-time meteorology: https://power.larc.nasa.gov/docs/tutorials/service-data-request/api/
- EC JRC Global Surface Water v1.4 (30 m; 1984–2021): https://developers.google.com/earth-engine/datasets/catalog/JRC_GSW1_4_GlobalSurfaceWater
- ESA WorldCover 2021: https://esa-worldcover.org/
- Copernicus DEM: https://dataspace.copernicus.eu/explore-data/data-collections/copernicus-contributing-missions/collections-description/COP-DEM
- Permanent Service for Mean Sea Level, Takoradi station 331: https://psmsl.org/data/obtaining/stations/331.php
- Ghana coastal infrastructure inventory (2023): https://doi.org/10.1007/s44218-023-00026-6
- FEMA/USACE/NIBS; Kreibich et al. (2005); Defra FD2657 and CIRIA C790 — transferred adaptation priors, not Ghana calibration.
14.1 Agricultural references and implementation status
- BOG-CRFR-2024 — Bank of Ghana, Climate-Related Financial Risks Directive (2024): https://www.bog.gov.gh/wp-content/uploads/2024/11/BOG-Climate-Related-Financial-Risks-Directive.pdf. Implementation: used in current screening.
- IPCC-AR6-WGII-AFRICA — IPCC, AR6 WGII Chapter 9: Africa (2022): https://www.ipcc.ch/report/ar6/wg2/chapter/chapter-9/. Implementation: used in current screening.
- NASA-POWER — NASA, POWER meteorology and rainfall (runtime): https://power.larc.nasa.gov/. Implementation: used in current screening.
- S2-NDVI-VCI — European Commission / ESA, Copernicus Sentinel-2 crop condition observations (runtime): https://sentinels.copernicus.eu/web/sentinel/missions/sentinel-2. Implementation: used in current screening.
- FAO-WAPOR-3 — FAO, WaPOR v3 water and land productivity database (2009–present): https://www.fao.org/aquastat/en/geospatial-information/wapor/index.html. Implementation: required enhancement; not yet used in scoring.
- CHIRPS-3 — UCSB Climate Hazards Center, CHIRPS v3 rainfall (1981–present): https://www.chc.ucsb.edu/data/chirps. Implementation: required enhancement; not yet used in scoring.
- SOILGRIDS-2 — ISRIC — World Soil Information, SoilGrids 2.0 (2021): https://docs.isric.org/globaldata/soilgrids/index.html. Implementation: required enhancement; not yet used in scoring.
- MOFA-SRID — Ghana Ministry of Food and Agriculture, SRID, Agricultural production estimates and Facts & Figures (annual): https://srid.mofa.gov.gh/node/31. Implementation: required enhancement; not yet used in scoring.
- FAO-AQUACROP — FAO, AquaCrop crop-water productivity model (current): https://www.fao.org/aquacrop/. Implementation: required enhancement; not yet used in scoring.