PortfolioCheck - Methodology Methodology thesis - v2.8.2 Download source down Download HTML down Knowledge Centre ->

Methodology Thesis & Independent Review Source

Version 2.8.2 (2026-08-11) - Owner: Dr. Minka Aduse-Poku (PortfolioCheck methodology owner and developer) - Parameter set: BoG baseline v1 (2026-06) - generated 2026-08-23 - SHA-256 afd03ba314b85595b2440cb2b579eee2f7f83f8f1a013f6af73afd27a6268543
Living document. Generated directly from the running engine - every formula and constant below is exactly what is in production and updates automatically when the model changes. Built for an independent reviewer (Bank of Ghana, IFC, World Bank, a bank's model-validation team) to assess the methodology end-to-end.

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

TermDefinition
AALAverage Annual Loss: expected physical damage per year as a share of value.
AR6Sixth Assessment Report of the Intergovernmental Panel on Climate Change.
CDDConsecutive Dry Days, a drought indicator.
CMIP6Coupled Model Intercomparison Project Phase 6.
DEM / DTMDigital Elevation Model / bare-earth Digital Terrain Model.
DSASDigital Shoreline Analysis System.
EAD / ECLExposure at Default / Expected Credit Loss.
IFRS 9 / IFRS S2Financial-instruments impairment / climate-disclosure standards.
InSAR / SARInterferometric / Synthetic Aperture Radar.
LGD / LTV / PDLoss Given Default / Loan-to-Value / Probability of Default.
NDVI / VCINormalized Difference Vegetation Index / Vegetation Condition Index.
NGFSNetwork for Greening the Financial System.
PCAFPartnership for Carbon Accounting Financials.
PFR / SuDSProperty Flood Resilience / Sustainable Drainage Systems.
RFIRegulated Financial Institution.
Rx1dayAnnual maximum one-day precipitation.
SEEDDeterministic offline screening proxy used when live evidence is unavailable.
SLR / SSPSea-Level Rise / Shared Socioeconomic Pathway.
UHI / WBGTUrban Heat Island / Wet-Bulb Globe Temperature.
s_h / w_hNormalised score / materiality weight for hazard h.

Assertion classes

ClassMeaningPermitted use
ObservedSensor, incident or dated-change evidence covering the location.Risk escalation; loss only with a calibrated vulnerability relationship.
ModelledPhysical model or mapped susceptibility at stated resolution.Screening; loss only after local validation and calibration.
ContextualProximity, regional publication, planning report or coarse proxy.Due diligence only; never automatic loss.
AssumptionExpert 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

2 - Processing pipeline

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

ModeExecutionData roleControl / limitation
SEEDPortfolioCheck deterministic offline engineNo 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 - SafeGroundPOST /screen at the asset coordinateWater, 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 - FloodGuardPoint endpoints and polygon endpoints for agricultural parcelsFlood 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 demoAsynchronous LIVE overlay only when the submitted institution has 80 assets or fewerBooks 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.

HazardComposite weightWhat it captures
Flood0.34Pluvial / riverine flood susceptibility (urban basins, drainage).
Coastal / sea-level0.18Coastal erosion & sea-level rise from shoreline proximity + hotspots.
Extreme heat0.16Extreme-heat / thermal stress (latitude + urban-heat-island).
Riparian proximity0.12Proximity to watercourses and their buffers (Buffer Zone Policy 2014).
Land / contamination0.10Protected-area / Ramsar / contamination land constraint.
Drought / water stress0.10Water-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(/2) + cos(1)cos(2)sin^2(/2)]), R = 6,371 km
HazardSEED transformationScientific status
FloodMaximum 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.
CoastalPiecewise shoreline-distance baseline plus decaying hotspot context; capped at 0.49.Context only; excluded from loss unless observed evidence is attached.
Heat0.25 + 0.60 - clamp[(latitude-5)/6] + UHI uplift up to 0.25 within 12 km.Proxy only; live ERA5 replaces it where available.
RiparianNearest 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.
LandMaximum decaying score within curated Ramsar/protected/contamination radii; minimum 0.05.Due-diligence trigger; not title or contamination proof.
Drought0.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

HazardLive evidence and transformationLoss eligibility
FloodFloodGuard 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.
CoastalObserved 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.
HeatERA5 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.
RiparianSafeGround 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.
LandWorst protected-area, contamination or galamsey traffic light maps to 0.15/0.45/0.80.Constraint/remediation sensitivity, not damage probability.
DroughtNASA 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

FieldCurrent production methodology
EngineFloodGuard + SafeGround
Underlying data and effective resolutionFloodGuard 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 ruleBaseline dataset vintage; SafeGround snapshot/runtime; observed-flood query limited to the most recent 730 days.
Transformation into the 0-1 scoreFloodGuard 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 limitModelled susceptibility, ordinal constraints and observed-event evidence remain separately labelled. Raster resolution is not parcel accuracy.
Financial-use gateBuilding loss sensitivity only through the flood channel; requires local depth-frequency and vulnerability calibration for regulatory reliance.

Coastal / sea-level

FieldCurrent production methodology
EngineFloodGuard coastal evidence + SafeGround context
Underlying data and effective resolutionOpenStreetMap 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 ruleReference snapshots and dated observations; every dated shoreline item retains its observation period.
Transformation into the 0-1 scoreWater/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 limitDEM is a surface model and is not tide-corrected inundation depth. Shoreline proximity is not erosion probability. Unverified defences receive zero benefit.
Financial-use gateNo coastal loss from proximity, DEM or publications. Financial contribution is enabled only by site-covering observed retreat or accepted incident evidence.

Extreme heat

FieldCurrent production methodology
EngineFloodGuard heat
Underlying data and effective resolutionERA5-derived hot-season apparent maximum and seasonal change evidence; SEED otherwise uses latitude plus an urban-heat-island proximity proxy.
Vintage / update ruleERA5 climate/reanalysis vintage through 2024 in the current registry; durable change endpoints report their observation epoch.
Transformation into the 0-1 scoreApparent maximum maps to clamp[(T-28)/(46-28)]; a durable measured change floors the score at 0.80.
Quality and interpretation limitERA5 is regional-scale reanalysis (roughly 9-25 km in the connected product), not building indoor temperature. No false parcel precision is claimed.
Financial-use gateBuildings: prioritisation only, no direct AAL. Agriculture: uncalibrated production-loss sensitivity, clearly labelled.

Riparian proximity

FieldCurrent production methodology
EngineSafeGround
Underlying data and effective resolutionMapped watercourses, water bodies, wetland context and applicable buffer triggers; SEED uses coarse named-river anchors.
Vintage / update ruleSafeGround vector snapshot/runtime response.
Transformation into the 0-1 scoreGreen/amber/red maps to 0.15/0.45/0.80 and triggers buffer/permit due diligence.
Quality and interpretation limitProximity and legal-screening signal, not discharge, water level, return period or proof of statutory non-compliance.
Financial-use gateNo separate riparian AAL; inundation damage belongs in flood to prevent double counting.

Land / environmental constraint

FieldCurrent production methodology
EngineSafeGround
Underlying data and effective resolutionProtected and Ramsar areas, contamination and illegal-mining indicators from mapped Ghana layers, including OSM and protected-area datasets where available.
Vintage / update ruleDataset snapshot/runtime response; authoritative Ghana agency data should supersede global layers when supplied.
Transformation into the 0-1 scoreWorst applicable traffic light maps to 0.15/0.45/0.80.
Quality and interpretation limitA due-diligence trigger, not title search, contamination sampling, permit determination or Environmental Impact Assessment.
Financial-use gateNo direct AAL. Any remediation or market-value effect must be supported by bank valuation and site evidence.

Drought / water stress

FieldCurrent production methodology
EngineFloodGuard + NASA POWER
Underlying data and effective resolutionNASA POWER/MERRA-2 rainfall climatology (meteorology grid about 0.5 degrees x 0.625 degrees, 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 rulePOWER climatology plus dated rainfall/crop epochs registered by FloodGuard.
Transformation into the 0-1 scoreRainfall 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 limitRegional climate evidence does not resolve farm management, irrigation or soil. A single provisional season is labelled provisional.
Financial-use gateBuildings: 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

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) - ( weighth - scoreh / weighth) + w - max(scoreh), w = 0.5

Scaled to 0-100 and banded:

BandScore range
Low< 25
Moderate25 - 50
High50 - 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 x 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 x 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:

AALh = MAX_AALh - AAL_MULTIPLIER - scoreh^AAL_EXP
AAL = 1 - h (1 - AALh), then x construction factor, capped at 0.99
HazardMAX_AAL ceiling
Flood0.050
Coastal / sea-level0.055
Extreme heat0.000
Riparian proximity0.000
Land / contamination0.000
Drought / water stress0.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.
ConstantValueMeaning
AAL_EXP1.2000000000000002Convexity (JRC curve is concave/front-loaded -> 1.5)
AAL_MULTIPLIER1.0Global loss scale (calibration knob)

Construction quality scales the damage an asset suffers (structural vulnerability):

Construction tierDamage factor
informalx1.4
semi_permanentx1.15
permanentx1.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).

HazardBuilding MAX_AALFarmland MAX_AAL
Flood0.0500.100
Coastal / sea-level0.0550.090
Extreme heat0.0000.060
Riparian proximity0.0000.000
Land / contamination0.0000.000
Drought / water stress0.0000.140

Farmland collateral repricing is damped by land resilience (x0.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

IDSourceRole in methodologyUsed nowQuality
BOG-CRFR-2024Bank of Ghana: Climate-Related Financial Risks Directive (2024)Governance, physical-risk assessment, vulnerable sectors and reporting alignment.YesA
IPCC-AR6-WGII-AFRICAIPCC: AR6 WGII Chapter 9: Africa (2022)Climate-risk pathways, African agricultural vulnerability and adaptation context.YesA
NASA-POWERNASA: POWER meteorology and rainfall (runtime)Current rainfall-climatology screening input; coarse proxy, not parcel rainfall.YesD
S2-NDVI-VCIEuropean Commission / ESA: Copernicus Sentinel-2 crop condition observations (runtime)Crop-condition anomaly evidence through FloodGuard; cloud and phenology QA required.YesC
FAO-WAPOR-3FAO: WaPOR v3 water and land productivity database (2009-present)Required enhancement: evapotranspiration, relative soil moisture, biomass and water productivity.Required enhancementC
CHIRPS-3UCSB 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 enhancementC
SOILGRIDS-2ISRIC - World Soil Information: SoilGrids 2.0 (2021)Required enhancement: soil texture, organic carbon and water-related properties with prediction uncertainty.Required enhancementD
MOFA-SRIDGhana Ministry of Food and Agriculture, SRID: Agricultural production estimates and Facts & Figures (annual)Required Ghana calibration: crop area, average yield and production baselines.Required enhancementB
FAO-AQUACROPFAO: AquaCrop crop-water productivity model (current)Candidate crop-specific water/yield response framework; not yet implemented.Required enhancementA

5.1c Minimum data required before agricultural loss calibration

FieldFormatStatusReason
parcel_geometryGeoJSON/WKT polygonRequiredAvoids centroid-only exposure.
crop_or_enterpriseControlled crop/livestock classRequiredSelects crop-specific thresholds and calendar.
seasonPlanting/harvest dates or season codeRequiredLinks hazards to vulnerable growth stages.
area_haVerified hectaresRequiredNormalises yield and production value.
annual_production_value_ghsAudited or evidenced valueRequired for lossCorrect denominator for production loss.
baseline_yield_t_haFarm or district baselineRequired for lossSupports anomaly and yield-loss calculation.
irrigationrainfed/partial/full + reliabilityRequiredMaterial drought vulnerability modifier.
soil_or_water_holdingField test or quality-screened soil layerRequired for calibrated droughtControls plant-available water.
management_and_adaptationMeasure, date, capacity, conditionRequired for creditPrevents generic adaptation credit.
insurancePeril, limit, deductible, expiryRequired for insured lossSeparates gross and retained loss.

5.1d Agricultural data-quality hierarchy

GradeClassDefinition
ABank/field verifiedParcel polygon, crop, season, area, yield, price, irrigation, soil/management and dated evidence.
BAuthoritative localMoFA/GMet/WRC/insurance or other Ghana source at suitable crop, time and spatial resolution.
CEarth observationQuality-screened satellite/reanalysis indicator with resolution, date, uncertainty and aggregation disclosed.
DGlobal proxyGlobal or regional proxy; suitable for screening, not parcel truth.
ESynthetic/defaultDemonstration or missing-data default; never suitable for calibrated loss.

5.1e Output status and permitted interpretation

OutputStatus
Hazard ScreenSCREENING
Composite BandEXPERT_PRIOR_UNCALIBRATED
Production LossILLUSTRATIVE_SENSITIVITY
Land RepricingILLUSTRATIVE_SENSITIVITY
Pd Lgd EclNOT_A_BANK_MODEL
Adaptation CreditEXPERT_PRIOR_REQUIRES_VERIFICATION

5.1f Calibration, back-testing and independent-validation gate

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)
ConstantValue
CAP_RATE0.108
MARKET_CAP_FACTOR0.42
INSURABILITY_ADD0.04
REPRICE_CAP0.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))
ConstantValue
NORMAL_LIQUIDATION0.75
DOWNTURN_DROP0.2
LGD_FLOOR0.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)
ConstantValue
PD_BASE0.024
NEG_EQ_SENS1.5
DAMAGE_PD_SENS3.0
UNINSURED0.7200000000000001
INSURED_UNINSURED0.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 x horizon (vs today)

Flood / riparian - extreme-rainfall (Rx1day) multiplier

Scenario203020502100
SSP1-2.6x1.04x1.06x1.07
SSP2-4.5x1.05x1.09x1.14
SSP5-8.5x1.06x1.13x1.22

Heat - hot-day-count multiplier

Scenario203020502100
SSP1-2.6x1.40x1.80x2.00
SSP2-4.5x1.60x2.50x4.00
SSP5-8.5x1.80x3.00x6.00

Drought - consecutive-dry-days multiplier

Scenario203020502100
SSP1-2.6x1.05x1.08x1.10
SSP2-4.5x1.08x1.15x1.25
SSP5-8.5x1.10x1.20x1.40

Coastal - sea-level rise

Scenario203020502100
SSP1-2.610 cm20 cm40 cm
SSP2-4.511 cm24 cm55 cm
SSP5-8.512 cm29 cm80 cm

NGFS pathways map to the AR6 physical forcing consistent with their warming outcome:

NGFS pathway-> AR6 (SSP)
NGFS Net Zero 2050SSP1-2.6
NGFS Delayed TransitionSSP2-4.5
NGFS Current PoliciesSSP5-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_combinedh = min(CAPh, 1 - i (1 - ci - 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 x0.5 (they protect against the same residual). Measure credits:

MeasureHazard credits
Engineered + maintained drainage / SuDSflood 20%, riparian 15%
Raised plinth / finished floor +0.3 mflood 20%, riparian 20%
Raised plinth / finished floor +1 mflood 55%, riparian 55%
Floodproofing + barriers (sealed openings)flood 35%
Property flood resilience (resistant materials)flood 30%
Sea defence / revetment / managed setbackcoastal 40%
Cool / reflective roof + shadingheat 20%
Green roof / insulationheat 15%
Rainwater storage / on-site retentionflood 10%, drought 15%
Irrigation / verified on-farm water storagedrought 35%, heat 10%
Drought-/heat-tolerant crop or varietydrought 20%, heat 20%
Soil-moisture conservationdrought 15%, heat 8%
Field drainage / bunding / raised bedsflood 25%, riparian 10%
Agroforestry / productive shadeheat 18%, drought 10%
Per-hazard capValue
flood85%
riparian85%
coastal80%
heat50%
drought50%
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.

ConfidencePCAF scoreMeaning
High3Precise geolocation (coordinates / GhanaPostGPS), best a screen achieves
Medium4Modelled / screening-grade
Low5Address-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

ComponentCurrent evidenceStatusRequired before regulatory reliance
SEED floodSmall in-sample Accra 2015 locality design check.Development check onlyIndependent events, random controls, ROC/AUC, calibration and spatial cross-validation.
Other SEED hazardsLogic tests and geographic plausibility.Not outcome-validatedIndependent Ghana observations and false-positive/false-negative analysis.
Live hazard layersSource-contract and regression tests.Screening validationBenchmark against authoritative events/maps with resolution and uncertainty.
Composite indexDeterministic and sensitivity-tested.Not empirically calibratedFit weights/thresholds to agreed outcomes; test stability and discrimination.
Financial overlayFormula, parity and parameter-sensitivity tests.IllustrativeBank claims, defaults, recovery, valuation and insurance calibration; back-test and independent sign-off.
ScenariosAR6-consistent directional forcing.ExploratoryLocation-specific downscaling, response functions and uncertainty ranges.
Adaptation creditsTransferred literature priors with evidence gate.IllustrativeGhana engineering, maintenance and post-event validation.

9.2 Minimum calibration protocol

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.

10 - Regulatory framework mapping

Active parameter set: BoG baseline v1 (2026-06) (stamped on every report and return). Outputs map to:

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

ClauseRequirementPortfolioCheck
48(h)Physical-risk data on the vulnerability of assets, climate risk drivers and exposuresCore output
48(l)Exposures subject to physical risks (chronic & acute) split by geographical region/location, and the proportion of total exposures and total assetsCore output
48(m)Details of the methodology used to determine exposures subject to physical riskCore output
48(f)Description of risk-assessment methodologies including stress-testing scenarios and assumptionsPartial
48(b)Metrics on assets in highly vulnerable sectors and geographical locationsPartial
48(i)Forward-looking information - scenario-analysis results and forward-looking metricsPartial
48(k)The process for identifying vulnerable concentrated exposures and assessing likelihood and impactCore output
48(j)Exposure to transition-risk sectors (mining, carbon-intensive) as a proportion of totalNeeds bank's book
48(a)Description of material risks and the governance / risk-management / strategy approachNeeds bank's book
Para 46Format per BoG's Standardized Disclosure Template (issued with ICAG)Feeds bank process
Part III-A / VGovernance, board oversight, transition plan, ICAAP integrationNeeds 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:

AreaOwnerBlockingWhat remains
Property valuationBank credit / valuationYesClimate haircuts are applied to an implied collateral value, not a surveyed valuation. The bank's valuation must confirm property values.
PD / LGD modelsBank risk modellingYesECL figures use illustrative default PD/LGD parameters. The bank must substitute its own IFRS 9 term-structure and recovery model.
Building-level resilienceSurvey / site inspectionYesFinished-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 evidenceBank / site verificationYesRecorded 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 statusBank / borrower recordsYesWhether each property carries valid flood/peril cover is a key loss mitigant and is not in the book; confirm per asset.
Governance & disclosureBank governanceYesBoard oversight, the bank's own footprint and the formal disclosure statement are governance items this screen cannot produce.
Scenario calibrationClimate science / consultantAdvisoryForward 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 scopeBank / consultantAdvisoryThis 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 scopeBank / consultantAdvisoryThis 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 transitionBank / SBP programmeAdvisoryFinancial-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 conductAdvisoryThe 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 auditBank credit workflowAdvisoryA 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

12 - Hazard & data sources (with vintage)

LayerSourceVintage
Flood / surface waterFloodGuard susceptibility grid - MERIT Hydro - JRC Global Surface Water - SafeGround constraints - Sentinel-1 observed-event extents2021-2026
Coastal referenceOpenStreetMap coastline snapshot - ESA WorldCover 2021 land/water QA - Copernicus DEM elevation2021 / snapshot 2026-07-27
Coastal changeDated shoreline observations where available - Ghana sector literature registry - Ghana Hydrological Authority project reports2008-2025 / registry 2026-07-27
Coastal sea levelIPCC AR6 scenario increments - PSMSL Takoradi station 331 retained with quality warning and excluded from trend fittingAR6 / PSMSL 1929-2012
HeatERA5 hot-season apparent maximum and durable seasonal change - latitude + urban-heat-island + highland cooling in SEED modeERA5 through 2024
RiparianSafeGround mapped watercourse proximity - continuous major-river polyline network (Volta system, Pra, Ankobra, Tano, Densu...) with point-to-segment distance in SEED moderuntime / SEED
Land / protectedSafeGround protected-area, contamination and galamsey checks - Ramsar/protected anchors in SEED moderuntime / SEED
Drought / water stressNASA POWER rainfall climatology - FloodGuard rainfall deficit - Sentinel NDVI/VCI crop stress - aridity geography (savanna north + SE coastal dry belt) in SEED moderuntime through 2026
ScenariosIPCC AR6 SSP + NGFS (mapped) - World Bank Climate Knowledge PortalAR6 / 2024
Damage basisJRC Africa flood depth-damage curve (Huizinga et al. 2017) - First Street / UNDRR AAL tiers2017 / 2025
Agricultural governanceCanonical source-to-variable, quality, minimum-input and validation register in core/agri_governance.py2026-07-31
Agricultural calibration candidatesGhana MoFA SRID yields/production - FAO WaPOR v3 - CHIRPS v3 - ISRIC SoilGrids 2.0 - FAO AquaCropNot yet used in scoring; registered 2026-07-31
Bank loss-data schemaPortfolioCheck LOSS-1.0: event, exposure, physical/production loss, insurance, credit outcome and evidence lineage fields2026-07-31

13 - Version history

VersionDateChange
2.8.22026-08-11Accessibility 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.12026-08-11Production 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.02026-08-11Methodology 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.02026-08-07Methodology / 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.02026-08-06Per-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.02026-08-06Sentinel-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.22026-08-06Location-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.12026-08-06Origination 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.02026-08-06Map-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.02026-08-06Best-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.02026-08-05Real 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.52026-08-05In-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.42026-08-05Dedicated 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.32026-08-05Persistent 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.22026-08-03Adaptation-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.12026-07-31Supervisory 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.02026-07-31Reviewer-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.02026-07-31Supervisory 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.02026-07-31Institutional 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.02026-07-31Loss 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.02026-07-31Agricultural 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.02026-07-31Mixed-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.02026-07-27Independent-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.32026-07-24Stakeholder 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.22026-07-24Four-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.12026-07-22Living 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.02026-06-26Model validation page (Accra-2015 hindcast + parameter sensitivity), version stamp on outputs, environmental hardening (Ramsar/riparian-buffer/EIA), insurance & construction asset fields.
1.3.02026-06-26Knowledge Centre; NGFS scenario family; BoG return hardened with methodology-transparency block; Supervisor edition.
1.2.02026-06-26IPCC AR6 per-object scenarios + saturating projection; property-level adaptation with evidence gating; realistic localities; cost recalibration.
1.1.02026-06-25Accounts & saved portfolios; on-prem/air-gap; calibration framework; finance v2 (AAL -> repricing -> climate ECL).
1.0.02026-06-24Initial release - six-hazard screen, dashboard, board report, BoG semi-annual return.

14 - References and authoritative links

14.1 Agricultural references and implementation status

PortfolioCheck methodology - Dr. Minka Aduse-Poku - PortfolioCheck v2.8.2 (2026-08-11) - Screening-grade decision-support - it feeds, and does not replace, a bank's IFRS 9 / PD-LGD models. Demo figures are synthetic and illustrative.