Trust & bankability

Trust & bankability

WaiMAP supports bankability with evidence you can check: how each number was computed, from which data, how the engines were cross-checked, what it costs and who approved the report.

Supports — cannot guarantee. WaiMAP supports bankability with evidence — methods, sources, calculation records, independent checks, financial models and approval status. WaiMAP cannot guarantee lender or independent-engineer approval: lenders and independent engineers make their own assessment.

Your files

WaiMAP processes your files and does not store them. Your images, GeoTIFFs, photos, CAD drawings and IFC models stay on your own disks or your own servers. WaiMAP processes them and returns the results:
  • On your computerIFC (up to about 200 MB), GeoTIFF / COG previews and point values, DXF drawings and many imports are read in your browser — the file never leaves your computer.
  • On WaiMAP's calculation serverA temporary processing copy exists only while the job runs. It is deleted when the job ends (success or failure) or when you have downloaded the result — within minutes, 2 hours at most. Processed rasters come back to you as downloads.
  • From your own server (URL)Give an https link (presigned S3 / R2 / Azure / GCS, WebDAV or plain https): WaiMAP reads the file from there — rasters by range requests, nothing kept. The link is not stored unless you ask WaiMAP to remember it in your project.
  • What WaiMAP keepsYour project records: parameters, results and metadata (for example a patch's bounds, coordinate system, source, licence and checksum) — small data that belongs to your account.
  • What WaiMAP does not keepYour source files. There is no file storage and no storage quota.

The six trust layers

What WaiMAP shows for each layer, and where to see it.

Trust layerWhat WaiMAP showsWhere
Engineering methodologyEvery engine names its method and standard (IEC 60826 / EN 50341-1 line loads, CIGRE TB 324 change of state, IEC 60909 short circuit, pvlib ModelChain, PyWake wakes, IEC 62933 storage …) in the capability matrix and in the report sections.Capability matrix
Engines per sector
Data traceabilityEvery map layer carries its licence and attribution; reports name sources and dates; the Data Trust & Evidence register classifies inputs as measured, user-supplied, modelled, derived or assumed; Site Check shows source, licence and units per value.Data Trust & Evidence
Site Check
Calculation evidenceCalculation steps, inputs and intermediate results in the report and the Excel calc sheets; the analysis record keeps the inputs fingerprint and software build; the demonstrations publish the calculation summary (CSV) next to the sample report.Project demonstrations
Reports
Independent validationEngine results compared with open reference tools run on the same inputs, analytic solutions, standard tables and anonymised published cases — values, differences, tool versions and dates; licensed-reference cases are listed with their band only.Validation report
Engine cross-checks below
Financial feasibilityProject-finance model (DSCR, LLCR, IRR, NPV, LCOE / LCOS), estimate classes with accuracy ranges, sensitivities and Monte Carlo P50 / P90 — with the unit rates and their dates.Bankability Assessment
Savings method
Approval statusEvery report cover shows a Design status (Concept · Preliminary assessment · Feasibility (screening) · Verified design) and an Approval status (Draft · Checked · Approved · Pre-feasibility only); "Approved" needs a named approver and an explicit confirmation; issued reports can be verified by serial and SHA-256.Report verification
Reports

Engine cross-checks

95 comparisons re-run by tools/validation_run.py (WaiMAP side from tools/validation_cases.js, reference tools on the calculation server) on 2026-10-13: 86 green, 9 amber, 0 red. 1 case(s) with a licensed reference are listed with their band only — no numbers.

All cross-checks
EngineMetricReferenceWaiMAPReference valueDifferenceBand
Solar PV yield (hourly simulator)Annual AC energyNREL PySAM Pvwattsv8 7.1.1.post117,551 MWh17,928 MWh−2.10 %Green
Solar PV yield (hourly simulator)Specific yieldNREL PySAM Pvwattsv8 7.1.1.post11,755 kWh/kWp1,793 kWh/kWp−2.10 %Green
Solar PV yield (hourly simulator)Performance ratioNREL PySAM Pvwattsv8 7.1.1.post184.18 %87.40 %−3.68 %Amber
Solar PV yield (hourly simulator)Annual AC energypvlib ModelChain (Perez, SAPM, PVWatts losses / inverter) 0.16.117,551 MWh18,141 MWh−3.25 %Amber
Solar PV yield (hourly simulator)Specific yieldpvlib ModelChain (Perez, SAPM, PVWatts losses / inverter) 0.16.11,755 kWh/kWp1,814 kWh/kWp−3.25 %Amber
Solar PV yield (hourly simulator)Performance ratiopvlib ModelChain (Perez, SAPM, PVWatts losses / inverter) 0.16.184.18 %87.07 %−3.32 %Amber
PVWatts-method (JS) — WaiMAP's own re-implementation used as an offline second opinionSpecific yieldpvlib ModelChain (PVWatts DC / losses / inverter) 0.16.11,814 kWh/kWp1,814 kWh/kWp+0.008 %Green
Solar PV yield (hourly simulator)Annual AC energyNREL PySAM Pvwattsv8 7.1.1.post121,308 MWh21,708 MWh−1.84 %Green
Solar PV yield (hourly simulator)Specific yieldNREL PySAM Pvwattsv8 7.1.1.post12,131 kWh/kWp2,171 kWh/kWp−1.84 %Green
Solar PV yield (hourly simulator)Performance ratioNREL PySAM Pvwattsv8 7.1.1.post184.89 %87.85 %−3.37 %Amber
Solar PV yield (hourly simulator)Annual AC energypvlib ModelChain (Perez, SAPM, PVWatts losses / inverter) 0.16.121,308 MWh21,938 MWh−2.87 %Green
Solar PV yield (hourly simulator)Specific yieldpvlib ModelChain (Perez, SAPM, PVWatts losses / inverter) 0.16.12,131 kWh/kWp2,194 kWh/kWp−2.87 %Green
Solar PV yield (hourly simulator)Performance ratiopvlib ModelChain (Perez, SAPM, PVWatts losses / inverter) 0.16.184.89 %87.44 %−2.92 %Green
PVWatts-method (JS) — WaiMAP's own re-implementation used as an offline second opinionSpecific yieldpvlib ModelChain (PVWatts DC / losses / inverter) 0.16.12,194 kWh/kWp2,194 kWh/kWp+0.014 %Green
Solar PV — bifacial rear side (2D infinite sheds, JS)Rear-side gain (rear × bifaciality × structure / front)pvlib infinite_sheds (Hay-Davies) 0.16.15.761 %5.757 %+0.069 %Green
Solar PV — bifacial rear side (2D infinite sheds, JS)Annual rear-side irradiationpvlib infinite_sheds (Hay-Davies) 0.16.1177.6 kWh/m²177.6 kWh/m²−0.019 %Green
Solar PV — inverter clipping (Sandia model)Inverter clipping loss (same hourly DC input)pvlib.inverter.sandia 0.16.131.11 MWh31.11 MWh+0.000 %Green
Solar PV — inverter clipping (Sandia model)Inverter clipping loss (same hourly DC input)NREL PySAM Pvsandiainv 7.1.1.post131.11 MWh31.11 MWh+0.000 %Green
Solar PV — performance ratio (IEC 61724-1)Temperature-corrected PR (25 °C)pvlib ModelChain (Perez, SAPM cell temperature, PVWatts DC) 0.16.193.59 %90.93 %+2.656 %Amber
Solar PV — slope-aware backtracking (Anderson & Mikofski 2020)Mean tracker rotation |θ| over the daylight hours (same sun angles)pvlib.tracking.singleaxis (cross_axis_tilt) 0.16.132.75 °32.75 °+0.000000 °Green
Solar PV — row-to-row shading on a slopeRow-to-row shaded fraction, annual sum of hourly valuespvlib.shading.shaded_fraction1d 0.16.1142.0 h142.0 h+0.000000 hGreen
Solar PV — loss diagram (PVsyst order)Energy injected: GHI × kWp + Σ loss-diagram stepsEnergy from the simulator's own hourly chain (identity check)22,531 MWh22,531 MWh+0.000 %Green
Solar PV — automatic stringing (IEC 62548-1 / NEC 690.7)Maximum modules per stringfloor(1500 / (49.5 × (1 + (−0.0025)(−10 − 25))))27.00 modules27.00 modules+0.000000 modulesGreen
Solar PV — row-to-row shading on a slopeShaded fraction of the row width1 − (pitch / width) · sin e / sin(e + β)0.3246 –0.3246 –+0.000000 –Green
Solar PV — tracker pile reveal and gradingGrading volume (cut + fill)Residual 2 % slope → reveals 1.7 ± 0.72 m; excess beyond 1.2–2.2 m × 8 m × 3 m13.44 m³13.44 m³+0.000 %Green
Wind energy yield (hourly, Jensen wakes)Gross AEPPyWake 2.6.20119,922 MWh119,922 MWh−0.000 %Green
Wind energy yield (hourly, Jensen wakes)Wake lossPyWake NOJ / Jensen (same k 0.075, same Ct) 2.6.203.111 %3.108 %+0.002974 %Green
Wind energy yield (hourly, Jensen wakes)Net AEP (after wakes and WaiMAP's other losses)PyWake NOJ / Jensen 2.6.20106,075 MWh106,079 MWh−0.004 %Green
Wind energy yield (hourly, Jensen wakes)Wake loss — wake-model sensitivityPyWake Bastankhah & Porté-Agel Gaussian 2.6.203.111 %3.266 %−0.1550 %Green
Wind energy yield (hourly, Gaussian wakes)Wake loss — Gaussian model, same settingsPyWake BastankhahGaussianDeficit (same settings) 2.6.202.713 %2.702 %+0.0106 %Green
Wind energy yield (hourly, Gaussian wakes)Net AEP — Gaussian model, same settingsPyWake BastankhahGaussianDeficit (same settings) 2.6.20106,511 MWh106,522 MWh−0.011 %Green
Wind energy yield (hourly, Gaussian wakes)Wake loss — Gaussian model, same settingsPyWake BastankhahGaussianDeficit (same settings) 2.6.205.381 %5.365 %+0.0157 %Green
Wind energy yield (hourly, Gaussian wakes)Net AEP — Gaussian model, same settingsPyWake BastankhahGaussianDeficit (same settings) 2.6.20414,359 MWh414,426 MWh−0.016 %Green
Wind farm layout optimisation (Gaussian wakes in the loop)Wake loss — Gaussian model, same settingsPyWake BastankhahGaussianDeficit (same settings) 2.6.201.447 %1.441 %+0.005502 %Green
Wind farm layout optimisation (Gaussian wakes in the loop)Net AEP — Gaussian model, same settingsPyWake BastankhahGaussianDeficit (same settings) 2.6.20215,794 MWh215,807 MWh−0.006 %Green
Wind MCP (long-term correction)Regression slope recoveredKnown relationship of the synthetic case1.101 –1.100 –+0.001057 –Green
Wind MCP (long-term correction)Long-term mean wind speed at 100 m1.1 × reference long-term mean + 0.48.126 m/s8.128 m/s−0.026 %Green
Wind MCP (long-term correction)Standard deviation of the long-term series (variance ratio)√(1.1² σ_ref² + 0.6²)2.672 m/s2.667 m/s+0.22 %Green
Wind shear from mast heightsPower-law exponent α (60 / 100 m)Shear imposed on the synthetic mast0.2000 –0.2000 –+0.000001 –Green
Battery dispatch (dynamic programme on state of charge)Arbitrage margin after throughput cost (perfect foresight)PyPSA (linopy + HiGHS) — linear-programme optimum 1.2.46,254,882 EUR / year6,276,665 EUR / year−0.35 %Green
Battery dispatch (dynamic programme on state of charge)Net arbitrage revenue (sales − charging)PyPSA (linopy + HiGHS) 1.2.46,660,623 EUR / year6,685,204 EUR / year−0.37 %Green
Battery dispatch (dynamic programme on state of charge)Full-equivalent cyclesPyPSA (linopy + HiGHS) 1.2.4362.5 cycles / year365.0 cycles / year−0.68 %Green
Battery dispatch (dynamic programme on state of charge)Daily arbitrage marginClosed-form two-price arbitrage1,589 per day1,589 per day+0.000 %Green
Load flow (AC Newton–Raphson)Voltage at MVpandapower 3.5.50.9997 pu0.9997 pu−0.003 %Green
Load flow (AC Newton–Raphson)Voltage at MVPyPSA AC power flow (n.pf()) 1.2.40.9997 pu0.9997 pu−0.003 %Green
Load flow (AC Newton–Raphson)Voltage at F1pandapower 3.5.51.003 pu1.003 pu−0.002 %Green
Load flow (AC Newton–Raphson)Voltage at F1PyPSA AC power flow (n.pf()) 1.2.41.003 pu1.003 pu−0.002 %Green
Load flow (AC Newton–Raphson)Voltage at POIpandapower 3.5.51.001 pu1.001 pu+0.002 %Green
Load flow (AC Newton–Raphson)Voltage at POIPyPSA AC power flow (n.pf()) 1.2.41.001 pu1.001 pu+0.002 %Green
Load flow (AC Newton–Raphson)Loading of HV-L1pandapower 3.5.541.40 %41.40 %+0.004000 %Green
Load flow (AC Newton–Raphson)Loading of MV-F1pandapower 3.5.584.80 %84.80 %+0.001000 %Green
Load flow (AC Newton–Raphson)Loading of T1pandapower 3.5.579.60 %79.50 %+0.0990 %Green
Load flow (AC Newton–Raphson)Network lossespandapower 3.5.50.8413 MW0.8413 MW+0.005 %Green
Load flow (AC Newton–Raphson)Network lossesPyPSA AC power flow (n.pf()) 1.2.40.8413 MW0.8413 MW+0.005 %Green
Short circuit (IEC 60909-0)Ik″ max at MVpandapower IEC 60909 3.5.516.83 kA16.83 kA+0.000 %Green
Short circuit (IEC 60909-0)Ik″ max at F1pandapower IEC 60909 3.5.513.86 kA13.86 kA+0.013 %Green
Short circuit (IEC 60909-0)Ik″ max at 33 kVIEC 60909-0 by hand (ohms at 33 kV, KT correction)13.85 kA13.85 kA+0.000 %Green
Short circuit (IEC 60909-0)Ik″ max at 33 kVpandapower IEC 60909 3.5.513.85 kA13.85 kA+0.000 %Green
Short circuit (IEC 60909-0)Peak current ip at 33 kVpandapower IEC 60909 3.5.536.81 kA36.81 kA+0.000 %Green
Sag-tension (state-change equation)Sag at 75 °CExact catenary-length iteration (independent code)8.530 m8.530 m−0.003 %Green
Sag-tension (state-change equation, tension section)Horizontal tension, minimum temperature (initial)Independent Python implementation (exact catenary + elastic strain integral) worker 1.0.033.09 kN33.10 kN−0.018 %Green
Sag-tension (state-change equation, tension section)Horizontal tension, extreme wind (initial)Independent Python implementation (exact catenary + elastic strain integral) worker 1.0.051.71 kN51.68 kN+0.054 %Green
Sag-tension (state-change equation, tension section)Horizontal tension, ice (initial)Independent Python implementation (exact catenary + elastic strain integral) worker 1.0.038.73 kN38.72 kN+0.014 %Green
Sag-tension (state-change equation, tension section)Sag at the ruling span, ice (final, after creep)Independent Python implementation (exact catenary + elastic strain integral) worker 1.0.09.980 m9.982 m−0.019 %Green
Sag-tension (state-change equation, tension section)Sag at the ruling span, maximum operating temperature (final, after creep)Independent Python implementation (exact catenary + elastic strain integral) worker 1.0.012.60 m12.61 m−0.007 %Green
Conductor ampacity (IEEE 738 steady state)Ampacity at 75 °Clinerate IEEE738 model 5.0.0721.3 A721.6 A−0.029 %Green
Conductor ampacity (IEEE 738 steady state)Ampacity at 100 °Clinerate IEEE738 model 5.0.0977.1 A977.3 A−0.028 %Green
Optimum tower spotting (dynamic programming)Minimum total tower costExhaustive enumeration of every feasible tower sequence (same constraints)233,929 USD233,929 USD+0.000000 USDGreen
Optimum tower spotting (dynamic programming)Minimum total tower costExhaustive enumeration of every feasible tower sequence (same constraints)194,067 USD194,067 USD−0.0100 USDGreen
Water network solver (Global Gradient Algorithm)Pressure at the junction with the largest difference (5)WNTR / EPANET 2.2 toolkit 1.5.033.80 m33.80 m−0.000347 mGreen
Storm sewer routingOutfall peak flowPySWMM / EPA SWMM 5 2.2.0860.3 L/s862.0 L/s−0.19 %Green
Mass haul optimisation (transportation problem)Optimal haul costOR-Tools SimpleMinCostFlow 9.15.675521,148,723 cost units21,148,723 cost units+0.000 %Green
Steam properties (IAPWS-IF97)Specific enthalpy hCoolProp (IF97 backend) 8.0.03,375 kJ/kg3,375 kJ/kg+0.000 %Green
Steam properties (IAPWS-IF97)Specific enthalpy hCoolProp (IF97 backend) 8.0.01,337 kJ/kg1,337 kJ/kg+0.000 %Green
Hydrogen storage densityDensityCoolProp (reference equation of state) 8.0.024.00 kg/m³23.99 kg/m³+0.001 %Green
Steam properties (IAPWS-IF97)Region 1 specific enthalpy h (3 MPa, 300 K)IAPWS R7-97(2012) verification values115.3 kJ/kg115.3 kJ/kg+0.000 %Green
Steam properties (IAPWS-IF97)Region 1 specific volume v (3 MPa, 300 K)IAPWS R7-97(2012) verification values0.001002 m³/kg0.001002 m³/kg+0.000 %Green
Steam properties (IAPWS-IF97)Region 2 specific enthalpy h (0.0035 MPa, 300 K)IAPWS R7-97(2012) verification values2,550 kJ/kg2,550 kJ/kg+0.000 %Green
GeoTIFF readerSum of all valid cellsGDAL (reference rasters written by rasterio 1.5 / GDAL 3.12) 3.12197,224 elevation units197,224 elevation units+0.000 %Green
GeoTIFF readerSum of all valid cellsGDAL (reference rasters written by rasterio 1.5 / GDAL 3.12) 3.1292,002 elevation units92,002 elevation units+0.000 %Green
GeoTIFF readerSum of all valid cellsGDAL (reference rasters written by rasterio 1.5 / GDAL 3.12) 3.1292,002 elevation units92,002 elevation units+0.000 %Green
GeoTIFF readerSum of all valid cellsGDAL (reference rasters written by rasterio 1.5 / GDAL 3.12) 3.121,047,224 elevation units1,047,224 elevation units+0.000 %Green
GeoTIFF readerSum of all valid cellsGDAL (reference rasters written by rasterio 1.5 / GDAL 3.12) 3.1292,002 elevation units92,002 elevation units+0.000 %Green
GeoTIFF readerSum of all valid cellsGDAL (reference rasters written by rasterio 1.5 / GDAL 3.12) 3.12164,456,000 elevation units164,456,000 elevation units+0.000 %Green
Point-cloud ground filter (SMF)Ground recallKnown ground truth of the synthetic terrain99.98 %100.0 %−0.020 %Green
Wind energy yield (Weibull, synthetic power curve)Per-turbine gross energyPublished study of a low-wind plain wind farm (anonymised)21.15 GWh / year20.09 GWh / year+5.28 %Amber
Project finance modelProject IRRPublished feasibility study (anonymised)10.69 %10.30 %+0.3875 %Green
Project finance modelLCOE at 10 % discountPublished feasibility study (anonymised)88.00 USD/MWh88.06 USD/MWh−0.066 %Green
Project finance modelLCOE at 5 % discountPublished feasibility study (anonymised)70.19 USD/MWh70.76 USD/MWh−0.80 %Green
Run-of-river hydropowerAnnual energy (study method)Feasibility study of a run-of-river scheme (anonymised)48.75 GWh49.30 GWh−1.11 %Green
Run-of-river hydropower — parametric BoQEPC costEPC bill of quantities (anonymised)114.8 USD m123.3 USD m−6.86 %Amber
Substation estimatorEPC price per MVAAwarded public-utility tender (anonymised)53,661 USD/MVA53,000 USD/MVA+1.25 %Green
Substation estimatorTurnkey EPC priceTurnkey offer (anonymised)19.83 USD m17.60 USD m+12.66 %Amber
Solar PV yield (hourly simulator)Specific yieldCommercial satellite-data yield assessment (anonymised)not publishedlicensed data—Green
Project document intake (rule-based extraction)Parameters extracted correctlyKnown parameter list of the test report31.00 count31.00 count+0.000 %Green

Full report with cases, tolerances, sources and dates: validation report (also JSON). A matching cross-check shows that a method is implemented correctly; on its own it does not make a project ready for financing.

Measured calculation time

Real engine operations timed with tools/benchmarks/run_benchmarks.py — 20 repetitions after a warm-up run. These are the only performance figures on this website.

Measured on one machine, one process, sequentially, after a warm-up run. Series throughput is theoretical and real project time depends on data preparation, dependencies, parallelism and review.
OperationEngineWorkloadMedianp95RunsTheoretical series throughput
Sag-tension of one tension sectionWaiLineMech.sagTension (JavaScript in Node)10 spans 380–420 m, ACSR Cardinal, 6 load cases (EDS, minimum temperature, extreme wind, ice, ice + wind, maximum temperature), initial and final (creep)0.04 ms0.30 ms10081,818,181 tension sections / hour, one process (theoretical)
Lattice tower structure checkPyNiteFEA 3D frame through the worker (fem_frame) — model from WaiFEM.latticeTowerTypical square lattice suspension tower: 46 nodes, 178 members, 1 load combinations; displacements, member forces, EN 1993-1-1 style utilisation1.92 s1.93 s51,875 towers / hour, one process (theoretical)
10 km line section — spotting and mechanicsWaiLineMech.design (JavaScript in Node)400 kV, triple ACSR Cardinal, 2 OPGW, one 30° angle point, level profile at 50 m stations: simple spotting, sag-tension per tension section, clearance, tower loads, quantities2.1 ms4.3 ms201,753,531 10 km sections / hour, one process (theoretical)
10 km line section — optimum tower spottingWaiLineMech.optimise (JavaScript in Node)The same 10 km: dynamic programming over candidate stations every 25 m × tower types × extensions, exact weight / wind spans, clearance per tension section (alternatives off)259 ms299 ms1013,908 10 km sections / hour, one process (theoretical)
Yearly PV yield (8,760 hours)pvlib ModelChain through the worker (pv_yield)50 MWp fixed tilt, hourly clear-sky year generated in the call, PVWatts DC / AC, SAPM cell temperature, physical AOI174 ms202 ms2020,686 yearly yields / hour, one process (theoretical)
Load flow + short circuit of a sample gridpandapower through the worker (grid_loadflow)50 MW plant: 3 MV feeders, main transformer, 10 km HV line, external grid; Newton-Raphson load flow and IEC 60909319 ms384 ms2011,274 load flows / hour, one process (theoretical)
Atlas point sample (all installed layers)worker atlas.point (rasterio on the atlas COGs)17 installed atlas COGs (solar, wind, population, built-up 1975–2030, flood) read at one point, warm file cache60 ms63 ms2060,022 points / hour, one process (theoretical)
IFC structure read of the sample modelIfcOpenShell + worker cadbim.ifc_structureWaiMAP sample IFC 4.3 model (6 KB): open, units, storeys, rooms, element classes, checks0.67 ms0.81 ms205,349,182 models / hour, one process (theoretical)
  • HardwareIntel(R) Xeon(R) Processor @ 2.80GHz · 2 cores · 7.8 GB RAM · Linux 6.18.44-fc-v114
  • Date2026-10-12 23:10 UTC
  • Softwarepython 3.13.16 · node v22.22.0 · pvlib 0.16.1 · pandapower 3.5.5 · numpy 2.4.6 · rasterio 1.5.2 · ifcopenshell 0.9.0 · pandas 2.3.3 · PyNiteFEA 3.2.0
  • ConditionsBuild machine (container), one process, operations run sequentially; one warm-up run per operation excluded; local files only, no network; browser engines timed in Node (same code as in the browser), Python engines called as functions of the calculation server (no HTTP). sag_tension runs 5 × N times.
  • Re-runWAIMAP_ATLAS_DIR=<atlas folder> python tools/benchmarks/run_benchmarks.py -n 20 · raw data: benchmarks.json

Approval status on every report

Approval status

  • DraftThe default. Nobody has checked the report yet.
  • CheckedNeeds the checker's name, printed on the cover.
  • ApprovedNeeds the approver's name and an explicit confirmation; it is the issuing organisation's approval — not a lender's or an independent engineer's.
  • Pre-feasibility onlyThe report may only be used for pre-feasibility decisions (the demonstrations use this).

Design status and verification

  • Design statusConcept · Preliminary assessment · Feasibility (screening) · Verified design (only with a named reviewer and an explicit mark).
  • Report levelScreening, feasibility-grade or bankability readiness by plan — stated on the cover.
  • VerificationIssued reports carry a serial; with verification active, a QR code lets the reader check the file's SHA-256 on /verify.

See also Bankability & Data Trust (evidence register, readiness levels) and the savings method.