Technical Reference

Platform Architecture

A visual map of the shared library, application modules, and inter-system dependencies that power the Austral Intelligence infrastructure fiscal intelligence platform.

Hub-and-spoke shared engine architecture

All analytical logic is centralized in ppp-core, a shared Python library with 90+ modules across a dozen domains. Each application re-exports the engines it needs, keeping a single source of truth while enabling independent UI development.

Shared Library
Financial Apps
Fiscal Risk
Guarantees
Risk
Standalone

Click a node to see details

ppp-core

Shared library
92 files · 12 domains
engine · guarantees · pfram · cba · risk · common · pefa · dsa · srs1 · pima · tax · subnational

VFM

Value for Money
25 engine re-exports
17 UI modules

FM

Financial Model
20 engine re-exports
28 UI modules

Guarantees

CLV Platform
10 engine re-exports
8 chart modules

Risk

Risk Register
2 data re-exports
GIH + PFRAM data

Equity

CAPM Calculator
standalone

Austral AI

RAG Chatbot
standalone

GFS

Govt Financial Stmts
5 engine re-exports
i18n · pfram/*

Stress

Portfolio Stress Test
20+ engine re-exports
stress/* · guarantees/*

Monitor

PPP Dashboard
i18n · SQLite
standalone

CBA

Cost-Benefit Analysis
14 engine re-exports
cba/*

AI Copilot

Contract extraction · IPSAS classify · FRS narrative
ai_extract · platform

PEFA

PI-10 Scorecard
M2 · Climate-PEFA
pefa/*

Subnational

Subnational Fiscal Risk
health check
subnational/*

ppp-core — Shared Library

ppp-core/ppp_core/

engine/ (29 files)

  • model.py — Main financial model runner
  • model_inputs.py — Base data structures
  • construction, debt, debt_sizing — Project finance
  • revenue, opex — Cash flows
  • balance_sheet, income_statement — Statements
  • ratios, waterfall — Analysis outputs
  • monte_carlo, sensitivity — Risk simulation
  • psc, risk_allocation — VFM-specific
  • fx, funding, depreciation, reserves — Support
  • breakeven, refinancing, equity_engine — Advanced

Other modules

  • guarantees/ (11) — CLV engines: MRG, FX, debt, termination, portfolio, correlation, sensitivity, diagnostics
  • pfram/ (19) — Fiscal risk: GFS calcs, fiscal affordability, risk matrix, WEO API, guarantee bridge
  • cba/ (14) — Cost-Benefit Analysis: engine, costs, benefits, NPV, Monte Carlo, sensitivity, reference class, shadow prices, proxy library
  • risk/ (3) — GIH sector data, PFRAM categories & questions
  • common/ (1) — Project metadata
  • pefa/ (2) — PEFA PI-10 fiscal-risk-reporting scorer + Climate-PEFA supplement (M2 aggregation)
  • dsa/ (2) — Debt Sustainability Analysis: debt-dynamics projection, debt-stabilizing primary balance, GFN, debt-transparency scorecard
  • srs1/ (2) — IPSASB SRS 1 climate-disclosure readiness (four-pillar framework + scorer)
  • pima/ (2) — IMF PIMA 15-institution public-investment diagnostic (strength vs effectiveness)
  • tax_expenditure/ (2) — Tax-expenditure & quasi-fiscal-operation hidden-cost register
  • subnational/ (2) — Subnational (municipal/state) fiscal-risk health check
  • ipsas/ (+2) — IPSAS 45 infrastructure (current-value model) + IPSAS 39 DBO sensitivity disclosure

AI Copilot — Document AI

austral-platform/modules/copilot/ · services/ai_extract.py

Capabilities

  • Contract extraction — PPP/concession PDF/DOCX → guarantees, contingent liabilities, risk allocation, payment terms (into FARO / Guarantees)
  • IPSAS classifier — transaction → suggested IPSAS standard + rationale + confidence
  • FRS narrative — Fiscal-Risk-Statement figures → minister-ready narrative (FTC Pillar III)

Design

  • Schema-validated JSON on the metered Claude path (services/ai_extract.py)
  • Graceful manual-entry fallback — never a black box
  • Document parsing via pypdf / python-docx

PEFA — PI-10 Scorecard

austral-platform/modules/pefa/ · ppp_core/pefa/

Dimensions (method M2)

  • 10.1 — Monitoring of public corporations
  • 10.2 — Monitoring of subnational governments
  • 10.3 — Contingent liabilities & other fiscal risks

Output

  • M2-aggregated grade (A / B+ / B / C+ / C / D+ / D)
  • Climate-PEFA supplement (informational)
  • Prioritised remediation. Basis: PEFA 2016 + Climate-Responsive PEFA

Subnational — Subnational Fiscal Risk

austral-platform/modules/subnational_risk/ · ppp_core/subnational/

Indicators

  • Revenue autonomy (own-source / total)
  • Debt burden & debt-service capacity
  • Operating balance, liquidity, contingent liabilities

Output

  • Per-indicator Low / Medium / High rating
  • Overall fiscal-risk rating + flags
  • For markets the IDB FISLAC doesn't reach. Basis: WB/IMF subnational DSF & PFM

VFM — Value for Money Assessment

vfm/app.py · 11 tabs

ppp-core imports (25 re-exports)

  • All engine/ modules (model, debt, revenue, opex, construction, etc.)
  • psc.py — PSC/PPP comparison
  • risk_allocation.py — Risk inputs
  • vfm_monte_carlo.py — VFM-specific Monte Carlo
  • vfm_sensitivity.py — VFM sensitivity
  • equity_engine.py — Cost of equity

App-specific (17 UI modules)

  • Qualitative screening, incentives, questionnaire, NFB
  • Cost of equity tab
  • VFM report generation
  • Sensitivity tab
  • Excel export
  • Widget key system (wk() in formatting.py)

FM — Financial Model

austral-platform/backend/app/modules/fm/ · Multi-tenant, real-time

ppp-core engine (shared library)

  • Same engine as the legacy fm/app.py Streamlit standalone
  • model, debt, revenue, opex, refinancing, reserves
  • breakeven, sensitivity, monte_carlo
  • health_check — Model diagnostics
  • Bit-for-bit calc parity with the legacy app (verified across 5 demo projects, 14 sheets, 0 cell diffs)

Platform delivery

  • Served at fm-platform.austral-intelligence.com via host-detection middleware
  • Slim single-tool chrome (no platform sidebar)
  • Real-time multi-user collaboration via WebSocket
  • Database-backed projects (auto-save) + JSON session round-trip with the legacy app
  • 18-sheet XLSX + 5-page i18n PDF (EN/ES/FR/PT) exports
  • AI insights (Claude) + public batch API (X-API-Key)
  • Legacy fm.austral-intelligence.com Streamlit standalone was retired in the 2026 standalone cutover; that host now redirects to the platform standalone

Guarantees — CLV Platform

guarantees/app.py

ppp-core imports (10 re-exports)

  • data_models.py — SimulationConfig, CorrelationConfig
  • macro_shocks.py — Macro shock scenarios
  • Engines: debt, FX, MRG, termination
  • portfolio, correlation, sensitivity
  • diagnostics — Engine diagnostics

App-specific

  • 8 chart modules (one per engine)
  • Session state management
  • File I/O (Excel import/export)
  • Custom formatting & styling

Risk — Risk Register

risk/app.py

ppp-core imports (2 re-exports)

  • gih_risk_data — GIH sector definitions
  • pfram_data — PFRAM categories & questions
  • calc_pfram_rating(), calc_pfram_priority()

App-specific

  • Integrates GIH + PFRAM risk data
  • Risk allocation (from VFM engine concepts)
  • Test session generation
  • GIH data extraction utilities

Equity — Cost of Equity Calculator

equity/app.py

No ppp-core dependency

  • Standalone Damodaran-based beta/CAPM
  • Own data files (betaemerg.xls, ctryprem.xlsx)

Features

  • i18n support
  • Country risk premium calculations

Austral AI — Expert Chatbot

austral-ai/ai.py + ingest.py

No ppp-core dependency

  • LangChain-based RAG system
  • FAISS vector store

Features

  • Dual LLM (OpenAI + Anthropic)
  • Python REPL for computation
  • Document library ingestion

GFS — Government Financial Statements

gfs/app.py · 7 pages

ppp-core imports (5 re-exports)

  • pfram/ — GFS calculations, fiscal affordability
  • calculate_project(), validate_project()
  • sensitivity_mc — Monte Carlo simulation
  • excel_io — PFRAM Excel import

App-specific

  • Full i18n (en/fr/es/pt)
  • SQLite database backend
  • Tornado & heatmap sensitivity
  • Fiscal ceiling testing
  • FCCL & affordability reports

Stress — Portfolio Stress Testing

stress/app.py · 11 tabs

ppp-core imports (20+ re-exports)

  • stress/ — Stress runner, DSF engine, credit metrics
  • stress/fiscal_space — Fiscal headroom
  • guarantees/macro_shocks — Predefined scenarios
  • pfram/risk_matrix — Risk matrix integration
  • stress/fan_charts, climate_risk, esg_scoring

App-specific (14 UI modules)

  • Dashboard, portfolio setup, macro scenarios
  • Debt sustainability & fiscal space
  • Credit metrics & sensitivity
  • Contingent liabilities & risk matrix
  • Fiscal risk statement reports

Monitor — PPP Monitoring Dashboard

mon/app.py · Multi-page

No ppp-core dependency

  • Standalone monitoring platform
  • SQLite database backend

Features

  • Full i18n (en/fr/es/pt)
  • Project lifecycle tracking
  • Fiscal commitment monitoring
  • Sector & status dashboards

CBA — Cost-Benefit Analysis

cba/app.py · Multi-sector desktop CBA

ppp-core imports (14 re-exports)

  • cba/engine.py — Main CBA runner
  • cba/costs.py — Construction, O&M, residual value
  • cba/benefits.py — User benefits, externalities, shadow wage
  • cba/npv.py — Discounting & IRR
  • cba/monte_carlo.py — Probabilistic simulation
  • cba/sensitivity.py — One-at-a-time & tornado
  • cba/reference_class.py — Flyvbjerg / ROCKS benchmarks
  • cba/social.py — Shadow prices, distributional weights
  • cba/validation.py — Input sanity checks
  • cba/library/* — Cost benchmarks, national parameters, discount rates, shadow carbon, citations

Sectors covered

  • Transport (roads, rail, ports, airports)
  • Energy (conventional, renewable, grid)
  • Water & sanitation
  • Health & education infrastructure
  • Social housing
  • Other public investment

Guidelines

  • EC 2014 · World Bank · ADB · Green Book
  • OMB A-94/A-4 · ATAP · HEATCO · WHO HEAT
  • IRENA · ROCKS · Flyvbjerg reference class

Application overview

Fourteen applications, one shared analytical core. Each tool is independently deployable while sharing a single source of truth for financial modeling, fiscal risk assessment, guarantee valuation, and cost-benefit logic.

App Entry Point Engine UI ppp-core Domain Purpose
VFM vfm/app.py 25 17 engine/* vfm-platform.austral-intelligence.com Value for Money assessment
FM austral-platform/modules/fm/ 20 18 platform pages engine/* fm-platform.austral-intelligence.com Project finance model
First module migrated from Streamlit to platform
Guarantees guarantees/app.py 10 8 charts guarantees/* guarantees-platform.austral-intelligence.com Contingent liability valuation
Risk risk/app.py 0 Monolithic risk/* risk-platform.austral-intelligence.com Risk register & allocation
Equity equity/app.py 0 Custom — equity-platform.austral-intelligence.com CAPM / cost of equity
Austral AI austral-ai/ai.py 0 Custom — ai.austral-intelligence.com RAG expert chatbot
GFS gfs/app.py 5 7 pages pfram/* gfs-platform.austral-intelligence.com Government financial statements
Stress stress/app.py 20+ 14 stress/* · guarantees/* stress-platform.austral-intelligence.com Portfolio fiscal stress testing
CBA cba/app.py 14 Multi-page cba/* cba-platform.austral-intelligence.com Cost-Benefit Analysis (multi-sector)
Monitor mon/app.py 0 Multi-page — monitor-platform.austral-intelligence.com PPP monitoring dashboard
AI Copilot austral-platform/modules/copilot/ — platform pages ai_extract platform.austral-intelligence.com Document AI — contract extraction, IPSAS classifier, FRS narrative
PEFA austral-platform/modules/pefa/ 2 platform pages pefa/* platform.austral-intelligence.com PEFA PI-10 fiscal-risk-reporting scorecard
Subnational austral-platform/modules/subnational_risk/ 1 platform pages subnational/* platform.austral-intelligence.com Subnational (municipal/state) fiscal-risk health check

Shared Engine Module Matrix

Engine ModuleVFMFMNotes
model, model_inputs✓✓Core financial model
construction, debt, debt_sizing✓✓Project finance
revenue, opex✓✓Cash flows
balance_sheet, income_statement✓✓Financial statements
ratios, waterfall✓✓Analysis outputs
monte_carlo, sensitivity✓✓Risk simulation
breakeven, refinancing, reserves✓✓Advanced features
funding, fx, depreciation✓✓Supporting engines
health_check✓✓Model diagnostics
psc, risk_allocation✓—VFM only
vfm_monte_carlo, vfm_sensitivity✓—VFM only
equity_engine✓—VFM only

Inside ppp-core

ppp_core.engine/ 29 files

model.py · model_inputs.py · construction.py · debt.py · debt_sizing.py · revenue.py · opex.py · funding.py · fx.py · balance_sheet.py · income_statement.py · depreciation.py · ratios.py · waterfall.py · monte_carlo.py · sensitivity.py · breakeven.py · refinancing.py · reserves.py · equity_engine.py · health_check.py · psc.py · risk_allocation.py · vfm_monte_carlo.py · vfm_sensitivity.py

ppp_core.guarantees/ 11 files

data_models.py · macro_shocks.py · correlation.py · debt_engine.py · fx_engine.py · mrg_engine.py · termination_engine.py · portfolio_engine.py · sensitivity_engine.py · diagnostics.py

ppp_core.pfram/ 19 files

calculate_project.py · calculate_contingent.py · calculate_gfs.py · fiscal_affordability.py · risk_matrix.py · risk_questions.py · bridge.py · guarantee_bridge.py · constants.py · session_defaults.py · financial_functions.py · private_partner.py · portfolio.py · sensitivity_mc.py · fccl_report.py · excel_io.py · weo_api.py

ppp_core.cba/ 14 files

engine.py · inputs.py · costs.py · benefits.py · npv.py · monte_carlo.py · sensitivity.py · reference_class.py · social.py · distribution.py · validation.py · demo.py · library/citations.py · library/cost_benchmarks.py · library/discount_rates.py · library/national_parameters.py · library/shadow_carbon.py

ppp_core.risk/ 3 files

gih_risk_data.py · pfram_data.py · pfram_risk_data.py

VFM ui/ 17 files

formatting.py · inputs_general.py · inputs_revenue.py · inputs_opex.py · inputs_funding.py · inputs_risk.py · cost_of_equity_tab.py · qualitative_screening.py · qualitative_incentives.py · qualitative_questionnaire.py · qualitative_nfb.py · outputs_quantitative.py · outputs_vfm_report.py · sensitivity_tab.py · manual_tab.py · export_excel.py

FM ui/ 28 files

formatting.py · inputs_general.py · inputs_opex.py · inputs_revenue.py · inputs_funding.py · outputs_dashboard.py · outputs_construction.py · outputs_debt.py · outputs_statements.py · outputs_waterfall.py · outputs_ratios.py · outputs_charts.py · outputs_sensitivity.py · outputs_scenarios.py · outputs_breakeven.py · outputs_monte_carlo.py · outputs_govt_affordability.py · outputs_health_check.py · outputs_risk_covenant.py · outputs_termination.py · session_manager.py · portfolio_helpers.py · export_excel.py · export_pdf.py · documentation.py · home.py

Platform Services Sprint 8

475+ API routes · 133 frontend pages · 26 analytical modules · 23 database tables · SCIM 2.0 provisioning · Celery nightly sync · Stripe invoices + dunning · OData dual-auth (JWT + API key) · FARO dispute rollup · External data enrichment (WB/IMF/BIS) · EU Taxonomy (33 activities) · ESA classifier (expanded) · AML custom sanctions lists · SSO (OIDC + SAML 2.0 + SCIM 2.0) · Country Readiness Diagnostic (WB 2016 v2) · OECD Principles cross-walk · Infrastructure Fund (PIF) capital-adequacy engine · PPP Fiscal Budget & Programme Hub