Event Storm — Mortgage Origination
Application, underwriting and completion contexts for a building society, surfacing an affordability recalculation and a land registry charge that no command produces, either side of a surveyor-panel boundary.
Make it your own.
title "Mortgage origination — decision in principle to completion"
context "Application"
actor "Mortgage broker"
actor Applicant
aggregate Application
command "Submit decision in principle" by "Mortgage broker" on Application emits "Decision in principle issued"
event "Decision in principle issued"
readmodel "Product and rate sheet"
command "Submit full application" by Applicant on Application
event "Full application received" from "Submit full application"
external "Credit reference agency"
hotspot "Broker resubmits under a different product to beat a rate change"
policy "When full application received, instruct valuation" then "Instruct valuation"
context "Underwriting"
actor Underwriter
aggregate "Underwriting case"
command "Instruct valuation" by "Case service" on "Underwriting case"
event "Valuation returned" from "Instruct valuation"
external "Surveyor panel"
command "Assess affordability" by Underwriter on "Underwriting case"
event "Affordability assessed" from "Assess affordability"
event "Affordability recalculated"
command "Issue offer" by Underwriter on "Underwriting case" emits "Offer issued"
event "Offer issued"
readmodel "Case pipeline board"
hotspot "Down valuation — reprice, reduce the loan, or decline?"
policy "When offer issued, notify conveyancer" then "Notify conveyancer"
context "Completion"
actor Conveyancer
aggregate "Loan account"
command "Notify conveyancer" by "Offer service" on "Loan account"
event "Completion date agreed" from "Notify conveyancer"
command "Release funds" by Conveyancer on "Loan account"
event "Funds released" from "Release funds"
event "Charge registered"
external "HM Land Registry"
readmodel "Completion diary"
hotspot "Chain collapses after funds are drawn down"