ULI Check Digit Calculator and Validator
Every HMDA Universal Loan Identifier ends in two check digits worked out with ISO/IEC 7064 MOD 97-10, the method in Appendix C to Regulation C. Generate them from your LEI and loan number, or paste a full ULI to see whether it would pass edit V609.
Generate or check a ULI
Everything runs in your browser. Nothing you type is sent anywhere.
How the ULI check digit is calculated
Under 12 CFR 1003.4(a)(1)(i), a ULI starts with the institution's Legal Entity Identifier, follows it with "up to 23 additional characters to identify the covered loan or application," and "ends with a two-character check digit, as prescribed in appendix C." The LEI is always 20 characters wide (2026 Filing Instructions Guide), so a ULI runs from 23 to 45 characters.
Appendix C gives five steps for generating the check digit:
- Starting from the left of the LEI plus loan identifier, replace each letter with a number from its Table I: A = 10, B = 11, and so on to Z = 35. Appendix C says the letters "are not case-sensitive," so a and A are both 10.
- Append two zeros to the right of the all-numeric string.
- Take that number mod 97.
- Subtract the result from 98. If the answer is one digit, add a leading zero.
- Append those two digits to the LEI and loan identifier. That is the ULI.
Validation is shorter. Convert the letters in the whole ULI, check digits included, and take the number mod 97. Appendix C says that "if the result is 1, the ULI does not contain transcription errors." Because the last step subtracts from 98, valid check digits always fall between 02 and 98.
The numbers involved are too long for ordinary floating-point arithmetic: the Appendix C example becomes a 37-digit number. The calculator takes the remainder one digit at a time, which gives the exact answer for any length. A spreadsheet cannot store a number that long exactly, so a formula that applies MOD to the whole number at once returns the wrong remainder. Appendix C also describes a shortcut that divides by 97, truncates the remainder to three decimal places and multiplies back; it lands on 60 for the example, but it needs the same full-precision division.
Why ULIs fail HMDA edits
Three edits in the 2026 Filing Instructions Guide look at the ULI field:
| Edit | What the FIG says | Usual cause |
|---|---|---|
| V608 | "The required format for ULI is alphanumeric with at least 23 characters and up to 45 characters, and it cannot be left blank." | The LEI was dropped or cut short, the loan number runs past 23 characters, or a hyphen, space or slash came across from the loan system. |
| V609 | "Based on the check digit calculation, the ULI contains a transcription error." | A character was retyped wrong, the check digits were worked out on a different loan number, or the number was edited after the digits were added. |
| S306 | "If Action Taken equals 1, a duplicate ULI cannot be reported." | The same identifier reached two originated loans, often a refinance that kept the original loan's ULI. |
The calculator catches the V608 and V609 problems. It tells you which position holds a character outside A to Z and 0 to 9, and it spots invisible characters pasted in from a spreadsheet. Lowercase letters are a different matter. They change nothing in the calculation, and the FIG says "text entries in alphanumeric fields do not need to use all uppercase letters," so the calculator mentions them without counting them as errors.
S306 cannot be tested one ULI at a time, because it compares records with each other. The HMDA edit check validator runs V608, V609 and the other row-level edits on a pasted LAR record, and the edit check lookup explains any edit by its number. Supplement I adds two rules that no format check can test: a ULI must be unique within the institution, and the loan identifier must not contain anything that could identify the borrower, such as a name, Social Security number or date of birth (comments 4(a)(1)(i)-1 and -2).
Worked example from Appendix C
Appendix C uses a sample LEI of 10Bx939c5543TqA1144M and a loan identifier of 999143X. The mixed case is in the regulation itself, there to show that case does not matter.
| Step | Result in Appendix C |
|---|---|
| Combine the LEI and loan identifier | 10Bx939c5543TqA1144M999143X |
| 1. Letters to numbers (B=11, X=33, C=12, T=29, Q=26, A=10, M=22) | 10113393912554329261011442299914333 |
| 2. Append 00 | 1011339391255432926101144229991433300 |
| 3. Mod 97 | 60 |
| 4. 98 minus 60 | 38 |
| 5. Append the check digits | 10Bx939c5543TqA1144M999143X38 |
| Validate: convert the full ULI, mod 97 | 1011339391255432926101144229991433338 mod 97 = 1, so no transcription error |
The calculator gives the same result at every step. The "Try the Appendix C example" buttons above load these values, and the code behind this page is tested against them.
Methodology and sources
The calculator follows Appendix C step by step, using the eCFR text of 12 CFR part 1003 with title 12 up to date as of October 30, 2026. Length and character rules come from 1003.4(a)(1)(i) and edit V608 in the 2026 FIG. It does not check whether an LEI is registered, whether a ULI is unique on your register, or whether a purchased loan kept the ULI its seller reported, which comment 4(a)(1)(i)-3 requires. The FFIEC runs its own check digit tool on the HMDA Platform, and the two should always agree. This page is a reading of the rule, not legal advice. Last reviewed November 3, 2026.
You may reuse the explanations and the worked example on this page, with credit to RATA Associates and a link back here. Comply HMDA/CRA/SBL runs these checks across your whole LAR before you file, and the HMDA reportability checker tells you whether a loan belongs on it.
- Appendix C to Part 1003, Procedures for Generating a Check Digit and Validating a ULI, eCFR, up to date as of October 30, 2026.
- 12 CFR 1003.4(a)(1)(i), universal loan identifier, eCFR, up to date as of October 30, 2026.
- Supplement I to Part 1003, comments 4(a)(1)(i)-1 to -3, eCFR.
- 2026 Filing Instructions Guide for HMDA data, FFIEC: data fields 2 and 3, edits V608, V609 and S306.
Quoting a figure? Cite this page
To cite it: RATA Associates, "ULI Check Digit Calculator and Validator," rule text checked November 3, 2026, https://rataassociates.com/hmda-uli-check-digit-calculator/.
You may republish the explanations and the worked example on this page with attribution to RATA Associates and a link to this page.
