Fitch Ratings Model (FRM) — Frequently Asked Questions
The Fitch Ratings Model (FRM), formerly known as the Loan Loss Model (LLM), is Fitch’s proprietary US RMBS loss model — integrated into dv01’s Tape Cracker. Upload a loan tape, standardize fields, run the model, and receive loan-level Probability of Default (PD), Loss Severity (LS), and Expected Loss (EL) across Fitch’s full rating stress spectrum.
This FAQ covers the most common questions and known gotchas.
General
What is the FRM?
The Fitch Ratings Model produces loan-level credit risk outputs — PD, LS, and EL — at each of Fitch’s rating stress levels (Base, B, BB, BBB, A, AA, AAA). Think of it as Fitch’s equivalent to S&P LEVELS, but with loan-level granularity.
The model is accessed through dv01’s Tape Cracker tool. You upload a loan tape, match fields to the dv01 schema, run validations, and then execute the model.
What does the model output?
The FRM produces two output files:
- Loan Level Results— Per-loan point estimates including:
- Probability of Default (PD) at each rating level
- Loss Severity (LS) at each rating level
- Expected Loss (EL) at each rating level
- Economic Risk Factor, Fitch Credit Score, and other derived fields
- Intex Cashflow Scenario (xlsx) — Pool/tranche-level assumption vectors for various rating and interest rate scenarios, derived from the loan-level results.
Important: The model produces loan-level point estimates, not time-series vectors. The Cashflow Scenario file is what translates those point estimates into vectors for downstream analysis.
Validations & Field Matching
Why does my tape show so many “missing fields” when I only expect ~63 to be required?
The missing-fields message lists every field in the Fitch data dictionary that isn’t present in your tape — not just the ones the model actually uses for loss calculations. Only approximately 63 fields are truly required by the model. The remaining fields are collected by Fitch for storage and analytics purposes but do not affect model output.
What to do: Focus on the red (required) validation failures. Those are the fields the model needs to run. The broader missing-fields count is informational.
What is the difference between red and orange validations?
| Color | Meaning | Model Impact |
|---|---|---|
| Red | Required Fitch field — model will not run without it | Blocks model run |
| Orange | Warning — field is missing or has non-standard values | Model can usually still run |
Important caveat: Some orange/warning fields — notably Index Type and Primary Servicer — can still cause the model to fail. The Fitch API performs type-checking on these fields, and blank values will cause a rejection even though the model itself does not use them in its calculations.
Rule of thumb: If the model fails after all red validations pass, check the orange validations — especially Index Type.
My tape passes all dv01 validations but the Fitch model still fails. Why?
The dv01 validation set and Fitch’s own API-level validation are not identical. dv01 validates what is known to be required, but Fitch’s API has additional checks that can reject tapes.
Common culprits:
- Index Type — blank or non-standard value
- Primary Servicer — blank (the API type-checks it even though the model doesn’t use it)
- Enum values that are valid in the dv01 schema but not in Fitch’s acceptable set
- Date formats that parse correctly in dv01 but are not accepted by Fitch’s API
If you encounter this, please contact dv01 Support with your tape link and we can help identify the specific field causing the failure.
I matched a field but my results look wrong. Could it be matched to the wrong field?
This is a common issue. The dv01 field dictionary contains many fields with similar names, and it’s easy to match to a field that looks correct but is not the one the FRM expects.
Known examples of commonly confused fields:
| You might pick… | But the FRM needs… |
|---|---|
asset_type_reported | asset_type |
borrower_employment_verification | borrower_employment_verification_asf |
asset_zipcode | asset_zipcode_str |
dti_fitch | dti_orig |
Tip: Fields ending in _fitch are not necessarily the correct FRM match. The _fitch suffix often refers to Fitch’s closing tape fields, not the loss model’s input schema. When in doubt, verify against the Fitch data dictionary or contact dv01 Support.
Model Output & Results
Why are my PD / Expected Loss numbers higher than expected?
The most common cause is missing or null input fields. The model does not skip fields it cannot find — it makes conservative (i.e., worse-case) assumptions. Fields whose absence commonly inflates Expected Loss:
- Credit bureau scores (Equifax, Experian, TransUnion — both borrower and co-borrower)
- Liquid cash reserves
- GSE eligibility
- Updated FICO
- DSCR (for investor properties)
What to do: Review which fields went into the model as blank or null. Even fields that are not strictly “required” can meaningfully affect output when missing. Adding values — even reasonable assumptions — for these fields will typically bring EL in line with expectations.
Why do some loans show a Fitch Credit Score of 500?
Root cause: Zeros in the co-borrower original FICO fields (Equifax, Experian, TransUnion).
The Fitch Credit Score is a model-derived field — it is not the same as the raw origination bureau scores. It primarily maps from Borrower Updated FICO, but co-borrower FICO fields influence it. When co-borrower fields contain 0 instead of being left blank, the model interprets them as a real score of zero, which pulls the Fitch Credit Score down to 500.
Fix: If there is no co-borrower on the loan, ensure co-borrower FICO fields are blank/null, not zero. In the model’s eyes, zero is not the same as missing.
The PD/EL in the dv01 summary table doesn’t exactly match Fitch’s pool-level results. Is this an error?
This is a known, minor weighting difference — not a data error.
| Metric | dv01 Weights By | Fitch Weights By | Match? |
|---|---|---|---|
| LS | Current Actual Balance | Current Actual Balance | Yes |
| PD | Current Actual Balance | Fitch Current Balance (model output) | Slight difference |
| EL | Current Actual Balance | Fitch Current Balance (model output) | Slight difference |
The Fitch Current Balance is a model output field that may differ slightly from your tape’s current balance. Both calculations are correct within their respective weighting conventions.
Why is “Fitch Deal Name” null in my results?
Fitch Deal Name is populated from the Collateral Group field in your input tape. If Collateral Group was not matched or was left blank, Fitch Deal Name will be null in the results.
Collateral Group is not required for the model to run — it is used for multi-pool identification. If you need the deal name linkage in your results, match the Collateral Group field before running the model.
Workflow & UX
The Fitch Summary table is completely blank after running the model. What happened?
Model results must be joined to the tape before summary tables or aggregations will populate. Running the model alone is not enough.
Steps:
- Run the model (Fitch tab → Run Model)
- After results return, click “Join & Save LLM results to tape” (purple button)
- Now the summary tables, saved views, and aggregations will display data
If you skip step 2, every FRM-related field and aggregation will appear blank — with no error message indicating why.
How do I add missing required fields to my tape?
Three options, from easiest to most flexible:
Option 1: Blank Fields (Fastest)
- The webapp detects missing FRM-required fields and offers to add them as blank columns
- One click to add all missing fields at once
- Note: blank fields will not have data health metrics and will show as “Not Reported” in strat tables
Option 2: Pre-Built Calculations
- Navigate to Bulk Apply Transformations → Browse All Calculations
- Select the relevant pre-built calculations for common missing fields
- Click Run Transformations
Option 3: Custom Calculation
- Click Create → Calculation
- Set the Field Name to the missing field
- Define your formula (can be a static value like
0, a conditional expression, or derived from other fields) - Apply and save — the calculation is added to your library and can be reused on future tapes via Bulk Apply Transformations
See the Formula Overview and dv01 Formula Guide for calculation syntax.
The 12 Month Payment String format in my tape doesn’t match what Fitch expects. How do I convert it?
If your tape uses dv01-standardized payment string values (common when exporting deal data from dv01), you will need to convert them to Fitch’s encoding before running the model.
| Loan Status | Fitch Value | dv01 Value |
|---|---|---|
| Current | 0 | C |
| 30–59 DPD | 1 | 2 |
| 60–89 DPD | 2 | 3 |
| 90–119 DPD | 3 | 4 |
| 120+ DPD | 4 | 5, 6, 7 |
| Foreclosure | 5 | F |
| REO | 6 | R |
| Loan did not exist | 7 | — |
| Unavailable | X | X |
Fix: Create a calculation on the 12 Month Payment String field that maps dv01 codes to Fitch codes. The general approach: replace letter codes with Fitch’s numeric equivalents, and shift numeric codes down by one.
Note: Tapes uploaded directly from external sources (not exported from dv01) typically already use Fitch’s encoding and do not require this conversion.
Limits & Capacity
Is there a loan count limit for the model?
There is no cap at 1,000 loans. The 1,000-row limit you may see is the UI preview table, which only displays up to 1,000 rows for performance. The full results are always available via download.
The model supports tapes with up to approximately 100,000 loans. Tapes with more than 10,000 loans automatically use enhanced processing infrastructure for faster results.
Can I access the model via API or programmatically?
API and programmatic access to the Fitch Ratings Model is on the product roadmap but is not currently available. The model is accessed through the Tape Cracker UI. If you have a use case that requires programmatic access, please contact your dv01 account representative to discuss.
Key Model Output Fields
| Field | Description |
|---|---|
final_pd_{rating} | Probability of Default at each rating level (Base, B, BB, BBB, A, AA, AAA) |
expected_loss_{rating} | Expected Loss at each rating level |
liquidation_{variant} | Loss severity components |
cure_rate_probability_{rating} | Cure rate probability at each rating level |
economic_risk_factor | Fitch’s economic risk assessment for the loan |
seasoned_pd_{rating} | Seasoned PD (adjusted for loan age) |
origination_pd_{rating} | PD at origination |
sltv_{rating} | Sustainable loan-to-value ratio |
smvd_{rating} | Sustainable market value decline |
fitch_credit_score | Fitch-derived credit score (not raw FICO — see FAQ above) |
loan_balance_current_fitch | Fitch’s internal current balance used in aggregations |
Additional Resources
- Fitch Ratings US RMBS Rating Criteria
- Formula Overview — Calculations, Filters, and Validations
- dv01 Formula Guide
Need help with a specific tape or validation issue? Contact dv01 Support and include your organization name and tape link — we can diagnose most issues directly.