Financial pillar · v0.8.1

financial-model FinancialModel

Period financial data with concept names aligned to XBRL US-GAAP taxonomy.

$id · https://corpospec.com/schemas/v0.8.1/financial-model.schema.json

Fields

Field Type Required Description
currency IsoCurrency yes ISO 4217 currency code.
entity PathRef yes Path-based cross-reference relative to .corpospec/ root. Pattern: `^[a-z0-9_-]+(/[a-z0-9_.-]+)+$`
id PathRef yes Path-based cross-reference relative to .corpospec/ root. Pattern: `^[a-z0-9_-]+(/[a-z0-9_.-]+)+$`
period Period yes A time period with start and end dates.
balance_sheet BalanceSheet?
cash_flow CashFlow?
custom FinancialModelCustom?
income_statement IncomeStatement?

Definitions

Shared types referenced within this schema.

Assets
Balance sheet assets. Monetary values are in the model's declared `currency` and non-negative.
type: object
BalanceSheet
Balance sheet. Invariant (not enforced by JSON Schema): `assets.total_assets == liabilities.total_liabilities + equity.total_equity`. Consumers should validate this equality at load time.
type: object
CashFlow
Cash flow statement. Components may be positive or negative (inflows vs outflows). Invariant (not enforced by JSON Schema): `net_change ≈ operating + investing + financing`. Consumers should verify consistency at load time.
type: object
Equity
Balance sheet equity. `total_equity` may be negative if accumulated losses exceed paid-in capital; therefore no non-negativity constraint is imposed.
type: object
FinancialAssumption
A financial model assumption.
type: object
FinancialModelCustom
Typed custom extension data for `FinancialModel`. Bundles UNSTARTER-specific concerns (German GmbH formation costs, Wandeldarlehen scenarios, German payroll burden, per-employee tool stack). Flagged for future decomposition into separate jurisdiction- or concern-scoped extensions; kept as a single struct in the current schema for pragmatic reasons.
type: object
FounderContribution
Founder equity contribution details.
type: object
FounderContributionType
Type of founder contribution at formation. Distinct from `AccountType` (bank account category). `FounderContributionType` describes *how* a founder capitalizes an entity; `AccountType` describes *what kind* of bank account holds funds.
enum: "equity", "debt", "loan", "convertible", "in-kind", "cash", "ip-assignment", "other"
FxReference
Foreign exchange reference rates.
type: object
GermanPayrollBurden
German employer payroll burden (Sozialversicherung).
type: object
IncomeStatement
Income statement. A "complete" income statement carries `revenue`, `cost_of_revenue`, `operating_expenses`, and `net_income`. `gross_profit` and `operating_income` are derived aggregates and kept optional so stripped-down snapshots (e.g. pre-revenue) can still be expressed. `revenue`, `cost_of_revenue`, and operating expense sub-totals are non-negative. `gross_profit`, `operating_income`, and `net_income` may be negative (losses) and therefore carry no range bound.
type: object
InsuranceCosts
Insurance cost details.
type: object
IsoCurrency
ISO 4217 currency code.
pattern: ^[A-Z]{3}$
IsoDate
ISO 8601 date (YYYY-MM-DD).
type: string
Liabilities
Balance sheet liabilities. Monetary values are in the model's declared `currency` and non-negative.
type: object
MonthlyRecurringExpensesPostGmbh
Monthly recurring expenses after GmbH formation. Each field is a monthly amount in the model's declared `currency`. Fields suffixed `_per_user` or `_per_employee` are unit costs, not totals. Fields suffixed `_amortized` represent annual costs expressed as a monthly equivalent (annual / 12).
type: object
MonthlyRecurringExpensesPreFormation
Monthly recurring expenses before GmbH formation. Each field is a monthly amount in the model's declared `currency`. Fields suffixed `_amortized` represent annual costs expressed as a monthly equivalent (annual cost / 12) so they can be summed alongside true monthly recurring line items.
type: object
OneTimeExpenses
One-time formation and setup expenses. All amounts are paid once, at or around company formation (notarization, Handelsregister filing, Stammkapital deposit, developer-platform registration). These are distinct from `MonthlyRecurringExpensesPost*` (ongoing operational stack) and from product-side costs (COGS, hosting, API tokens), which live on the `IncomeStatement` tree.
type: object
OperatingExpenses
Operating expenses breakdown. Monetary amounts are in the model's declared `currency`. Sub-totals are non-negative; net values that can be negative belong on `IncomeStatement`.
type: object
PathRef
Path-based cross-reference relative to .corpospec/ root. Pattern: `^[a-z0-9_-]+(/[a-z0-9_.-]+)+$`
pattern: ^[a-z0-9_-]+(/[a-z0-9_.-]+)+$
PerEmployeeMonthlyCosts
Per-employee monthly tool costs. Each field is a per-employee monthly amount in the model's declared `currency`. `total_per_employee` is an input (stated figure), not a derived computation — consumers may cross-check against the sum of siblings but the field is canonical as recorded.
type: object
Period
A time period with start and end dates.
type: object
PeriodType
Period type discriminator.
enum: "instant", "duration"
ValuationCapRange
Valuation cap range for a Wandeldarlehen / convertible. Both bounds are monetary amounts in the enclosing `WandeldarlehenScenarios.currency`. `min <= max` is expected but not enforced by JSON Schema.
type: object
WandeldarlehenScenario
A single Wandeldarlehen dilution scenario. `dilution_pct` and `founder_post_conversion_pct` are **percentages** in `[0.0, 100.0]` (e.g. `11.8` means 11.8%), not ratios in `[0, 1]`. This differs from `WandeldarlehenScenarios.discount` and `WandeldarlehenScenarios.interest_rate`, which are ratios.
type: object
WandeldarlehenScenarios
Pre-seed Wandeldarlehen (convertible loan) scenario modelling.
type: object

Reference in your YAML

# yaml-language-server: $schema=https://corpospec.com/schemas/v0.8.1/financial-model.schema.json