‹ The standard
The schema · machine-readable
Reporting Standard — Data Schema
JSON · v0.06Download .json
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://safr.vc/schema/quarterly-update/v0.06.json",
"title": "SAFR Reporting Standard: Quarterly Update",
"description": "Canonical quarterly payload for the SAFR Reporting Standard, schema version 0.06 (major version 0). One coherent schema: attestation is a conditional layer within it, not a separate document. When meta.attestation_grade is 2, the attestation object is required; at grade 1 it is absent. Field-level x-tier marks distribution: 'visible' fields flow to the Visibility tier (invitational, need-to-know; never a public listing); 'holder' fields flow to the Holder tier only. The raw ledger never leaves the venture; only this schema-shaped output does, by the venture's standing grant. Calculations are defined in the SAFR Reporting Standard spec; x-canonical-constants below mirrors the controlling numbers for machine use.",
"type": "object",
"required": [
"meta",
"balance",
"development",
"revenue_streams",
"cashflow_ttm",
"computed",
"quarter"
],
"properties": {
"meta": {
"type": "object",
"x-tier": "visible",
"required": [
"schema_version",
"venture_id",
"fiscal_quarter_end",
"issued_at",
"attestation_grade",
"currency"
],
"properties": {
"schema_version": {
"type": "string",
"const": "0.06"
},
"major_version": {
"type": "integer",
"const": 0
},
"venture_id": {
"type": "string"
},
"legal_name": {
"type": "string",
"x-tier": "visible"
},
"fiscal_quarter_end": {
"type": "string",
"format": "date",
"description": "The fiscal quarter-end this update covers (Mar 31, Jun 30, Sep 30, or Dec 31). The reference data period is the trailing twelve months ending on this date."
},
"issued_at": {
"type": "string",
"format": "date-time",
"description": "Issuance timestamp; must fall within 45 days after fiscal_quarter_end."
},
"attestation_grade": {
"type": "integer",
"enum": [
1,
2
],
"description": "1 = self-attested conforming feed; 2 = independent third-party attestation of the Ledger Base computation. Grade 2 is required for all graduations."
},
"currency": {
"type": "string",
"default": "USD"
},
"reporting_lapse_cured": {
"type": "boolean",
"default": false,
"description": "True if this update cures or follows a Reporting Lapse; details in quarter.commentary."
}
}
},
"balance": {
"type": "object",
"x-tier": "holder",
"description": "Balance inputs at fiscal_quarter_end. Aggregates only; no counterparty identities.",
"required": [
"cash",
"accounts_receivable",
"inventory",
"equipment_net",
"total_liabilities"
],
"properties": {
"cash": {
"type": "number",
"minimum": 0
},
"accounts_receivable": {
"type": "number",
"minimum": 0
},
"inventory": {
"type": "number",
"minimum": 0
},
"equipment_net": {
"type": "number",
"minimum": 0,
"description": "Equipment at depreciated cost."
},
"other_tangible": {
"type": "number",
"minimum": 0,
"default": 0
},
"total_liabilities": {
"type": "number",
"minimum": 0
}
}
},
"development": {
"type": "object",
"x-tier": "holder",
"required": [
"monthly_qualified_dev_spend"
],
"properties": {
"monthly_qualified_dev_spend": {
"type": "array",
"description": "Qualifying product development spend at cost, per Reporting Standard category rules, given as a per-month series sufficient to compute the vintaged Qualified Development Asset. Each month of spend amortizes straight-line over its own 36 months, so the asset equals the sum over entries of amount times max(0, 1 - month_offset/36). At least the trailing 36 months must be supplied; spend with a month_offset of 36 or more contributes nothing.",
"minItems": 36,
"items": {
"type": "object",
"required": [
"month_offset",
"amount"
],
"properties": {
"month_offset": {
"type": "integer",
"minimum": 0,
"description": "Months before the reference period end; 0 is the most recent month. The amortization weight for this month is max(0, 1 - month_offset/36)."
},
"amount": {
"type": "number",
"minimum": 0,
"description": "Qualifying development spend recorded in that month, at cost."
}
}
}
}
}
},
"revenue_streams": {
"type": "array",
"x-tier": "visible",
"description": "Revenue valued stream by stream for Forward Revenue Value, each stream by exactly one method fixed by a mechanical test. Quality mix is Visible; no customer identities ever. A stream takes the present-value method if, and only if, it is a signed contract whose term at signing is at least contract_term_threshold_months (12); otherwise it takes a quality multiple on its trailing-twelve-month revenue.",
"items": {
"type": "object",
"required": [
"quality",
"is_signed_contract",
"term_at_signing_months",
"annual_contracted_amount",
"ttm_amount"
],
"properties": {
"quality": {
"type": "string",
"enum": [
"recurring",
"repeat",
"one_time"
],
"description": "Quality tag for the multiple method: recurring 2.0, repeat 1.0, one_time 0.25. Not used when the present-value method applies."
},
"is_signed_contract": {
"type": "boolean",
"description": "True if the stream is under a signed contract. A signed contract whose term_at_signing_months is at least contract_term_threshold_months (12) takes the present-value method."
},
"term_at_signing_months": {
"type": "integer",
"minimum": 0,
"description": "Contract term in months as of signing. Compared once against contract_term_threshold_months (12) to fix the method; the method does not change quarter to quarter."
},
"annual_contracted_amount": {
"type": "number",
"minimum": 0,
"description": "Annual contracted amount C for the present-value method. The stream's value equals C times (1 minus 1.10 to the power of negative n), divided by 0.10, with n the remaining contract term in years; it glides to zero as the remaining term runs off. Zero when the multiple method applies."
},
"ttm_amount": {
"type": "number",
"minimum": 0,
"description": "Trailing-twelve-month revenue for the multiple method, valued at the stream's quality multiple. Zero when the present-value method applies."
}
}
}
},
"cashflow_ttm": {
"type": "object",
"x-tier": "holder",
"required": [
"free_cash_flow",
"operating_expenses_monthly_avg"
],
"properties": {
"free_cash_flow": {
"type": "number",
"description": "Trailing-twelve-month free cash flow; may be negative."
},
"operating_expenses_monthly_avg": {
"type": "number",
"minimum": 0,
"description": "Trailing average monthly operating expenses; drives the 6-month working-capital floor."
}
}
},
"computed": {
"type": "object",
"x-tier": "visible",
"description": "Outputs of the canonical formulas, recomputable by any party from Holder-tier inputs. The analyst is the formula.",
"required": [
"ledger_base",
"expected_capacity",
"working_capital_floor"
],
"properties": {
"ledger_base": {
"type": "object",
"required": [
"total"
],
"properties": {
"tangible_net_assets": {
"type": "number"
},
"qualified_development_asset": {
"type": "number",
"minimum": 0
},
"forward_revenue_value": {
"type": "number",
"minimum": 0
},
"total": {
"type": "number"
}
}
},
"ledger_base_per_fd_share": {
"type": "number",
"minimum": 0,
"x-tier": "holder",
"description": "Conversion price input: Ledger Base divided by fully diluted shares."
},
"fully_diluted_shares": {
"type": "integer",
"minimum": 0,
"x-tier": "holder"
},
"expected_capacity": {
"type": "number",
"minimum": 0,
"description": "min(0.25 x max(0, TTM FCF), max(0, cash minus working_capital_floor)), floored at zero."
},
"working_capital_floor": {
"type": "number",
"minimum": 0,
"description": "6 x operating_expenses_monthly_avg."
}
}
},
"quarter": {
"type": "object",
"x-tier": "visible",
"required": [
"declared_budget"
],
"properties": {
"declared_budget": {
"type": "number",
"minimum": 0,
"description": "The venture's decision for this quarter's settlement. Zero is valid and is not default."
},
"variance_note": {
"type": [
"string",
"null"
],
"description": "Required when declared_budget < expected_capacity; states why capital is being retained."
},
"queue": {
"type": "object",
"properties": {
"requests_outstanding_amount": {
"type": "number",
"minimum": 0
},
"paid_this_quarter": {
"type": "number",
"minimum": 0
},
"amount_retired": {
"type": "number",
"minimum": 0
},
"insider_positions_present": {
"type": "boolean",
"description": "Insider-held positions participate pro rata and are flagged."
}
}
},
"buyout_notice": {
"type": [
"object",
"null"
],
"properties": {
"noticed_amount": {
"type": "number",
"minimum": 0
},
"convert_instead_amount": {
"type": "number",
"minimum": 0
}
}
},
"conversions": {
"type": "object",
"properties": {
"amount_converted": {
"type": "number",
"minimum": 0
},
"shares_or_units_issued": {
"type": "number",
"minimum": 0
}
}
},
"headcount_band": {
"type": "string",
"enum": [
"1-5",
"6-10",
"11-25",
"26-50",
"51-100",
"100+"
]
},
"commentary": {
"type": "string",
"maxLength": 2000,
"description": "Brief management commentary. No PII, no customer or counterparty identities, no partner names, no pipeline detail."
}
}
},
"holder_lines": {
"type": "object",
"x-tier": "holder",
"description": "Holder-tier exclusive lines.",
"required": [
"owners_and_leaders_total_ttm"
],
"properties": {
"owners_and_leaders_total_ttm": {
"type": "number",
"minimum": 0,
"description": "A single total of trailing-twelve-month compensation paid to owners and leaders (related parties and control persons) in aggregate. Aggregate only; never an individual breakdown. The one channel that can move value out of Expected Capacity unseen, kept visible."
}
}
},
"attestation": {
"type": "object",
"description": "Required only when meta.attestation_grade is 2 (enforced by the conditional rule below). The same Quarterly Update with an independent assurance wrapper; this is why the Standard is one schema, not two.",
"x-tier": "holder",
"properties": {
"attestor": {
"type": "string",
"description": "Identity of the independent third party attesting the Ledger Base computation."
},
"attestation_date": {
"type": "string",
"format": "date"
},
"procedures": {
"type": "string",
"description": "Reference to the agreed-upon procedures or equivalent standard applied."
},
"attestation_artifact_hash": {
"type": "string",
"description": "Content hash of the signed attestation artifact, for provenance."
}
},
"required": [
"attestor",
"attestation_date",
"procedures",
"attestation_artifact_hash"
]
}
},
"allOf": [
{
"if": {
"properties": {
"meta": {
"properties": {
"attestation_grade": {
"const": 2
}
}
}
},
"required": [
"meta"
]
},
"then": {
"required": [
"attestation"
]
},
"else": {
"not": {
"required": [
"attestation"
]
}
}
}
],
"x-canonical-constants": {
"description": "The controlling numbers, mirrored here for machine use. The SAFR Reporting Standard spec is authoritative.",
"multiple_schedule": [
{
"month": 0,
"multiple": 1
},
{
"month": 36,
"multiple": 1.5
},
{
"month": 60,
"multiple": 2
},
{
"month": 90,
"multiple": 2.5
}
],
"multiple_interpolation": "linear between anchors; never exceeds 2.50; never decreases",
"revenue_quality_multiples": {
"recurring": 2,
"repeat": 1,
"one_time": 0.25
},
"qda_amortization_months": 36,
"qda_amortization_basis": "per vintage: each month of qualifying development spend amortizes straight-line over its own 36 months; the asset is the sum over the trailing 36 months of each month's spend times max(0, 1 - age_in_months/36)",
"pv_discount_rate": 0.1,
"contract_term_threshold_months": 12,
"expected_capacity_rate": 0.25,
"working_capital_floor_months": 6,
"conversion_fraction_per_quarter": 0.125,
"max_conversion_ownership": 0.25,
"qualified_financing_fundability_multiple": 1,
"qualified_financing_aggregation_window_quarters": 4,
"qualified_financing_antipadding_exclusion_months": 6,
"qualified_financing_discount": 0.2,
"graduation_lookback_quarters": 4,
"graduation_eligibility_quarters": 4,
"graduation_equal_access_quarters": 2,
"report_deadline_days_after_quarter_close": 45,
"election_days_before_quarter_close": 10,
"settlement_business_days_after_update": 10,
"insider_equity_threshold": 0.1,
"major_version_materiality_threshold_pct": 3
},
"x-versioning": {
"scheme": "semantic, MAJOR.MINOR within the pinned major version",
"minor": "Refinements, calibration, added revenue-quality tags, and data-mapping improvements ship as minor versions and apply automatically to outstanding instruments.",
"major": "A new major version is any change that would alter a previously issued position's computed Ledger Base or Expected Capacity for any quarter by more than major_version_materiality_threshold_pct (3.0%). A new major version applies to an outstanding instrument only with the Holder's and the Company's consent.",
"pinning": "Each executed SAFR pins the major version and records the content hash of the Reporting Standard spec in effect at issuance."
},
"x-conformance": {
"calibration": "Initial conformance is set by a human Certified Business Analyst who calibrates each venture's data mapping to this Standard.",
"automation": "SmartTrustee then applies the same weights to the same data, conforming to this Standard, so the automated computation matches the calibrated baseline.",
"maturation": "The conformance method is expected to refine with volume; refinements ship as minor versions."
},
"x-exclusions": [
"personally_identifiable_information",
"customer_identities",
"counterparty_identities",
"partner_names",
"pipeline_detail",
"raw_ledger_records"
],
"x-vocabulary": {
"visibility": "The term 'public' is not used. Visibility is invitational, need-to-know transparency by the venture's standing grant; Venture Visibility is an invitation, not a listing.",
"quarterly_cycle": "The instrument runs on fiscal quarters ending Mar 31, Jun 30, Sep 30, Dec 31. Holders elect at least 10 days before the quarter closes; the venture issues its Quarterly Update within 45 days after; settlement follows within 10 business days after the Update."
}
}