Different mainframe/data processors utilize different codes for purposes of feeding into the correct line on the Call Report.
I worked at a bank where the "Purpose" code was the actual line on the Call Report (i.e. 04a, 01e, 01a, etc.) Other banks use different codes that are then interpreted for purposes of reporting on the Call Report.
Frankly, I wish we could get rid of the term "Purpose Code" because everyone thinks it means the actual PURPOSE of the loan. But for the Call Report, sometimes the actual purpose of the loan is secondary to other factors.
I wish we would just call the thing "Call Report Code" and be done with it!
Regulations are a poor substitute for ethics.