CFPB Not Accepting Leading Zeros or Hyphens in HMDA Respondent ID
It has come to our attention that the CFPB is still making changes to the 2017 HMDA submission portal. We have just heard (1/9/18) that they changed the formatting of the Respondent ID field. It is now required that all institutions remove leading zeros and the hyphen for those reporters that use their Tax ID as Respondent ID. The hyphen is still required for the Tax ID field. This represents a huge hurdle for the industry because all HMDA submission tools are designed to make that field 10 digits.
This was not mentioned in the 2017 FIG and did not flag as an issue when institutions uploaded test files to the HMDA Platform. Now a recent change causes a syntactical edit, S025, when leading zeros or hyphens are present in the Respondent ID field. Your submission file will not be accepted if the S025 edit flags.
RATA offers two simple methods to solve this problem:
1. (Recommended) Apply a hotfix in the form of a SQL script to your Comply 17 system. Once this fix is applied you will keep your IDs exactly the same, zero filled and with the hyphen if applicable. When you go through the submission wizard Comply will automatically strip the unwanted characters as it creates the submission file.
Here are the steps to run the hotfix for the Respondent ID:
- Have an administrative user log in to Comply (or have someone log in as the csa user)
- Go to the System ribbon
- Click the Query Runner button
- Copy everything below that is under the SCRIPT line and paste it into the Query Runner window
- Click the Execute button
- Restart Comply
- When you go through the submission wizard the Respondent ID field will be formatted correctly in the submission file
2. Create the submission file without applying the hot fix, then follow these steps to manually correct the submission file prior to submission:
- Once you've gone through the submission wizard to create your LAR in .txt format, open that submission file in Notepad
- Click 'Edit > Replace'
- In the 'Find what' box type in your full 10-digit Respondent ID with the leading zeros and/or hyphens
- In the 'Replace with' box type in the Respondent ID with no leading zeros and no hyphens
- Click the 'Replace All' button
- Close the Replace window
- Click 'File > Save'
- Now you will be able to upload the submission .txt file to the HMDA Platform without receiving the S025 edit
Nothing is changing for 2017 CRA submissions. If you have any questions please feel free to contact us.
SCRIPT
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'ssp_Submission_HMDA_V2_Transmittal') AND type in (N'P', N'PC'))
DROP PROCEDURE ssp_Submission_HMDA_V2_Transmittal
GO
CREATE PROCEDURE ssp_Submission_HMDA_V2_Transmittal
@fkReportEntity AS int
AS
BEGIN
DECLARE @intAppCount AS int
SELECT @intAppCount = COUNT(*)
FROM #FilteredApps
SELECT
'1' AS RecordID,
CASE
WHEN ISNUMERIC(REPLACE(LTRIM(RTRIM(chrRespondentID)), '-', '')) = 1 THEN CAST(CAST(REPLACE(LTRIM(RTRIM(chrRespondentID)), '-', '') AS bigint) AS varchar(10))
ELSE LTRIM(RTRIM(chrRespondentID))
END AS RespondentID,
fkAgency AS AgencyCode,
GETDATE() AS Timestamp,
fkReportYear AS ActivityYear,
LTRIM(RTRIM(chrRespondentTaxID)) AS TaxID,
@intAppCount AS TotalLineEntries,
LTRIM(RTRIM(chrRespondName)) AS RespondentName,
LTRIM(RTRIM(chrRespondAddress)) AS RespondentAddress,
LTRIM(RTRIM(chrRespondCity)) AS RespondentCity,
UPPER(LTRIM(RTRIM(chrRespondState))) AS RespondentState,
LTRIM(RTRIM(chrRespondZip)) AS RespondentZIPCode,
LTRIM(RTRIM(chrParentName)) AS ParentName,
LTRIM(RTRIM(chrParentAddress)) AS ParentAddress,
LTRIM(RTRIM(chrParentCity)) AS ParentCity,
UPPER(LTRIM(RTRIM(chrParentState))) AS ParentState,
LTRIM(RTRIM(chrParentZip)) AS ParentZIPCode,
LTRIM(RTRIM(chrContactName)) AS ContactPersonsName,
LTRIM(RTRIM(chrContactPhone)) AS ContactPersonsPhoneNumber,
LTRIM(RTRIM(chrContactFax)) AS ContactPersonsFacsimileNumber,
LTRIM(RTRIM(chrContactEMail)) AS ContactPersonsEmailAddress
FROM tbl_Report_Entity WITH (NOLOCK)
WHERE pkReportEntity = @fkReportEntity
END
GO
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'ssp_Submission_HMDA_V2_LAR') AND type in (N'P', N'PC'))
DROP PROCEDURE ssp_Submission_HMDA_V2_LAR
GO
CREATE PROCEDURE ssp_Submission_HMDA_V2_LAR
@fkReportEntity AS int
AS
BEGIN
DECLARE @chrRespondentID varchar(10)
DECLARE @fkAgency int
SELECT @chrRespondentID = CASE
WHEN ISNUMERIC(REPLACE(LTRIM(RTRIM(chrRespondentID)), '-', '')) = 1 THEN CAST(CAST(REPLACE(LTRIM(RTRIM(chrRespondentID)), '-', '') AS bigint) AS varchar(10))
ELSE LTRIM(RTRIM(chrRespondentID))
END,
@fkAgency = fkAgency
FROM tbl_Report_Entity WITH (NOLOCK)
WHERE pkReportEntity = @fkReportEntity
SELECT
'2' AS RecordID,
@chrRespondentID AS RespondentID,
@fkAgency AS AgencyCode,
LTRIM(RTRIM(chrAppNo)) AS LoanApplicationNumber,
CASE WHEN dbo.udfVariantIsNA(varApplicationDate) = 1 THEN 'NA'
ELSE CONVERT(varchar, dbo.udfVariantGetDate(varApplicationDate), 112)
END AS DateApplicationReceived,
LTRIM(RTRIM(chrLoanType)) AS LoanType,
fkPropertyType AS PropertyType,
fkLoanPurpose AS LoanPurpose,
fkOccupancy AS OwnerOccupancy,
CONVERT(int, ROUND((ISNULL(monLoanAmount, 0) / 1000), 0)) AS LoanAmount,
fkPreapproved AS Preapprovals,
fkActionType AS TypeOfActionTaken,
CONVERT(varchar, dteActionDate, 112) AS DateOfAction,
LTRIM(RTRIM(chrMSA)) AS MSA,
LTRIM(RTRIM(chrStateCode)) AS StateCode,
LTRIM(RTRIM(chrCountyCode)) AS CountyCode,
LTRIM(RTRIM(chrCensusTract)) AS CensusTract,
fkAppEthn AS ApplicantEthnicity,
fkCoAppEthn AS CoApplicantEthnicity,
fkAppRace1 AS ApplicantRace1,
fkAppRace2 AS ApplicantRace2,
fkAppRace3 AS ApplicantRace3,
fkAppRace4 AS ApplicantRace4,
fkAppRace5 AS ApplicantRace5,
fkCoAppRace1 AS CoApplicantRace1,
fkCoAppRace2 AS CoApplicantRace2,
fkCoAppRace3 AS CoApplicantRace3,
fkCoAppRace4 AS CoApplicantRace4,
fkCoAppRace5 AS CoApplicantRace5,
fkAppGender AS ApplicantSex,
fkCoAppGender AS CoApplicantSex,
CASE WHEN dbo.udfVariantIsNA(varTotalIncome) = 1 THEN 'NA'
WHEN varTotalIncome IS NULL OR dbo.udfVariantIsNumeric(varTotalIncome) = 0 THEN ''
ELSE CONVERT(varchar, CONVERT(int, ROUND((ISNULL(dbo.udfVariantGetNumeric(varTotalIncome), 0) / 1000), 0)))
END AS ApplicantIncome,
fkPurchaserType AS TypeOfPurchaser,
LTRIM(RTRIM(fkDenialReason1)) AS DenialReason1,
LTRIM(RTRIM(fkDenialReason2)) AS DenialReason2,
LTRIM(RTRIM(fkDenialReason3)) AS DenialReason3,
CASE WHEN dbo.udfVariantIsNA(varRateSpread) = 1 THEN 'NA'
WHEN varRateSpread IS NULL OR dbo.udfVariantIsNumeric(varRateSpread) = 0 THEN ''
WHEN dbo.udfVariantGetNumeric(varRateSpread) < 0 THEN ''
ELSE dbo.udfPad(CONVERT(varchar, CONVERT(decimal(7,2), dbo.udfVariantGetNumeric(varRateSpread))), 5, '0', 1)
END AS RateSpread,
fkHOEPA AS HOEPAStatus,
fkLienStatus AS LienStatus
FROM tbl_HMDA WITH (NOLOCK)
INNER JOIN #FilteredApps
ON pkHMDAGuid = fkApplicationID
LEFT JOIN tbl_GeoCode
ON fkGeoCode = pkGeoCode
ORDER BY chrAppNo
END
GO
- California's New Fair Lending Exam Law: What State-Chartered Banks, Credit Unions and Mortgage Licensees Should Have Ready
- How to Benchmark Your CRA and HMDA Lending Against Peer Data
- HMDA vs CRA vs Section 1071: What Each Rule Collects and Who Has to File
- Fair Lending Regression Analysis: What It Controls For and How to Explain a Pricing Disparity
- 2026 HMDA Data: Your Filing Checklist for the March 1, 2027 Deadline
- 2018 Edits Finally Released by CFPB
- 2018 HMDA Changes - What's the Word?
- RATA's Customer Care Campaign
- HMDA Plus: What It Actually Changed in the LAR Workflow
- How to Fix the 10 Most Common HMDA Edit Check Errors
- CFPB and DOJ Settle Redlining Claims Against Non-Depository Mortgage Companies Before Change in Administration
- How to Evaluate Fair Lending and CRA Software: What to Test Before You Sign
- What a Fair Lending Exam Actually Asks For
- Fair Servicing: What Examiners Test in Servicing Data, and How to Test It First
- What Actually Counts as a Small Business Loan Under Section 1071
- Section 1071 in 2026: What Lenders Need to Know About Small Business Lending Data


