Skip to main content

Risk Tape v1 — Schema Reference

Full schema: risk-tape-v1.json

Obligor

FieldTypeRequiredTierDescription
obligor_idstringyesACreator/obligor identifier
legal_namestring | nullnoPerson or company name
jurisdictionstring (2 chars)yesAISO 3166-1 alpha-2 country code
entity_typeenumyesAindividual, self_employed, or company
kyc_statusenumyesAunverified, in_review, or verified
creator_verticalstring | nullnoContent vertical (optional)
creator_size_bandstring | nullnoAudience size band (optional)
created_atdate-time | nullnoRecord creation timestamp
updated_atdate-time | nullnoLast update timestamp

Platform Connection

FieldTypeRequiredTierDescription
platformenumyesyoutube, twitch, patreon, tiktok, meta, substack, medium, stripe, shopify, gumroad, other
handle_or_channel_idstring | nullnoPlatform-specific identifier
roleenumyesincome (revenue-grade) or signal (engagement only)
data_qualityenumyesverified_income, strong_proxy, or signal_only
oauth_scopestring | nullnoOAuth scopes granted by the creator
consent_statusenumyesactive, revoked, expired, or not_required
first_sync_atdate-timeyesFirst successful data sync
last_sync_atdate-timeyesMost recent data sync
nd_codeenumnoND1ND4 if metrics unavailable

Cashflow Summary

FieldTypeRequiredTierDescription
currencystring (3 chars)yesAISO 4217 currency code (e.g. EUR)
track_record_monthsinteger ≥ 0yesAMonths with usable revenue data (capped at 36)
income_30dnumber | nullyesATotal gross income, last 30 days
income_90dnumber | nullyesATotal gross income, last 90 days
revenue_monthlyarraynoMonthly gross revenue history (up to 24 months)
revenue_monthly[].monthstringyesYYYY-MM format
revenue_monthly[].gross_amountnumber | nullnoGross revenue for the month
revenue_monthly[].nd_codeenumnoND1ND4 if amount is missing
offplatform_share_pctnumber 0–1 | nullnoShare of income from off-platform PSPs

Risk Profile

FieldTypeRequiredTierDescription
risk_versionstringyesRisk calc method version (e.g. rp_1.0.0)
avg_monthly_revenuenumber | nullyesAMean monthly gross revenue (last 12m)
median_monthly_revenuenumber | nullyesMedian monthly gross revenue (last 12m)
yoy_growth_pctnumber | nullnoYear-over-year growth (requires 24m)
volatility_cv_12mnumber ≥ 0 | nullyesACoefficient of variation (last 12m)
seasonality_indexnumber ≥ 0 | nullnoPeak-to-trough seasonality ratio
platform_concentration_indexnumber 0–1 | nullyesAHHI across platforms
top_platformstring | nullnoPlatform with highest revenue share
top_platform_sharenumber 0–1 | nullyesARevenue share of top platform
max_drawdown_pct_36mnumber 0–1 | nullyesAWorst peak-to-trough decline
time_to_recovery_monthsinteger ≥ 0 | nullnoMonths to recover from worst drawdown
dispute_ratenumber 0–1 | nullyesBShare of disputed cash flows (12m)
missed_contract_ratenumber 0–1 | nullnoShare of missed contract cash flows
high_risk_platform_flagbooleannoReliant on structurally higher-risk platform
platform_dependency_flagbooleannotrue if top_platform_share ≥ 0.7
track_record_monthsinteger ≥ 0yesAMonths of usable revenue used in metrics

Eligibility Decision

FieldTypeRequiredTierDescription
product_typeenumyesrbf, term_loan, or securitization_pool
institution_refstring | nullnoLender identifier (optional)
eligiblebooleanyesAWhether the creator qualifies
risk_tierenumyesAprime, standard, subprime, or ineligible
max_advance_amountnumber ≥ 0 | nullnoAMaximum advance in tape currency
max_revenue_share_pctnumber 0–1 | nullnoAMax monthly revenue share for RBF
max_tenor_monthsinteger ≥ 0 | nullnoMaximum tenor (term loans)
payback_cap_multiplenumber ≥ 0 | nullnoATotal repayment cap (e.g. 1.3 = 130%)
dscr_stressednumber ≥ 0 | nullnoStressed debt service coverage ratio
covenantsstring[]noCovenant conditions in plain language
flagsstring[]noMachine-readable flags

Data Quality

FieldTypeRequiredTierDescription
overall_scoreinteger 0–100yesACompleteness + ND usage + consistency
nd_breakdownobjectyesCount of ND1–ND4 usages across the tape
nd_breakdown.ND1integer ≥ 0yesNot applicable
nd_breakdown.ND2integer ≥ 0yesNot collected
nd_breakdown.ND3integer ≥ 0yesNot available for this obligor
nd_breakdown.ND4integer ≥ 0yesNot disclosed
mandatory_fields_missingstring[]noTier A fields that could not be populated
quality_flagsstring[]noQualitative flags (e.g. short_track_record)
blocking_validation_failedbooleannotrue if JSON schema validation failed

Field Tiers

  • Tier A — Mandatory for any lending decision. Must be present for data_quality.overall_score to reach 70+.
  • Tier B — Important but can degrade gracefully via ND codes.
  • Untiered — Informational / optional.