Saturday, July 31, 2010

Finding the Borrower / co-borrower in a V3.0 message

  • Not sure how to indicate the co-borrower and borrower.
We have completely left behind the form oriented way of modeling the data. One can render documents from the model, however. The URLA had two side by side section labeled Borrower and co-borrower. A lot of mythology developed about the importance of being on one side or the other. There is no difference from a GSE underwriting perspective, no difference in obligation to pay the mortgage either. About the only observable different between the party called "Borrower" and the others is the "Borrower" receives the disclosure documents. Ad added confusion from the forms oriented approach is that if there were more that two borrowers you needed an extra URLA form. What then is the significance of the "Borrower" on the second form. Of course there is no significance.

In version 3.x we tried to distance our selves from the jargon that carried so much misunderstanding. One borrower gets the disclosures, the others do not. After closing one borrower gets the monthly statements and other communications. The others do not. As a practical matter there is hardly any expense to send information to all borrower electronically. So even this distinction between borrowers may be going away.

In the attached file there are two parties that have roles as borrower. After removing a lot of content the example looks like this.

<PARTY type="resource" xlink:title="Borrower1">
<ROLES type="resource">
<ROLE type="resource">
<ROLE_DETAIL>
<PartyRoleType>Borrower</PartyRoleType>
</ROLE_DETAIL>
</ROLE>
</ROLES>
</PARTY>

There is a more concise way to show this called XPath. Here is the XPath expression that tests for a party with a role of borrower.
//m:PARTY[m:ROLES/m:ROLE/m:ROLE_DETAIL/m:PartyRoleType='Borr
ower']
One would read this as "Find me all PARTY elements where they have a descendant ROLES/ROLE/ROLE_DETAIL/PartyRoleType that is equal to Borrower.

Note: XPaths require name space reference. Above we assume that the MISMO name space ( http://mismo.org/residential/2009/schemas )has been assigned the abbreviation m. We will leave off the namespace designator in the rest of the example.

When creating V3 every borrower MUST be labeled with the Role Type Borrower.

Now that we know how to find all the borrowers lets find the BORROWER that will receive the disclosures. We use this to mark that borrower
<BorrowerClassificationType>Primary</BorrowerClassificationType>
The XPath is
//PARTY[ROLES/ROLE/ROLE_DETAIL/PartyRoleType='Borrower']/ROLES/ROLE/BORROWER[BORROWER_DETAIL/BorrowerClassificationType='Primary']
We would read this as"from the parties we selected earlier find the one that is primary."

When creating V3 there MUST be only one borrower marked as primary.

The XPATH above can be written to protect against some sender that fails to observe this last rule.
//PARTY[ROLES/ROLE/ROLE_DETAIL/PartyRoleType='Borrower']/ROLES/ROLE/BORROWER[BORROWER_DETAIL/BorrowerClassificationType='Primary' and position()=1]

The xpath to find a collection of all the secondary borrowers is
//PARTY[ROLES/ROLE/ROLE_DETAIL/PartyRoleType='Borrower']/ROLES/ROLE/BORROWER[BORROWER_DETAIL/BorrowerClassificationType='Primary']

No comments:

Post a Comment