Skip to main content

SoR Engine

Repairs are represented by a Schedule of Rate (SoR) code.

The nationally published register of SoR codes contains 2500+ entries.

Each local authority selects which specific SoR codes it wants to use from the national register. They can also create new SoR codes if an existing one doesn't fit a particular repair.

Different local authorities can attribute different SoR codes to the same repair as represented within Housing Repairs Online service.

For example, a repair of a kitchen cupboard door hanging off, local authority 1 can use SoR code 123 and local authority 2 can use SoR code ABC.

Due to this difference, the SoR engine was created to allow each local authority to be able to use the specific SoR code they would prefer for each online reportable repair.

The SoR Engine offers a 3-tiered mapping of where, what and best description of the issue to a SoR code and priority.

Here is an example of the values possible at the 3 tiers:

Tier questionValue
Where?Kitchen
What?Cupboard
Best Description?Door Hanging Off
note

All journey's must have a minimum of 2 tiers and some do not have 3 tier's, e.g. Kitchen - Worktop

Tier questionValue
Where?Kitchen
What?Worktop
Best Description?-

Configuration

The SoR engine is configured by specifying the SOR_CONFIGURATION_XXX environment variables, where XXX is replaced with a repair types, i.e. TENANT, LEASEHOLD or COMMUNAL.

The configuration allows specifying the key value, display text and either options (used to gather additional information) or a SoR code and priority.

The SOR_CONFIGURATION_XXX values are used to determine which options to offer for a specific repair type at each tier (where, what and best description) and a SoR code for the combination of options.
The display text is shown to the user within the frontend.
The value specified is used as a key to identify that option. All values need to be unique and do not need to be human readable as they won't be displayed.

Early Exit Points

An early exit point is an option selection which stops the user from continuing to make a repair request. The following describes the values to use for specific exit points:

ValueDescription
EmergencyAn option selected is identified as an emergency
UnableToBookAn option which is not bookable via the service
NotEligibleNonEmergencyAn option for which the Local Authority may not be responsible
ContactUsAn option that will require contacting the Local Authority

When these options are selected, appropriate information is presented to the user.

Example Configuration

The following example has:

  • 2 and 3 tier options
  • Each of the early exit points (both at tier 2 and tier 3)
[
{
"value": "kitchen",
"display": "Kitchen",
"options": [
{
"value": "cupboards",
"display": "Cupboards, including damaged...",
"options": [
{
"value": "doorHangingOff",
"display": "Hanging Door",
"sorCode": "N373049",
"priority": "priority 2"
},
{
"value": "doorMissing",
"display": "Missing door",
"sorCode": "N373049",
"priority": "priority 2"
}
]
},
{
"value": "worktop",
"display": "Damaged worktop",
"sorCode": "N372005",
"priority": "priority 3"
},
{
"value": "UnableToBook",
"display": "Heating or hot water"
},
{
"value": "dampOrMould",
"display": "Damp or mould",
"options": [
{
"value": "Emergency",
"display": "Damp or mould caused by a leak"
},
{
"value": "dampOrMould",
"display": "Damp or mould caused by something else",
"sorCode": "N114001",
"priority": "priority 2"
}
]
}
]
},
{
"value": "bedroom",
"display": "Bedroom",
"options": [
{
"value": "damagedOrStuckDoors",
"display": "Damaged or stuck doors",
"options": [
{
"value": "internalDoorIssue",
"display": "Internal door issue, including hinges, handle, sticking",
"sorCode": "N330007",
"priority": "priority 3"
},
{
"value": "NotEligibleNonEmergency",
"display": "Adjusting a door after a carpet fitting"
},
{
"value": "Emergency",
"display": "Door is on fire"
},
{
"value": "UnableToBook",
"display": "Don't like door colour"
},
{
"value": "ContactUs",
"display": "Door panel is broken"
}
]
}
]
}
]