LoanPro

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 valueDefinition
00 = Current account (0–29 days past the due date)
11 = 30-59 days past the due date
22 = 60-89 days past the due date
33 = 90-119 days past the due date
44 = 120-149 days past the due date
55 = 150-179 days past the due date
66 = 180 or more days past the due date
GG = Collection
LL = 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 fieldLoanPro field valueLogic
BDWcalculated value426
Record IdentifierHardcoded HEADER 
Cycle Identifierblank two spaces 
Program Identifiers Innovisinput_value 
Program identifiers Equifaxinput_value 
Program Identifiers Transunioninput_value 
Program Identifiers Experianinput_value 
Current DateAutomatically Generatednow.strftime(%M%D%Y)
Activity Datecurrent_datenow.strftime(%M%D%Y)
Date Createdcurrent_datenow.strftime(%M%D%Y)
Program DateHardcoded SEPTEMBER 1 2023Fixed string “09012024”
Program Revision DateHardcoded LATEST VERSION DATEFixed string “07012024”
Reporter nameinput_valueTakes the first 40 characters of the input_value. Pads the input_value if less than 40 characters long.
Reporter addressinput_valueTakes the first 96 characters of the input_value. Pads the input_value if less than 96 characters long.
Reporter phoneinput_valueTakes the first 10 characters of the input_value. Pads the input_value if less than 10 characters long.
Program creatorHardcoded LoanPro Software, LLCAppends a fixed string with spaces to the right ensuring it is 40 characters long.
Program versionHardcoded LATEST VERSIONAppends a fixed string with spaces to the right ensuring it is 160 characters long.

Base segment

Metro 2 fieldLoanPro valueLogic
BDWcalculated value426
Processing IndicatorHardcoded 1 
TimestampAutomatically Generated based on reporting periodnow.strftime(%M%D%Y%H%M%S)
Identification numberinput_value defaults to reporter_name 1 
Cycle identifierblank 
Consumer account numberloan_id or loc_id 
Portfolio typeportfolio_type 
Account typecredit_bureau 
Date openedcontract_dateFormatting adjustment to MMDDYYYY
Credit limitcredit_limitTake as int ignore decimals places.
Highest credit or original loanOriginal_loan_amount or Highest_CreditTake as int ignore decimals places. Pad to 9 characters long.
Terms durationterm or input_valueInput Value: Installment = Term, Revolving = Rev, Line of Credit = LOC
Terms frequencypayment_frequencyTable 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 amountpayment_amountTake as int ignore decimals places. Credit Status = 13, 61, 62, 63, 64, 65, 97. Set as 000000000
Actual monthly payment amountlast_payment_amount 
Account statuscredit_status 
Payment ratingpayment_ratingTakes the first character in payment_rating and adds padding if necessary to ensure it is 1 character long.
Payment history profilepayment_history_profileMapped as Payment History Profile which provides a prefix of "YYYYMM:", Logic to remove that prefix

This value only includes months where payment or balance activity were present. A 3rd party tool, we recommend Credit Manager 5, will need to be used to apply appropriate “L” codes, based on business logic, in months where no activity was present.
Special commentspecial_commentTable Value based on Custom Field: Expect to have code-description. Table maps description back to code.
Compliance condition codecompliance_condition_codeTable Value based on Custom Field: Expect to have code-description. Table maps description back to code.
Current balancebalanceIf 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 dueamount_past_due_30If 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 amountcharge_offoriginal charge off balance unless there is no value then use current charge off take abs of amount.
Billing date / date of account informationreported as date or closed dateIf closed_date is  empty. Use the File generation date minus one day instead formatted as “MMDDYYYY”.
Date of first delinquencyDate of First Delinquency 
Date closedaccount_closed_date 
Date of last paymentlast_payment_date 
Surnamelast_nameRemove all special char and make all char UPPERCASE
First namefirst_nameRemove all special char and make all char UPPERCASE
Middle namemiddle_nameRemove all special char and make all char UPPERCASE
Generation codegeneration_codeFrom 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 Numbersocial_security_number 
Date of birthdate_of_birthChange formatting to MMDDYYYY
Telephone numberprimary_phone 
ECOA Codecredit_ecoa 
Consumer information indicatorblankNeeds 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 codeUS or CA 
First line of addressaddressRemoves 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.
CitycityRemove all special char and set all char to UPPERCASE.
Statestate 
Postal/zip codezip_code 
Address indicator and residence codeblank 

J1 segment

Metro 2 fieldLoanPro field valueLogic
Segment identifierHardcoded J1 
Reserved  
Surnameco-buyer_last_nameRemove all special char and make all char UPPERCASE
First nameco-buyer_first_nameRemove all special char and make all char UPPERCASE
Middle nameco-buyer_middle_nameRemove all special char and make all char UPPERCASE
Generation codeco-buyer_generation_codeFrom 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.
SSNco-buyer_ssn 
Date of birthco-buyer_dobChange formatting to MMDDYYYY
Telephone numberco-buyer_primary_phone 
ECOA codeco-buyers_ecoa 
Consumer information indicatorblank 

J2 segment

Metro 2 fieldLoanPro field valueLogic
Segment identifierHardcoded J2 
Reserved  
Surnameco-buyer_last_nameRemove all special char and make all char UPPERCASE
First nameco-buyer_first_nameRemove all special char and make all char UPPERCASE
Middle nameco-buyer_middle_nameRemove all special char and make all char UPPERCASE
Generation codeco-buyer_generation_codeFrom 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.
SSNco-buyer_ssn 
Date of birthco-buyer_dobChange formatting to MMDDYYYY
Telephone numberco-buyer_primary_phone 
ECOA codeco-buyers_ecoa 
Consumer information indicatorblank 
Country codeco-buyer_countryUS or CA
First line of addressco-buyer_addressRemoves 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 addressco-buyer_address2Removes 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.
Cityco-buyer_cityRemove all special char and set all char to UPPERCASE.
Stateco-buyer_state 
Postal/ zip codeco-buyer_zip_code 
Address indicatorblank 
Residence codeblank 
Reserved  

Trailer segment

Metro 2 fieldLoanPro field valueLogic
BDWcalculated 
Record identifierhardcoded trailerStatic trailer string
Total base recordscalculatedTotale base records
Blank separatorcalculated*9
Total status code DFcalculatedTotal status code DF
Total consumer segments JAcalculatedTotal consumer segments JA
Total consumer segments J2calculatedTotal consumer segments J2
Block countcalculatedBlock count
Other status codescalculatedOther status codes
Total ECOA code ZcalculatedTotal ECOA code Z
Total employment segmentscalculatedTotal employment segments
Total original creditor segmentscalculatedTotal original creditor segments
Total purchased from / sold to segmentscalculatedTotal purchased from / sold to segments
Total mortgage information segmentscalculatedTotal mortgage information segments
Total payment information segmentscalculatedTotal payment information segments
Total change segmentscalculatedTotal change segments
Total social security numberscalculatedTotal social security numbers
Total SSN base segmentcalculatedTotal SSN base segment
Total SSN J1 segmentcalculatedTotal SSN J1 segment
Total SSN J2 segmentcalculatedTotal SSN J2 segment
Total dates of birthcalculatedTotal dates of birth
Total DOB base segmentcalculatedTotal DOB base segment
Total DOB J1 segmentcalculatedTotal DOB J1 segment
Total DOB J2 segmentcalculatedTotal DOB J2 segment
Total phone numberscalculatedTotal phone numbers