Risk Tape v1 — Eligibility Engine
Source: src/modules/riskTape/eligibility.ts (maintained in the creatorlayer-api repository)
Overview
The eligibility engine is a product-type dispatcher. It routes each verification to the correct sub-builder based on the lender's configured product_type, then returns an EligibilityDecision with fields relevant to that contract type.
All product types share the same underlying risk signals (volatility CV, drawdown, track record). The dispatcher applies different formulas and threshold sets on top.
Supported product types
product_type | Contract | Key output fields |
|---|---|---|
rbf | Revenue-Based Financing | max_revenue_share_pct, payback_cap_multiple |
term_loan | Fixed-term bank loan | max_tenor_months, dscr_stressed |
revenue_loan | Fixed instalment, revenue-sized | max_tenor_months, dscr_stressed (no share/cap) |
venture_debt | Growth-oriented facility | max_tenor_months, YoY growth bonus, warrant covenants |
murabaha | Islamic cost-plus financing | sharia_eligible, murabaha_viable |
hpp | Home Purchase Plan (Islamic mortgage) | sharia_eligible, max_tenor_months up to 300 months |
securitization_pool | Pool-level tape | Delegates to RBF logic at individual-tape level |
Tier assignment (all product types)
Tier thresholds are configurable per-lender via LenderThresholds. The default reference policy is:
| Condition | Risk Tier | Eligible? |
|---|---|---|
track_record_months < 6 (or < 12 for Islamic products) | ineligible | No |
CV ≤ 0.25 AND drawdown ≤ 0.40 | prime | Yes |
CV ≤ 0.50 AND drawdown ≤ 0.60 | standard | Yes |
| Everything else | subprime | No |
Lenders can supply lender_thresholds in their PartnerConfig to override any of the default values above — minimum track record, tier CV bounds, advance multiples, and custom covenants.
Universal agnostic fields (v2.0.0)
Every product type returns these fields regardless of contract:
| Field | Formula | Purpose |
|---|---|---|
stressed_net_income | avg_monthly × (1 − volatility_cv) | Worst-case normalised income |
dti_ratio | (max_advance / 12) / avg_monthly | Affordability proxy |
income_capacity_annual | avg_monthly × 12 × advance_multiple | v2 alias for max_advance_amount |
income_stability_score | 1 − (cv × 0.5 + drawdown × 0.5) | Composite reliability score 0–1 |
income_trend | YoY or 3m slope | growing, stable, declining, insufficient_data |
Product-specific logic
RBF
| Field | Prime | Standard | Subprime / Ineligible |
|---|---|---|---|
max_advance_amount | avg × 12 × 0.35 | avg × 12 × 0.25 | 0 |
max_revenue_share_pct | 0.15 (15%) | 0.10 (10%) | 0 |
payback_cap_multiple | 1.3 | 1.5 | null |
Term loan / Revenue loan
- No revenue share or payback cap
max_tenor_months: 36 (prime), 24 (standard)dscr_stressed=stressed_net_income / (max_advance / max_tenor)
Venture debt
- More permissive thresholds:
prime_max_cv = max(configured, 0.45),prime_max_drawdown = max(configured, 0.55) - YoY growth > 20% unlocks an extra 0.10 advance multiple
max_tenor_months: 48 (prime), 36 (standard)- Covenants include warrant/equity kicker and YoY revenue floor
Murabaha / HPP
- Minimum 12 months of track record required
sharia_eligible = trueifhigh_risk_platform_flag = falseANDdispute_rate < 0.05murabaha_viable = trueifsharia_eligible AND tier in [prime, standard] AND track_record ≥ 12- HPP
max_tenor_months: 300 (prime), 240 (standard) — up to 25 years - Sharia compliance covenant appended when
sharia_eligible = true
Flags
| Flag | Trigger |
|---|---|
moderate_volatility | CV > 0.25 |
significant_drawdown | drawdown > 0.40 |
high_platform_concentration | HHI > 0.50 |
platform_dependent | top_platform_share ≥ 0.70 |
Default covenants
| Covenant | Trigger |
|---|---|
| Monthly revenue must not decline more than 30% for 3 consecutive months | standard tier |
| Creator must maintain at least 2 active revenue platforms | HHI > 0.50 |
| Income sources must remain Sharia-compliant | Islamic products, sharia_eligible = true |
| Lender may require warrant or equity kicker at drawdown | Venture debt, eligible |
| YoY revenue must not decline more than 40% in any rolling 12-month window | Venture debt, eligible |