Frontier.Design
Learn

Methodology

Every number on a Frontier.Design results page traces back to one of the submodels below. Coefficients have inline citations; the underlying code lives in packages/neemo (Apache-2.0) and is reproducible from a fresh checkout. The Verification & Validation PDF generated for every scenario is the proof-of-math counterpart to this page.

Submodels

The first five rows (Aquaculture → IAEM) are the published NEEMO framework. The remaining rows are extensions shipped by Frontier.Design on top of the open-core package.

Finance — 3-statement model + DSCR

Auto-attached to every scenario. P&L + balance sheet + cash flow (monthly Y1–Y3, annual Y4–Y10). Debt schedule with capitalised construction-period interest, DSCR / LLCR / PLCR coverage ratios, loan covenants, four bank stress tests (rate +200 bps, revenue −20%, OPEX +15%, energy +30%). Default config: 60/40 D/E, 7% rate, 20-year term, 18-month construction, 1.20× DSCR covenant — overridable from the wizard's optional Finance step.

Ramp — commissioning S-curve

Logistic ramp (k = 6.0 default) applied to revenue + variable COGS across Year 1 and Year 2; fixed cost runs at full from Year 1. steady_state_from_npv_details() derives the rev/var/fixed split exactly from IAEM's return_details — replacing prior heuristic decomposition.

Schedule — planting calendar + fish-batch Gantt

52-week × bay planting calendar with staggered or sequential rotation, phase-tagged. Fish-batch Gantt computes staggered cohort schedules using aquaculture.simulate_cohort growth math, sized to hit annual LWG target across n_tanks. Renders to the Production Plan PDF.

Policy & incentives

Scalar adjusters per ISO2: feed-in tariffs, CapEx grants, production tax credits, carbon credits, plus a US federal stack (§45Q PTC, §48 ITC, REAP). Each rule cites its statute + effective date. Indicative only — verify with a local tax advisor.

Climate layer (in progress)

Pre-baked monthly CSVs per ISO2 + curated lat-band water-inlet temps scaffold the seasonal refactor of the flat RAS-heating and supplemental-lighting coefficients in the manuscript. The manuscript's Section 4.6 sketches the right shape (~209 MWh/yr water heating at Gothenburg tilapia; ~955 MWh/yr lighting at 57.7°N); shipping the seasonal calc in code is the next milestone.

Validation — measured-system cross-checks

Schema-driven runner reads validation_cases.yaml and asserts model output stays within published acceptance windows. Two cases ship at v1: UVI BAPS (Rakocy 2007/2012) and Avgoustaki & Xydis 2020 vertical lettuce. Outliers are acknowledged with case notes for genuine yield-optimisation-vs-demonstration-system gaps. Every release runs test_no_catastrophic_drift_against_published_data.

Verification & Validation PDF

Per-scenario standalone doc (also 6th doc in the LoanPack.zip bundle). Renders math derivations per submodel, the 30-entry citation provenance table, the 426-test catalogue grouped by category, MC convergence + Q-Q + benchmark residuals charts, reconciliation between IAEM cashflows and finance.financials_extended (1% tolerance), and a reproducibility hash + rerun command. Designed for underwriters, peer reviewers, and model-risk-management.

Corrections vs the published NEEMO manuscript

Corrections layered in code at packages/neemo/src/neemo/species_corrections.py and packages/neemo/src/neemo/baps.py. The manuscript workbook (model_inputs.xlsx) is preserved byte-for-byte so the JCLP reproducibility chain stays intact. A full courtesy errata report is queued for Lobanov et al. prior to journal final acceptance.

Tilapia heat-increment fraction (HiE) 0.17 → 0.45

Workbook stored the salmonid value (Bureau 1998 Eq. 14) under the tilapia row. Corrected to the tilapia value (Chowdhury 2013 Eq. 20). Raises feed requirement ~165% at given growth rate.

Tilapia non-faecal loss fraction 0.09 → 0.0576

Same source mix-up. Affects dissolved-N budget that drives BAPS fish:plant coupling.

Tilapia fillet yield 45% → 34%

Workbook implied 45% via `1 − Processing Efficiency Filleted = 0.45`; FAO 2018 reports 33–35% for skinless tilapia. Reduces fish revenue 25–65%.

RAS electricity intensity 1.5 → 7.5 kWh/kg LWG

Workbook default reflects pumping-only. Badiola 2018 systematic review median for total system (incl. aeration, UV, filtration) is ~7.5. The original masked energy-cost sensitivity.

BAPS plant N-demand dry-matter fraction (new in Sprint D)

Manuscript formula acp × 1000 × N_Assim produced fish_lwg > plant_kg for leafy systems — violates the N mass balance for leafy greens at ~1.5 g N/kg FW. Frontier applies per-crop-group dry-matter fractions (leafy 0.05 / herb 0.10 / fruiting 0.06 / roots 0.12 / microgreen 0.08) before N assimilation. Legacy R parity test is xfail until upstream R model carries the same fix.

Citation hygiene fixes

equipment_useful_life reattributed to AACE 16R-90 + Engle 2010 (was IRS Pub 946, a tax document). TGC for tilapia switched to Chowdhury 2013 + rainbow trout to Lugert 2014 (was Jobling 2003, less species-specific).

Data sources

  • Climate: NASA POWER (pre-baked monthly CSVs per ISO2) + curated lat-band water-inlet temps.
  • Electricity prices: Eurostat industrial (EU) + EIA (US) + Statistics Norway / SCB (Nordic).
  • Crop wholesale prices: EUMOFA monthly (EU) + USDA AMS terminal markets (US).
  • FX (EUR → display currency): ECB annual averages, keyed by project cost_year. Math stays EUR-canonical; conversion is at render time only.
  • LCA factors: Agribalyse 3.1, ecoinvent summary tables (N/P/K-fert + fish feed), IPCC AR6 GWP100, ReCiPe2016 midpoint.
  • Policy rules: Statute references in packages/neemo/src/neemo/data/policy/rules.json, updated quarterly.
  • Tax: MACRS class-life tables + §168(k) phase-down CSV (2022–2030) in packages/neemo-tax (proprietary).

Test posture

The model and rendering pipeline are guarded by 426+ tests + 1 documented xfail across packages/neemo, packages/neemo-tax, apps/api, and apps/worker. The catalogue is tagged by category (numerical / render / plumbing / api / other) and surfaces in §5 of the per-scenario V&V PDF so “X tests passing” doesn't conflate plumbing with numerical correctness.