Skip to main content

Report

As a result of a calculation request to the MRE, it produces a report which contains all the information for each lender, over several loan amount cases.

Schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "Mortgage Recommendation Engine Report Output Schema",
  "description": "Schema for the output returned from the generate report endpoint",
  "type": "object",
  "properties": {
    "Result": {
      "type": "object",
      "description": "Main calculation results from the mortgage recommendation engine",
      "properties": {
        "AssessedIncome": {
          "type": "array",
          "description": "Array of assessed income items",
          "items": {
            "type": "object",
            "properties": {
              "Group": {
                "type": "string",
                "description": "Group of the income, usually how the income is grouped in spreadsheet (e.g., 'Applicant Income')"
              },
              "Label": {
                "type": "string",
                "description": "Label of the income, usually how the income is referenced/named in spreadsheet (e.g., 'Applicant Income {{Applicant1.Name}}')"
              },
              "Entered": {
                "type": "object",
                "description": "Values that are entered into the lender spreadsheet for this specific income",
                "properties": {
                  "Amount": {
                    "type": "number",
                    "description": "Amount entered"
                  },
                  "Frequency": {
                    "type": "string",
                    "description": "Frequency of this income, usually 'Monthly'"
                  }
                },
                "required": ["Amount", "Frequency"]
              },
              "Assessed": {
                "type": "object",
                "description": "Values that are assessed by the lender spreadsheet (including 'shading' that lenders apply to the entered values)",
                "properties": {
                  "Amount": {
                    "type": "number",
                    "description": "Assessed amount"
                  },
                  "Frequency": {
                    "type": "string",
                    "description": "Assessed frequency of this income, likely in all cases 'Monthly'"
                  }
                },
                "required": ["Amount", "Frequency"]
              }
            },
            "required": ["Group", "Label", "Entered", "Assessed"]
          }
        },
        "AssessedExpense": {
          "type": "array",
          "description": "Array of assessed expense items",
          "items": {
            "type": "object",
            "properties": {
              "Group": {
                "type": "string",
                "description": "Group of the expense, defined statically for display of results in UI (e.g., 'Lending', 'Other Liabilities', 'Fixed Commitments')"
              },
              "Label": {
                "type": "string",
                "description": "Label of the expense, usually how the expense is referenced/named in spreadsheet (e.g., 'New Home Loan')"
              },
              "Entered": {
                "type": "object",
                "description": "Values that are entered into the lender spreadsheet for this specific expense",
                "properties": {
                  "Definition": {
                    "type": "string",
                    "description": "Can be set to 'Limit' which is used when a credit card is submitted (Limit is used to tell UI how to render this expense entered value)"
                  },
                  "Amount": {
                    "type": "number",
                    "description": "Amount entered"
                  },
                  "Frequency": {
                    "type": "string",
                    "description": "Frequency of this expense, usually 'Monthly'"
                  },
                  "InterestRate": {
                    "type": "number",
                    "description": "For any home loans the applicant may have, interest rate is entered here"
                  }
                },
                "required": ["Amount", "Frequency", "InterestRate"]
              },
              "Assessed": {
                "type": "object",
                "description": "Values that are assessed by the lender spreadsheet (including 'shading' that lenders apply to the entered values)",
                "properties": {
                  "Amount": {
                    "type": "number",
                    "description": "Assessed amount"
                  },
                  "Frequency": {
                    "type": "string",
                    "description": "Assessed frequency of this expense, likely in all cases 'Monthly'"
                  }
                },
                "required": ["Amount", "Frequency"]
              }
            },
            "required": ["Group", "Label", "Entered", "Assessed"]
          }
        },
        "TotalMonthlyIncome": {
          "type": "number",
          "description": "Total monthly income calculated from all assessed income sources"
        },
        "TotalMonthlyExpense": {
          "type": "number",
          "description": "Total monthly expenses calculated from all assessed expenses"
        },
        "UMI": {
          "type": "object",
          "description": "Uncommitted Monthly Income calculation results",
          "properties": {
            "Value": {
              "type": "number",
              "description": "Calculated UMI value"
            },
            "Required": {
              "type": ["number", "string"],
              "description": "Required UMI value for approval"
            },
            "Status": {
              "type": "string",
              "enum": ["Pass", "Fail"],
              "description": "Pass/Fail status for UMI requirement"
            },
            "LvrValue": {
              "type": "number",
              "description": "LVR value used in UMI calculation"
            },
            "SecurityUsageType": {
              "type": "string",
              "description": "Security usage type used in UMI calculation"
            }
          },
          "required": ["Value", "Required", "Status"]
        },
        "Servicing": {
          "type": "object",
          "description": "Servicing calculation results",
          "properties": {
            "Type": {
              "type": "string",
              "description": "Type of servicing calculation"
            },
            "Value": {
              "type": "number",
              "description": "Calculated servicing value"
            },
            "Required": {
              "type": ["number", "string"],
              "description": "Required servicing value for approval"
            },
            "Status": {
              "type": "string",
              "enum": ["Pass", "Fail"],
              "description": "Pass/Fail status for servicing requirement"
            }
          },
          "required": ["Type", "Value", "Required", "Status"]
        },
        "LVR": {
          "type": "array",
          "description": "Loan-to-Value Ratio calculations for each loan",
          "items": {
            "type": "object",
            "properties": {
              "Reference": {
                "type": "string",
                "description": "Reference identifier for this LVR calculation"
              },
              "LoanId": {
                "type": "integer",
                "description": "ID of the loan this LVR calculation applies to"
              },
              "LVRLimit": {
                "type": "array",
                "description": "Array of LVR limits that apply to this loan",
                "items": {
                  "type": "object",
                  "properties": {
                    "Label": {
                      "type": "string",
                      "description": "Label for this LVR limit (e.g., 'Property Type')"
                    },
                    "Description": {
                      "type": "string",
                      "description": "Description/extra information for this LVR limit (e.g., '{Security.PropertyType}' or 'Unknown')"
                    },
                    "MaxLVR": {
                      "type": "number",
                      "minimum": 0,
                      "maximum": 1,
                      "description": "Maximum accepted LVR value as a decimal (e.g., 0.95 for 95%)"
                    }
                  },
                  "required": ["Label", "Description", "MaxLVR"]
                }
              },
              "Value": {
                "type": "number",
                "description": "Calculated LVR value"
              },
              "RequiredMaxLVR": {
                "type": "number",
                "description": "Maximum LVR required for approval"
              },
              "Status": {
                "type": "string",
                "enum": ["Pass", "Fail"],
                "description": "Pass/Fail status for LVR requirement"
              }
            },
            "required": ["LoanId", "LVRLimit", "Value", "RequiredMaxLVR", "Status"]
          }
        },
        "LEM": {
          "type": "array",
          "description": "Lenders Equity Margin calculations",
          "items": {
            "type": "object",
            "properties": {
              "Label": {
                "type": "string",
                "description": "Label for this LEM calculation (e.g., 'Security {LoanId}')"
              },
              "LoanId": {
                "type": "integer",
                "description": "ID of the loan this LEM calculation applies to"
              },
              "Assessed": {
                "type": "number",
                "description": "Assessed value for LEM calculation"
              },
              "Margin": {
                "type": "number",
                "minimum": 0,
                "maximum": 1,
                "description": "Margin percentage as a decimal (e.g., 0.015 for 1.5%)"
              },
              "Amount": {
                "type": "number",
                "description": "Calculated LEM amount"
              }
            },
            "required": ["Label", "LoanId", "Assessed", "Margin", "Amount"]
          }
        },
        "DTI": {
          "type": "object",
          "description": "Debt-to-Income ratio calculation results",
          "properties": {
            "TotalIncome": {
              "type": "number",
              "description": "Total income used in DTI calculation"
            },
            "TotalDebt": {
              "type": "number",
              "description": "Total debt used in DTI calculation"
            },
            "Value": {
              "type": "number",
              "description": "Calculated DTI value"
            },
            "RequiredMaxDTI": {
              "type": ["number", "string"],
              "description": "Maximum DTI required for approval, or 'N/A' if not applicable"
            },
            "Status": {
              "type": "string",
              "enum": ["Pass", "Fail", "N/A"],
              "description": "Pass/Fail/N/A status for DTI requirement"
            }
          },
          "required": ["TotalIncome", "TotalDebt", "Value", "RequiredMaxDTI", "Status"]
        },
        "Deposit": {
          "type": "object",
          "description": "Deposit calculation results",
          "properties": {
            "Amount": {
              "type": "number",
              "description": "Required deposit amount"
            }
          },
          "required": ["Amount"]
        }
      },
      "required": [
        "AssessedIncome",
        "AssessedExpense", 
        "TotalMonthlyIncome",
        "TotalMonthlyExpense",
        "UMI",
        "Servicing",
        "LVR",
        "LEM",
        "DTI",
        "Deposit"
      ]
    },
    "Warnings": {
      "type": "array",
      "description": "Array of warning messages generated during calculation",
      "items": {
        "type": "object",
        "properties": {
          "Message": {
            "type": "string",
            "description": "Warning message text"
          },
          "Reference": {
            "type": "string",
            "description": "Reference to the part of the calculation that generated this warning"
          },
          "ReferenceObjectType": {
            "type": "string",
            "description": "Type of object that the warning references (used in V2 warnings)"
          },
          "ReferenceObjectId": {
            "type": ["string", "number"],
            "description": "ID of the object that the warning references (used in V2 warnings)"
          }
        },
        "required": ["Message", "Reference"]
      }
    },
    "Errors": {
      "type": "array",
      "description": "Array of error messages generated during calculation",
      "items": {
        "type": "object",
        "properties": {
          "Message": {
            "type": "string",
            "description": "Error message text"
          },
          "Reference": {
            "type": "string",
            "description": "Reference to the part of the calculation that generated this error"
          },
          "ReferenceObjectType": {
            "type": "string",
            "description": "Type of object that the error references (used in V2 errors)"
          },
          "ReferenceObjectId": {
            "type": ["string", "number"],
            "description": "ID of the object that the error references (used in V2 errors)"
          }
        },
        "required": ["Message", "Reference"]
      }
    },
    "Resources": {
      "type": "array",
      "description": "Array of resource references (e.g., lender guideline images)",
      "items": {
        "type": "object",
        "properties": {
          "Type": {
            "type": "string",
            "enum": ["Image"],
            "description": "Type of resource"
          },
          "URL": {
            "type": "string",
            "format": "uri",
            "description": "URL to the resource"
          },
          "Reference": {
            "type": "string",
            "description": "Reference to the calculation result this resource relates to (e.g., 'Result.LEM', 'Result.LVR.LVRLimit[0]')"
          }
        },
        "required": ["Type", "URL", "Reference"]
      }
    },
    "Accuracy": {
      "type": "number",
      "minimum": 0,
      "maximum": 1,
      "description": "Accuracy rating of the calculation as a decimal (e.g., 0.99 for 99%)"
    },
    "Version": {
      "type": "object",
      "description": "Version information for the calculation engine",
      "properties": {
        "VersionNumber": {
          "type": "string",
          "description": "Version number of the calculation engine"
        },
        "ReleaseDate": {
          "type": "string",
          "description": "Release date of this version"
        },
        "VersionReleaseNote": {
          "type": "string",
          "description": "Release notes for this version"
        }
      },
      "required": ["VersionNumber", "ReleaseDate", "VersionReleaseNote"]
    }
  },
  "required": [
    "Result",
    "Warnings",
    "Errors",
    "Resources",
    "Accuracy",
    "Version"
  ]
}