How can we help?

Metro 2 data mapping

How LoanPro data fits into our Metro 2 files for credit reporting.


Below, you’ll find detailed tables that outline the LoanPro field values, how they map to each segment of the Metro 2 file, and the logic applied to each value. These tables, organized by Metro 2 segment, will help you understand the data structure and help to ensure accurate credit reporting. For definitions of each Metro 2 field, please refer to CDIA Credit Reporting Resource Guide

Before diving into the Metro 2 file fields, ensure you create and add the following Custom Fields to the CSV in the specified order for optimal use of ID5 file and existing logic. 

For documentation on how to create a Metro 2 file, refer to Metro 2 file creation and credit reporting.

 

Recommended custom fields

Compliance Condition Code:

  1. XA - Account closed at consumer's request
  2. XB - Account information disputed by consumer under the Fair Credit Reporting Act
  3. XC - Completed investigation of FCRA dispute - consumer disagrees
  4. XD - Account closed at consumer's request and in dispute under FCRA
  5. XE - Account closed at consumer's request and dispute investigation completed
  6. XF - Account in dispute under Fair Credit Billing Act
  7. XG - FCBA Dispute resolved -- consumer disagrees
  8. XH - Account previously in dispute -- now resolved
  9. XJ - Account closed at consumer's request and in dispute under FCBA
  10. XR - Removes the most recently reported Compliance Condition Code

Special Comment Codes: 

  1. AB - Debt being paid through insurance
  2. AC - Paying under a partial payment agreement
  3. AH - Purchased by another company
  4. AI - Recalled to active military duty
  5. AL - Student loan assigned to government
  6. AM - Account payments assured by wage garnishment
  7. AN - Account acquired by FDIC/NCUA
  8. AO - Voluntarily surrendered - then redeemed
  9. AP - Credit Line suspended
  10. AS - Account closed due to refinance
  11. AT - Account closed due to transfer
  12. AU - Account paid in full for less than the full balance
  13. AV - First payment never received
  14. AW - affected by natural or declared disaster
  15. AX - Account paid from collateral
  16. AZ - Redeemed repossession
  17. B - Account Payments managed by financial counseling program
  18. BA - Transferred to Recovery
  19. BB - Full termination/status pending
  20. BC - Full termination/obligation satisfied
  21. BD - Full termination/balance owing
  22. BE - Early termination/status pending
  23. BF - Early termination/obligation satisfied
  24. BG - Early termination/balance owing
  25. BH - Early termination/insurance loss
  26. BI - Involuntary repossession
  27. BJ - Involuntary repossession/obligation satisfied
  28. BK - Involuntary repossession/balance owing
  29. BL - Credit card lost or stolen
  30. BN - Paid by company which originally sold the merchandise
  31. BO - Foreclosure proceedings started
  32. BP - Paid through insurance
  33. BS - Prepaid Lease
  34. BT - Principal deferred/Interest payment only
  35. C - Paid by Co-maker or Guarantor
  36. CH - Guaranteed/Insured
  37. CI - Account due to inactivity
  38. CJ - Credit Line NO Longer Available - In Repayment Phase
  39. CK - Credit Line Reduced due to Collateral Depreciation
  40. CL - Credit Line Suspended due to Collateral Depreciation
  41. CM - Collateral Released by Creditor / Balance Owing
  42. CN - Loan Modified under a Federal Government Plan
  43. CO - Loan Modified
  44. CP - Account in forbearance
  45. CS - Used by Child Support Agencies only when reporting delinquent or collection accounts
  46. H - Loan assumed by another party
  47. I - Election of remedy
  48. M - Account closed at credit grantor's request
  49. O - Account transferred to another lender
  50. S - Special handling
  51. V - Adjustment pending

Payment Rating: 

Expected LoanPro value Definition
0 0 = Current account (0–29 days past the due date)
1 1 = 30-59 days past the due date
2 2 = 60-89 days past the due date
3 3 = 90-119 days past the due date
4 4 = 120-149 days past the due date
5 5 = 150-179 days past the due date
6 6 = 180 or more days past the due date
G G = Collection
L L = Charge-off

Consumer Information Indicator

  1. A - petition-for-chapter-7-bankruptcy
  2. B - petition-for-chapter-11-bankruptcy
  3. C - petition-for-chapter-12-bankruptcy
  4. D - petition-for-chapter-13-bankruptcy
  5. E - discharged-through-bankruptcy-chapter-7
  6. F - discharged-through-bankruptcy-chapter-11
  7. G - discharged-through-bankruptcy-chapter-12
  8. H - discharged-completed-through-bankruptcy-chapter-13
  9. 1A - personal-receivership
  10. Q - removes-previously-reported-bankruptcy-indicator-a-through-h-or-personal-receivership-indicator-1a-also-used-to-report-bankruptcies-that-have-been-closed-terminated-dismissed-or-withdrawn-without-being-discharged
  11. R - chapter-7-reaffirmation-of-debt
  12. V - chapter-7-reaffirmation-of-debt-rescinded
  13. 2A - lease-assumption
  14. S - removes-previously-reported-affirmation-of-debt-reaffirmation-of-debt-rescinded-and-lease-assumption-indicators-r-v-2a-and-obsolete-values-w-x-y
  15. T - credit-grantor-cannot-locate-consumer
  16. U - consumer-now-located-removes-previously-reported-t-indicator
 
 

Metro 2 fields by segment

Header segment

Metro 2 field LoanPro field value Logic
BDW calculated value 426
Record Identifier Hardcoded HEADER  
Cycle Identifier blank two spaces  
Program Identifiers Innovis input_value  
Program identifiers Equifax input_value  
Program Identifiers Transunion input_value  
Program Identifiers Experian input_value  
Current Date Automatically Generated now.strftime(%M%D%Y)
Activity Date current_date now.strftime(%M%D%Y)
Date Created current_date now.strftime(%M%D%Y)
Program Date Hardcoded SEPTEMBER 1 2023 Fixed string “09012024”
Program Revision Date Hardcoded LATEST VERSION DATE Fixed string “07012024”
Reporter name input_value Takes the first 40 characters of the input_value. Pads the input_value if less than 40 characters long.
Reporter address input_value Takes the first 96 characters of the input_value. Pads the input_value if less than 96 characters long.
Reporter phone input_value Takes the first 10 characters of the input_value. Pads the input_value if less than 10 characters long.
Program creator Hardcoded LoanPro Software, LLC Appends a fixed string with spaces to the right ensuring it is 40 characters long.
Program version Hardcoded LATEST VERSION Appends a fixed string with spaces to the right ensuring it is 160 characters long.

Base segment

Metro 2 field LoanPro value Logic
BDW calculated value 426
Processing Indicator Hardcoded 1  
Timestamp Automatically Generated based on reporting period now.strftime(%M%D%Y%H%M%S)
Identification number input_value defaults to reporter_name 1  
Cycle identifier blank  
Consumer account number loan_id or loc_id  
Portfolio type portfolio_type  
Account type credit_bureau  
Date opened contract_date Formatting adjustment to MMDDYYYY
Credit limit credit_limit Take as int ignore decimals places.
Highest credit or original loan Original_loan_amount or Highest_Credit Take as int ignore decimals places. Pad to 9 characters long.
Terms duration term or input_value Input Value: Installment = Term, Revolving = Rev, Line of Credit = LOC
Terms frequency payment_frequency Table Value based on payment frequency: Monthly = M, Semi Monthly = E, Weekly = W, Bi-Weekly = B, Annually = Y, Semi-Annually = S, Quarterly = Q, Single = P
Scheduled monthly payment amount payment_amount Take as int ignore decimals places. Credit Status = 13, 61, 62, 63, 64, 65, 97. Set as 000000000
Actual monthly payment amount last_payment_amount  
Account status credit_status  
Payment rating payment_rating Takes the first character in payment_rating and adds padding if necessary to ensure it is 1 character long.
Payment history profile payment_history_profile Mapped as Payment History Profile which provides a prefix of "YYYYMM:", Logic to remove that prefix
Special comment special_comment Table Value based on Custom Field: Expect to have code-description. Table maps description back to code.
Compliance condition code compliance_condition_code Table Value based on Custom Field: Expect to have code-description. Table maps description back to code.
Current balance balance If credit_status is “97” use charge_off balance. If origional_charge_off_balance is missing if entity_type is “Entity.Loan” either use payoff or remaining_principal_balance or remaining_principle_balance. Else use payoff or outstanding_balance. If origional_charge_off_balance is equal to “charge_off” set balance to “0.00” Else set balance to charge-off.
Amount past due amount_past_due_30 If credit_status is “93” or “97” amount_past_due is set to charge_off or value else amount_past_due is set to amount_30+_days_past_due.
Original charge-off amount charge_off original charge off balance unless there is no value then use current charge off take abs of amount.
Billing date / date of account information reported as date or closed date If closed_date is  empty. Use the File generation date minus one day instead formatted as “MMDDYYYY”.
Date of first delinquency Date of First Delinquency  
Date closed account_closed_date  
Date of last payment last_payment_date  
Surname last_name Remove all special char and make all char UPPERCASE
First name first_name Remove all special char and make all char UPPERCASE
Middle name middle_name Remove all special char and make all char UPPERCASE
Generation code generation_code From a map supporting generation codes
"j" → "J" "jr" → "J" "s" → "S" "sr" → "S" "ii" → "2" "iii" → "3" "iv" → "4" "v" → "5" "vi" → "6" "vii" → "7" "viii" → "8" "ix" → "9"
Either convert to lowercase and match given generation code with metro2 supported value or fill the generation_code field with a singular blank space.
Social Security Number social_security_number  
Date of birth date_of_birth Change formatting to MMDDYYYY
Telephone number primary_phone  
ECOA Code credit_ecoa  
Consumer information indicator blank Needs Mapping added
Based on the following map:
"petition for chapter 7 bankruptcy" => "A",
"petition for chapter 11 bankruptcy" => "B",
"petition for chapter 12 bankruptcy" => "C",
"petition for chapter 13 bankruptcy" => "D",
"discharged through bankruptcy chapter 7" => "E",
"discharged through bankruptcy chapter 11" => "F",
"discharged through bankruptcy chapter 12" => "G",
"discharged/completed through bankruptcy chapter 13" => "H",
"personal receivership" => "1A",                                 "removes previously reported bankruptcy indicator (a through h) or personal receivership indicator(1a). also used to report bankruptcies that have been closed, terminated, dismissed or withdrawn, without being discharged." => "Q",
"chapter 7 reaffirmation of debt" => "R",
"chapter 7 reaffirmation of debt rescinded" => "V",
"lease assumption" => "2A",
"removes previously reported affirmation of debt, reaffirmation of debt. rescinded and lease assumption indicators (r, v, 2a, and obsolete values w, x, y)" => "S",
"credit grantor cannot locate consumer" => "T",
"consumer now located (removes previously reported t indicator)" => "U"
Format matching code to exactly two characters.
Country code US or CA  
First line of address address Removes any characters from the address string that are not letters (A-Z, a-z), digits (0-9), spaces, slashes ("/"), hyphens ("-"), or periods ("."). This ensures only these allowed characters remain in the string. Converts to all uppercase and pads the string to make sure it is at least 32 characters long.
Second line of address   Removes any characters from the address string that are not letters (A-Z, a-z), digits (0-9), spaces, slashes ("/"), hyphens ("-"), or periods ("."). This ensures only these allowed characters remain in the string. Converts to all uppercase and pads the string to make sure it is at least 32 characters long.
City city Remove all special char and set all char to UPPERCASE.
State state  
Postal/zip code zip_code  
Address indicator and residence code blank  

J1 segment

Metro 2 field LoanPro field value Logic
Segment identifier Hardcoded J1  
Reserved    
Surname co-buyer_last_name Remove all special char and make all char UPPERCASE
First name co-buyer_first_name Remove all special char and make all char UPPERCASE
Middle name co-buyer_middle_name Remove all special char and make all char UPPERCASE
Generation code co-buyer_generation_code From a map supporting generation codes
"j" → "J" "jr" → "J" "s" → "S" "sr" → "S" "ii" → "2" "iii" → "3" "iv" → "4" "v" → "5" "vi" → "6" "vii" → "7" "viii" → "8" "ix" → "9"
Either convert to lowercase and match given generation code with metro2 supported value or fill the generation_code field with a singular blank space.
SSN co-buyer_ssn  
Date of birth co-buyer_dob Change formatting to MMDDYYYY
Telephone number co-buyer_primary_phone  
ECOA code co-buyers_ecoa  
Consumer information indicator blank  

J2 segment

Metro 2 field LoanPro field value Logic
Segment identifier Hardcoded J2  
Reserved    
Surname co-buyer_last_name Remove all special char and make all char UPPERCASE
First name co-buyer_first_name Remove all special char and make all char UPPERCASE
Middle name co-buyer_middle_name Remove all special char and make all char UPPERCASE
Generation code co-buyer_generation_code From a map supporting generation codes
"j" → "J" "jr" → "J" "s" → "S" "sr" → "S" "ii" → "2" "iii" → "3" "iv" → "4" "v" → "5" "vi" → "6" "vii" → "7" "viii" → "8" "ix" → "9"
Either convert to lowercase and match given generation code with metro2 supported value or fill the generation_code field with a singular blank space.
SSN co-buyer_ssn  
Date of birth co-buyer_dob Change formatting to MMDDYYYY
Telephone number co-buyer_primary_phone  
ECOA code co-buyers_ecoa  
Consumer information indicator blank  
Country code co-buyer_country US or CA
First line of address co-buyer_address Removes any characters from the address string that are not letters (A-Z, a-z), digits (0-9), spaces, slashes ("/"), hyphens ("-"), or periods ("."). This ensures only these allowed characters remain in the string. Converts to all uppercase and pads the string to make sure it is at least 32 characters long.
Second line of address co-buyer_address2 Removes any characters from the address string that are not letters (A-Z, a-z), digits (0-9), spaces, slashes ("/"), hyphens ("-"), or periods ("."). This ensures only these allowed characters remain in the string. Converts to all uppercase and pads the string to make sure it is at least 32 characters long.
City co-buyer_city Remove all special char and set all char to UPPERCASE.
State co-buyer_state  
Postal/ zip code co-buyer_zip_code  
Address indicator blank  
Residence code blank  
Reserved    

Trailer segment

Metro 2 field LoanPro field value Logic
BDW calculated  
Record identifier hardcoded trailer Static trailer string
Total base records calculated Totale base records
Blank separator calculated *9
Total status code DF calculated Total status code DF
Total consumer segments JA calculated Total consumer segments JA
Total consumer segments J2 calculated Total consumer segments J2
Block count calculated Block count
Other status codes calculated Other status codes
Total ECOA code Z calculated Total ECOA code Z
Total employment segments calculated Total employment segments
Total original creditor segments calculated Total original creditor segments
Total purchased from / sold to segments calculated Total purchased from / sold to segments
Total mortgage information segments calculated Total mortgage information segments
Total payment information segments calculated Total payment information segments
Total change segments calculated Total change segments
Total social security numbers calculated Total social security numbers
Total SSN base segment calculated Total SSN base segment
Total SSN J1 segment calculated Total SSN J1 segment
Total SSN J2 segment calculated Total SSN J2 segment
Total dates of birth calculated Total dates of birth
Total DOB base segment calculated Total DOB base segment
Total DOB J1 segment calculated Total DOB J1 segment
Total DOB J2 segment calculated Total DOB J2 segment
Total phone numbers calculated Total phone numbers

 

 

 


console.log(location);