← Hub
Guardrails Design Plan — GRD-ALTSCORE-001
Guardrails
Design
Full implementation specification for the six AI guardrails governing the AltScore credit intelligence engine.
DOCUMENT / GRD-ALTSCORE-001
STATUS / DRAFT FOR REVIEW
VERSION / 1.0 — MAY 2026
Companion to PRD-ALTSCORE-001 · Confidential
6 Guardrails
Fairness · Gaming · Explainability · Affordability · Data Quality · Model Lifecycle
Hard-coded Not configurable at runtime
Credit limit ceiling and fairness thresholds cannot be overridden via API — enforced at infrastructure level
3-tier Escalation model per guardrail
Monitor → Alert → Freeze. Every guardrail has a defined escalation path with named owners
Quarterly Guardrail health review
All six guardrails reviewed jointly by Product, Risk, ML, and Legal each quarter
01 —

Guardrail Philosophy

AltScore makes credit decisions that affect livelihoods. An incorrectly low score denies a retailer credit they deserve. An incorrectly high score sends a lender's capital into a loan that defaults. Guardrails exist to bound the harm in both directions — and to ensure the system remains trustworthy even as it scales.

A guardrail is not a fallback for when the model fails. It is a structural constraint that the model must operate within — always. If the model's output would violate a guardrail, the guardrail wins. Not sometimes. Every time.

GUARDRAIL DESIGN PRINCIPLE — ALTSCORE
Design Choice

Guardrails are Infrastructure, Not Policy

Guardrail logic is enforced at the API and pipeline layers — not in a policy document. A developer cannot ship code that bypasses the affordability ceiling, for example, even accidentally. The ceiling is a hard code constraint with no configuration toggle.

Design Choice

Fail Safe, Not Fail Open

If a guardrail check fails to execute (due to system error), the scoring pipeline returns a conservative fallback — not an unguarded score. A missing anomaly detection result causes the request to be flagged for review, not silently passed through.

Design Choice

Transparent Guardrail Activation

When a guardrail modifies or blocks a score, this is surfaced to the lender in the API response — not hidden. The lender knows whether a limit was capped, a score was held for review, or an anomaly was flagged. No silent interventions.

The Six Guardrails — Overview

#GuardrailWhat It Protects AgainstWho It ProtectsImplementation LayerFailure Mode if Absent
GR-1Fairness & BiasSystematic under-scoring of a demographic or geographic cohortRetailers; AltScore regulatory standingPost-scoring audit; training pipelineDiscriminatory credit access; DPDP + RBI enforcement risk
GR-2Score Gaming PreventionRetailer behavioral manipulation to inflate score before scoring eventLender (credit risk); AltScore model integrityPre-scoring anomaly detection; feature designOver-lending to manipulated profiles → excess defaults
GR-3Explainability & Right to ReasonOpaque credit decisions with no actionable feedbackRetailer; lender (compliance); AltScore (RBI FLDG)Score API response layer; SHAP pipelineRBI non-compliance; retailer harm with no recourse; lender liability
GR-4Affordability & Limit CeilingOver-lending beyond a retailer's realistic repayment capacityRetailer (debt trap); lender (credit loss)Score API response layer; hard-coded limit logicRetailer over-indebtedness; elevated default rates; lender loss
GR-5Data Quality & ProvenanceCorrupt or low-quality ERP data generating unreliable scoresLender; retailer; AltScore model performanceIngestion pipeline; feature pipeline; score APIScores driven by garbage data; systemic scoring errors; audit failure
GR-6Model Lifecycle GovernanceSilent model degradation, drift, or unauthorized model changesLender (credit risk); AltScore (model integrity)MLOps monitoring layer; model registryScores become increasingly unreliable; default rates creep above predictions undetected

02 —

Guardrail Architecture

Guardrails are applied at three distinct points in the scoring pipeline. Each point has different characteristics — pre-scoring checks block computation before it starts; post-scoring checks evaluate the output before it is served; and continuous monitoring checks run asynchronously on accumulated data.

Guardrail Execution Pipeline Score Request → Response
STEP 1 — PRE-SCORE
Consent & Quality Gate
Consent check · Data freshness · Completeness score · Cold-start flag
GR-3 · GR-5
STEP 2 — PRE-SCORE
Anomaly Detection
Isolation Forest · Velocity spike check · 60-day look-back window
GR-2
STEP 3 — SCORE
Model Inference
XGBoost · SHAP reason codes · Model version stamped
GR-3 · GR-6
STEP 4 — POST-SCORE
Limit Guardrail
30% GMV ceiling · Seasonal adjustment · Override audit
GR-4
ASYNC — CONTINUOUS
Fairness & Drift Monitor
Cohort parity · PSI/KS · PD calibration · Bias audit
GR-1 · GR-6

Guardrail Failure Response Matrix

Guardrail CheckCheck Fails to ExecuteCheck Triggers (Threshold Breached)Override Possible?
Consent checkScore blocked — fail safeScore blocked, 403 returnedNo — hard block
Data completeness checkScore served with "low_confidence" flagScore served with "low_confidence" flag; limit capped at conservative minimumNo — flag is always surfaced
Anomaly detection (Isolation Forest)Score marked "review_required" — not blocked, flaggedScore returned with anomaly_flag=true; lender notified; review queue entry createdLender can accept with acknowledgment; audit logged
SHAP reason codesScore blocked — reason codes are mandatory (RBI FLDG)N/A — either codes generate or score is blockedNo — regulatory requirement
Affordability ceiling (30% GMV)Score blocked — ceiling cannot be skippedRecommended limit capped; warning surfaced in responseNo API override; lender manual override via dashboard + audit trail
Fairness audit (async)Alert to ML team; audit rescheduledAlert to Risk + ML; model freeze if divergence >15%No — model freeze requires DPO + CTO sign-off to lift
PSI / model drift check (async)Alert to ML Ops; drift check rescheduledPSI > 0.2 → model refresh triggered; scoring continues with current model during refreshNo auto-override; manual override with Risk team sign-off only

03 —

GR-1 · Fairness & Bias Guardrail

1
Fairness & Bias Guardrail
PROTECTS AGAINST: Systemic under-scoring of geographic or demographic cohorts · WHEN: Quarterly audit + trigger-based
RISK: HIGH
Design Rationale

Credit models trained on historical data inherit the biases of past lending decisions. If NBFCs historically avoided lending to retailers in certain states or trade categories, the training data will show higher "defaults" for those cohorts — not because those retailers are riskier, but because they were never given credit to repay. This creates a self-fulfilling exclusion loop. The fairness guardrail exists to detect and break this loop.

Geography is explicitly excluded as a direct feature. But indirect geographic signals (seasonal patterns, SKU categories, distributor tenure norms) can still encode regional bias. The guardrail tests outcomes, not just inputs.

Implementation Specification
  • Cohort definitions: State (28 states + 8 UTs), district tier (1/2/3/4), trade category (FMCG / auto parts / general trade / agri-input / pharma), gender proxy (name-based inference — used only for audit, never as a feature)
  • Matched cohort construction: For each audit, retailers are binned by behavioral similarity (GMV range × payment delay band × tenure band). Score distributions compared within bins across cohort segments.
  • Disparate impact test: Adverse Impact Ratio = (fraction of cohort A receiving Band A/B) ÷ (fraction of reference cohort receiving Band A/B). Threshold: AIR ≥ 0.80 required.
  • Geography exclusion verification: Geography-related features (state, district) must not appear in top-20 SHAP features globally. If they do, feature removal and model retraining is mandatory.
  • Audit frequency: Quarterly scheduled; also triggered if any cohort's score distribution shifts >10% vs. prior quarter.
≥ 0.80Adverse Impact Ratio threshold (80% rule)
≤ 15%Max score gap for matched behavioral cohorts
p < .05Statistical significance required before escalation
QuarterlyMinimum audit cadence
Escalation Path
L1 — DETECTQuarterly audit finds AIR < 0.80 for any cohort. ML team notified. Root cause investigation begins. Score continues serving.
L2 — ALERTRoot cause identified within 2 weeks. If bias confirmed (not data artifact), Risk + Legal + Product alerted. Retraining plan initiated.
L3 — FREEZEScore divergence confirmed >15% for matched cohort. Model frozen for affected cohort. Rules-based conservative limit applied until model retrained.
L4 — NOTIFYIf cohort >1,000 retailers affected: NBFC lenders notified; DPO informed; board-level briefing. Remediated model validated on fairness metrics before re-deployment.

04 —

GR-2 · Score Gaming Prevention

2
Score Gaming Prevention
PROTECTS AGAINST: Retailers artificially inflating behavioral signals before scoring event · WHEN: Every score request
RISK: HIGH
Gaming Attack Vectors
  • Order velocity inflation: Retailer places unusually large orders in the 30–60 days before a scoring event to increase GMV and order frequency signals
  • Return suppression: Retailer accepts delivery of ordered goods (not returning them as usual) to reduce return rate signal during look-back window
  • Payment timing manipulation: Retailer pays invoices unusually early for 1–2 months before scoring to reduce payment delay signal
  • Collusion with distributor: Distributor records fake invoices or early payments on behalf of retailer in exchange for kickback
Detection Mechanisms
  • Isolation Forest (primary): Unsupervised anomaly detector trained on 12 months of historical behavior per retailer. Flags samples where order velocity, payment timing, or return rate deviates >3σ from the retailer's own baseline. Contamination parameter set at 5% (top 5% most anomalous are flagged).
  • 60-day look-back window: Scoring event evaluates behavior over a rolling 60-day window. Manipulation must be sustained for 2 full months — not just 1–2 weeks — to influence the window meaningfully.
  • Return rate counter-signal: Order inflation is often paired with low returns (retailer keeps goods they don't need). This unusual combination (high GMV + abnormally low return rate vs. baseline) is a gaming signature.
  • Long-term history dominance: Payment delay signal weights 3-year history vs. recent 60-day behavior at approximately 70:30. Short-term manipulation cannot overcome multi-year payment patterns.
>3σOrder velocity spike threshold for anomaly flag
≥ 80%Gaming detection recall (test-set requirement)
60 daysMinimum manipulation window to meaningfully influence score
70:30Long-term vs. short-term weight in payment signal
Escalation Path
L1 — FLAGIsolation Forest flags retailer. Score returned with anomaly_flag=true. Lender notified via API response. Review queue entry auto-created.
L2 — REVIEWData ops reviews flagged retailer within 48h. If manipulation confirmed: score updated to pre-manipulation baseline. Lender informed of correction.
L3 — LOCKIf collusion with distributor is suspected: distributor data quarantined pending investigation. Scores for all that distributor's retailers marked "under review".
L4 — TERMINATEIf distributor fraud confirmed: data partnership terminated per contract; retailer scores based solely on any cross-distributor data available.

05 —

GR-3 · Explainability & Right to Reason

3
Explainability & Right to Reason
PROTECTS AGAINST: Opaque credit decisions with no actionable feedback · WHEN: Every score request · RBI FLDG requirement
RISK: MEDIUM
Design Rationale

RBI FLDG guidelines require reason codes for credit decisions made using algorithmic scoring. The DPDP Act gives data principals the right to understand decisions made about them. And practically: a retailer told "your score is 580" with no explanation cannot do anything with that information. A retailer told "your score would improve if your payment delays reduced below 10 days" has an actionable goal.

Explainability serves three distinct audiences: the lender (credit decision audit), the retailer (understanding and appeal), and the regulator (compliance evidence). The reason code design must work for all three — without exposing the exact feature weights that would allow model gaming.

Implementation Specification
  • SHAP values computed: TreeSHAP computed on every score inference. Produces a SHAP value per feature indicating contribution to the final score (positive or negative).
  • Reason code mapping: SHAP values mapped to 24 categorical reason codes (12 positive, 12 negative). Mapping uses absolute SHAP value threshold (top contributing features selected). Raw SHAP numbers never exposed.
  • Mandatory output: Every score response must include ≥3 positive and ≥2 negative reason codes. If SHAP computation fails, score is blocked — not served without codes.
  • Retailer-facing translations: All 24 reason codes have plain-language translations in English and Hindi (regional languages in Phase 2). Translations reviewed by native speakers and plain-language accessibility testers.
  • Grievance integration: Reason codes are the basis for the retailer grievance flow. If a retailer disputes a negative reason code, the grievance is routed to the correct team with the SHAP evidence attached.
100%Score responses with complete reason codes
≥ 3 + 2Minimum positive + negative codes per response
≥ 70%Lender acceptance rate for reason codes (target)
24Total categorical reason codes in v1 taxonomy
Escalation Path
L1 — DETECTSHAP computation fails for a request. Score blocked with error "EXPLAINABILITY_UNAVAILABLE". ML Ops alerted within 5 minutes.
L2 — INVESTIGATEIf SHAP failure rate >0.1% in any 1-hour window: engineering incident declared. Root cause investigation. Affected lenders notified of score service degradation.
L3 — ESCALATEIf lender acceptance rate of reason codes drops below 60% in quarterly survey: reason code taxonomy reviewed with NBFC partners. Taxonomy update cycle initiated.

Reason Code Taxonomy (v1)

✦ Positive Reason Codes

CodePlain Language (EN)Plain Language (HI)
consistent_order_freqRegular buying patternनियमित खरीद
low_payment_delayPays invoices on timeसमय पर भुगतान
growing_basket_sizeBusiness is growingव्यवसाय बढ़ रहा है
low_return_rateLow product returnsकम वापसी
long_distributor_tenureLong relationship with supplierलंबा व्यापार संबंध
strong_gmv_trendStrong sales momentumमजबूत बिक्री
zero_delay_rate_highFrequently pays ahead of due dateअक्सर जल्दी भुगतान
seasonal_recoveryBusiness rebounds well after slow seasonsमंदी के बाद अच्छी वापसी

✦ Negative Reason Codes

CodePlain Language (EN)Plain Language (HI)
payment_delay_highOften pays invoices lateअक्सर देर से भुगतान
p90_delay_gt_15daysSometimes very late on paymentsकभी-कभी बहुत देर
declining_gmvSales have been fallingबिक्री घट रही है
high_return_rateHigh product return rateअधिक वापसी
order_gap_detectedGaps in buying activityखरीद में रुकावट
partial_payment_freqOften pays only part of invoicesअक्सर आंशिक भुगतान
seasonal_gap_deepLong slow season with low activityलंबी मंदी
data_insufficientNot enough history to score fullyपर्याप्त इतिहास नहीं

06 —

GR-4 · Affordability & Limit Ceiling

4
Affordability & Credit Limit Ceiling
PROTECTS AGAINST: Over-lending beyond retailer repayment capacity · WHEN: Every score request · Hard-coded ceiling
RISK: MEDIUM
Ceiling Logic

Primary ceiling: 30% of trailing 6-month GMV. Rationale: a retailer's working capital need is bounded by their stock-turn cycle. A retailer with ₹5L/month GMV needs approximately ₹1–2L in working capital (stock cycle of 2–4 weeks). At 30% of 6-month GMV (≈ 5% of annual GMV), the limit is conservative enough to prevent over-indebtedness while being meaningful for the average kirana's festival-season need.

Seasonal adjustment: The ceiling is computed on the trailing 6 months at scoring time. Scoring in October uses April–September GMV. If this under-represents the festival quarter, lenders can request a seasonal-adjusted limit — which uses the highest 6-month trailing window in the past 24 months instead.

Additional affordability check: Where bureau data is available via Account Aggregator (v2), existing NBFC exposure is checked against the proposed limit. Total formal credit exposure should not exceed 40% of annualised GMV.

Implementation Specification
  • Ceiling enforcement layer: Applied in the Score API service, post-model-inference. The model may produce a recommended limit; the ceiling clamps it. Model output is never served directly without passing through the ceiling layer.
  • Hard-coded constant: The 30% ceiling is a compile-time constant, not a configurable parameter. Any change requires a code change, PR review, deployment, and Risk team sign-off — not a config toggle.
  • API transparency: If ceiling is applied, the response includes: limit_source="gmv_ceiling", gmv_6m_trailing, ceiling_applied=true. Lenders always know when the ceiling, not the model, determined the limit.
  • Lender manual override: Lender can set a higher limit via the dashboard with a documented justification. Override is capped at 150% of the GMV ceiling. Override creates an immutable audit record. All overriding lenders receive a monthly override performance report (default rates on overridden loans vs. non-overridden).
  • Zero-GMV cold-start: Retailers with insufficient GMV history receive a conservative fixed starting limit (₹25,000) regardless of model score. This prevents the ceiling from being infinite for retailers with no computable GMV baseline.
30%Of trailing 6-month GMV — primary ceiling
40%Max total formal credit as % of annualised GMV (v2)
150%Max lender manual override as % of GMV ceiling
₹25KConservative cold-start limit (no GMV history)
Escalation Path
L1 — MONITORMonthly report: % of limits capped by ceiling vs. model recommendation; override rate per lender; default rate on overridden loans.
L2 — ALERTIf override default rate >2× non-override default rate for any lender: Risk team alerts that lender's override policy is generating adverse selection. Lender briefed.
L3 — REVIEWIf ceiling threshold itself appears miscalibrated (e.g., 90-day default rates consistently higher than model predicts for Band A/B), ceiling tightened in next model release with Risk team approval.

07 —

GR-5 · Data Quality & Provenance

5
Data Quality & Provenance Guardrail
PROTECTS AGAINST: Corrupt or low-quality ERP data generating unreliable scores · WHEN: Ingestion + every score request
RISK: MEDIUM
Completeness Score Computation

Every distributor's data batch receives a completeness score (0–100%) computed across five dimensions:

  • Invoice completeness: % of invoices with all required fields populated (date, amount, retailer_id, SKU category)
  • Payment completeness: % of invoices with at least one associated payment record
  • Temporal coverage: % of months in the last 24 months with at least 5 invoice records
  • Retailer identity completeness: % of retailer records with GST or verified phone number
  • Schema conformance: % of records matching expected data types and value ranges

Overall completeness = weighted average of five dimensions. Weights: Invoice 30%, Payment 30%, Temporal 20%, Identity 10%, Schema 10%.

Quality Thresholds & Actions
  • Completeness ≥ 70%: Full scoring permitted. Score serves without quality flag.
  • Completeness 50–69%: Score served with low_confidence=true flag. Recommended limit capped at 50% of standard ceiling. Lender notified. Distributor prompted to improve data quality via dashboard.
  • Completeness < 50%: Scoring blocked for this distributor's retailers. Rules-based conservative limit applied if lender explicitly requests it. Distributor alerted with specific dimension breakdowns.
  • Anomalous batch detected: Bulk payment recording, duplicate invoices, all-same-day transactions → batch quarantined; feature pipeline does not process until reviewed.
  • Data freshness: If last sync >7 days ago, data_freshness_days prominently surfaced in API response; >14 days, low_confidence=true automatically applied.
≥ 70%Completeness score for full scoring eligibility
≤ 7 daysMax acceptable data staleness for normal confidence
5 dimsCompleteness dimensions scored per distributor
100%Data lineage traceability (score → source record)
Escalation Path
L1 — NOTIFYCompleteness drops below 70%. Automated email to distributor contact with dimension breakdown and improvement guide. Score continues with low_confidence flag.
L2 — INTERVENECompleteness below 70% for 3 consecutive weeks. Customer success team contacts distributor directly. Data improvement plan agreed within 2 weeks.
L3 — BLOCKCompleteness below 50%, or anomalous batch detected. Scoring blocked. Lenders informed. Data partnership review initiated.
L4 — SUSPENDNo improvement in 30 days post block. Data partnership suspended. Retailers notified their scores are temporarily unavailable.

08 —

GR-6 · Model Lifecycle Governance

6
Model Lifecycle Governance
PROTECTS AGAINST: Silent model degradation and unauthorized model changes · WHEN: Continuous monitoring (monthly minimum)
RISK: LOW (if followed)
Drift Monitoring Specification
  • Population Stability Index (PSI): Computed monthly by comparing the score distribution of the current live population vs. the training baseline distribution. PSI quantifies distribution shift across deciles. PSI <0.10 = stable; 0.10–0.20 = monitor; >0.20 = model refresh triggered.
  • KS Statistic on live data: Kolmogorov-Smirnov statistic tracked monthly on the subset of retailers with known repayment outcomes (pilot + Phase 4 cohorts). If KS drops >10 points vs. validation baseline, model refresh is triggered regardless of PSI.
  • PD Calibration: Predicted probability of default vs. actual 90-day default rate tracked monthly for all retailers with resolved loan outcomes. Divergence >3% triggers investigation.
  • Feature drift: Individual feature distributions monitored for shift. If a top-5 SHAP feature drifts significantly (PSI >0.2 at feature level), root cause is investigated — may indicate ERP data change, not model failure.
Model Promotion Governance
  • Champion/Challenger framework: New model versions run in shadow mode for minimum 30 days, scoring real retailers without driving decisions. Shadow mode AUROC, KS, PSI, and fairness metrics compared to champion.
  • Promotion gate: Challenger must exceed champion on AUROC by ≥0.01 and not degrade on KS, PSI, or any fairness metric. Requires sign-off from: ML Lead + Head of Risk.
  • Rollback protocol: If promoted model causes AUROC to drop >5% on next monthly evaluation, automatic rollback to previous champion. Rollback takes <10 minutes (pre-baked previous model artifact).
  • Emergency freeze: Any team member can trigger a model freeze via the ML Ops dashboard. Frozen model serves last pre-freeze scores from cache. Freeze must be reviewed by ML Lead + CTO within 4 hours.
  • Version stamping: Every API response includes model_version. Enables exact reproducibility of any historical scoring decision for audit purposes.
< 0.10PSI threshold for stable model
> 0.20PSI threshold triggering model refresh
30 daysMinimum shadow mode before champion promotion
< 10 minRollback time to previous champion model
Escalation Path
L1 — MONITORPSI 0.10–0.20. ML team notified. Root cause investigation (data drift vs. model drift). Scoring continues with current model.
L2 — REFRESHPSI >0.20 or KS drops >10 pts. Model refresh initiated. Champion/challenger pipeline triggered with most recent training data. Scored under current model pending refresh.
L3 — FREEZEPD calibration divergence >5% (model significantly under-predicting defaults). Model frozen. Conservative rules-based limits applied. NBFC lenders notified. Risk team + CTO on bridge.
L4 — NOTIFYIf model freeze >72 hours: lender SLA breach declared; lender communications per SLA breach playbook; regulatory notification assessed by Legal.

09 —

Guardrail Health Dashboard

All six guardrails are monitored on a unified health dashboard reviewed weekly by the Risk team and monthly by the full cross-functional guardrail committee (Product, Risk, ML, Legal, Engineering).

GuardrailPrimary MetricGreen (Healthy)Amber (Watch)Red (Action Required)Current Status
GR-1 FairnessAdverse Impact Ratio (lowest cohort)AIR ≥ 0.85AIR 0.80–0.85AIR < 0.80 → model freeze for affected cohortPRE-LAUNCH
GR-2 GamingAnomaly detection recall on test setRecall ≥ 85%Recall 80–85%Recall < 80% → model review + threshold recalibrationPRE-LAUNCH
GR-3 Explainability% scores with complete reason codes100%99–100%< 99% → engineering incident declaredPRE-LAUNCH
GR-4 AffordabilityOverride default rate vs. non-override< 1.5× non-override rate1.5–2× non-override rate> 2× → lender override policy review triggeredPRE-LAUNCH
GR-5 Data Quality% distributors with completeness ≥ 70%≥ 90% of distributors80–90% of distributors< 80% → customer success escalation; data improvement program reviewPRE-LAUNCH
GR-6 Model LifecyclePSI (monthly)PSI < 0.10PSI 0.10–0.20PSI > 0.20 → model refresh; > 0.30 → model freezePRE-LAUNCH

10 —

Guardrail Governance & Change Control

Guardrail Committee

Cross-Functional Ownership

The Guardrail Committee meets monthly and is responsible for reviewing all guardrail health metrics, approving any threshold changes, and escalating model freeze decisions to leadership.

  • Chair: Head of Risk
  • ML Lead (model performance + drift)
  • DPO / Legal Lead (fairness + regulatory)
  • Head of Product (retailer + lender experience)
  • Head of Engineering (implementation + reliability)
  • CISO (security guardrails observer)
Change Control

How Guardrails Can Change

Guardrail thresholds and logic are not changed at individual discretion. The following change control applies:

  • Threshold relaxation (e.g., raising affordability ceiling): requires Guardrail Committee approval + DPO sign-off + written risk assessment
  • Threshold tightening: Guardrail Committee approval only
  • New guardrail addition: Product + ML + Legal proposal → Committee review → implementation
  • Emergency threshold change: Head of Risk + CTO joint approval; Committee ratification at next meeting
  • All changes versioned in the Guardrail Change Log (maintained in this document's appendix)

Guardrail Change Log

VersionDateGuardrailChangeApproved ByRationale
v1.0 May 2026 All (initial) Initial definition of all 6 guardrails and thresholds Head of Risk + CTO + DPO Pre-launch baseline; thresholds to be reviewed after first 90 days of live data