<p class="govuk-body">For general needs, you should complete a log for each new tenancy intended to last 2 years or more if it is social rent or affordable rent, or of any length if it is intermediate rent.</p>
<p class="govuk-body">For general needs, you should complete a log for each new tenancy intended to last 2 years or more if it is social rent or affordable rent, or of any length if it is intermediate rent.</p>
<p class="govuk-body">For supported housing, you should complete a log for each new letting of any length.</p>
<p class="govuk-body">For supported housing, you should complete a log for each new letting of any length.</p>
<p class="govuk-body">If a new tenancy agreement is signed, create a new log.</p>
<p class="govuk-body">If a new tenancy agreement is signed, create a new log.</p>
<p class="govuk-body">Sales logs are required after the completion date of the sale of all or part of a social property in England, of the types below.</p>
<p class="govuk-body">A Sales log should be completed for each Shared Ownership staircasing transaction(s).</p>
<% end %>
<% end %>
<%= accordion.with_section(heading_text: "Types of lettings you should create logs for") do %>
<%= accordion.with_section(heading_text: "Types of lettings you should create logs for") do %>
<p class="govuk-body">You’ll need to create a log for:</p>
<p class="govuk-body">You’ll need to create a log for:</p>
<%= govuk_list [
<%= govuk_list [
"Tenants in general needs housing allocated a new letting. This includes tenants moving into the social rented sector from outside, existing social tenants moving between properties or landlords, and existing social tenants renewing lettings in the same property. If fixed-term and social or affordable rent, only include tenancies of 2 years or more.",
"Tenants in general needs housing allocated a new letting. This includes tenants moving into the social rented sector from outside, existing social tenants moving between properties or landlords, and existing social tenants renewing lettings in the same property. If fixed-term and social or affordable rent, only include tenancies of 2 years or more.",
"Tenants in supported housing (social housing, sheltered accommodation and care homes) allocated a new letting. This includes tenants moving into the social rented sector from outside, existing social tenants moving between properties or landlords, and existing social tenants renewing lettings in the same property. All supported housing tenancies should be reported regardless of length.",
"Tenants in supported housing (social housing and sheltered accommodation) allocated a new letting. This includes tenants moving into the social rented sector from outside, existing social tenants moving between properties or landlords, and existing social tenants renewing lettings in the same property. All supported housing tenancies should be reported regardless of length.",
"Starter tenancies provided by local authorities (LAs) and lettings with an introductory period provided by private registered providers (PRPs) should be completed in CORE at the beginning of the starter or introductory period. The tenancy type and length entered should be based on the tenancy the tenant will roll onto once the starter or introductory period has been completed. You do not need to submit another CORE log once the period has been completed.",
"Starter tenancies provided by local authorities (LAs) and lettings with an introductory period provided by private registered providers (PRPs) should be completed in CORE at the beginning of the starter or introductory period. The tenancy type and length entered should be based on the tenancy the tenant will roll onto once the starter or introductory period has been completed. You do not need to submit another CORE log once the period has been completed.",
"Room moves within a shared housing unit that result in a different property type or support needs – this is classed as an internal transfer of an existing social tenant to another property.",
"Room moves within a shared housing unit that result in a different property type or support needs – this is classed as an internal transfer of an existing social tenant to another property.",
"Existing tenants who are issued with a new tenancy agreement when stock is acquired, transferred or permanently decanted.",
"Existing tenants who are issued with a new tenancy agreement when stock is acquired, transferred or permanently decanted.",
@ -46,6 +48,7 @@
"Starter tenancies or lettings with an introductory period that roll onto or convert into the main tenancy. The CORE log should be completed at the beginning of this period.",
"Starter tenancies or lettings with an introductory period that roll onto or convert into the main tenancy. The CORE log should be completed at the beginning of this period.",
"Changes from sole to joint or joint to sole tenancies, where the number of people in the household has not changed.",
"Changes from sole to joint or joint to sole tenancies, where the number of people in the household has not changed.",
"Moves within a shared housing unit resulting in the same support needs or property type, even if a new tenancy or licence agreement is issued.",
"Moves within a shared housing unit resulting in the same support needs or property type, even if a new tenancy or licence agreement is issued.",
"Supported housing lettings in a care home.",
"Lettings where no new tenancy agreement is signed.",
"Lettings where no new tenancy agreement is signed.",
"Where stock is acquired, transferred or permanently decanted and the existing tenants are not issued with a new tenancy agreement.",
"Where stock is acquired, transferred or permanently decanted and the existing tenants are not issued with a new tenancy agreement.",
"Mutual exchanges including lettings where registered provider tenants have exchanged homes, for example through the national HOMESWAP system.",
"Mutual exchanges including lettings where registered provider tenants have exchanged homes, for example through the national HOMESWAP system.",
@ -55,6 +58,25 @@
"Non-social lettings, including market-rented properties, employer-provided housing where the employer provides financial support, homes for staff of social landlords linked to employment, homes social landlords manage for organisations who are not social landlords, homes social landlords own but lease in entirety to organisations who are not social landlords, and freehold housing with variable charges for services and communal facilities.",
"Non-social lettings, including market-rented properties, employer-provided housing where the employer provides financial support, homes for staff of social landlords linked to employment, homes social landlords manage for organisations who are not social landlords, homes social landlords own but lease in entirety to organisations who are not social landlords, and freehold housing with variable charges for services and communal facilities.",
],
],
type: :bullet %>
type: :bullet %>
<% end %>
<%= accordion.with_section(heading_text: "Types of sales you should create logs for") do %>
<p class="govuk-body">You’ll need to create a log for:</p>
<%= govuk_list [
"Shared ownership – this is when the purchaser buys an initial share of up to 75% of the property value and pays rent to the Private Registered Provider (PRP) on the remaining portion, or later staircasing transaction(s).",
"Discounted ownership – this is when the entirety of the property is sold in one transaction for less than market rent, according to one of a number of sale products. A mortgage may or may not be used. Examples of discounted ownership include, but are not limited to, Right to Acquire, Right to Buy, Preserved Right to Buy or Social HomeBuy.",
"Sales involving staircasing transactions – this is when the household purchases more shares in their property, increasing the proportion they own and decreasing the proportion the housing association owns. Once the household purchases 100% of the shares, they own the property.",
"Include sales to individuals, whether they intend to live in the property or not, as well as sales to companies.",
],
type: :bullet %>
<% end %>
<%= accordion.with_section(heading_text: "Types of sales you should not create logs for") do %>
<p class="govuk-body">You don’t need to create a log for:</p>
<%= govuk_list [
"Outright sales – this is where the buyer purchases the entirety of the home in one transaction at market price. A mortgage may or may not be used. We have previously collected this information in CORE sales, but have removed it from the 2025-26 form.",
],
type: :bullet %>
<% end %>
<% end %>
<%= accordion.with_section(heading_text: "What if someone is reluctant to answer any questions?") do %>
<%= accordion.with_section(heading_text: "What if someone is reluctant to answer any questions?") do %>
check_answer_label:"Letting in sheltered accommodation"
check_answer_label:"Letting is older people’s housing"
check_answer_prompt:"Tell us if letting is in sheltered accommodation"
check_answer_prompt:"Tell us if letting is older people’s housing"
hint_text:"Sheltered housing and special retirement housing are for tenants with low-level care and support needs. This typically provides some limited support to enable independent living, such as alarm-based assistance or a scheme manager.</br></br>Extra care housing is for tenants with medium to high care and support needs, often with 24 hour access to support staff provided by an agency registered with the Care Quality Commission."
hint_text:"This includes retirement living, sheltered housing and extra care housing. There is no national set limit for \"older people\", please answer based on your own policies.</br></br>Extra care housing is for tenants with medium to high care and support needs, often with 24 hour access to support staff provided by an agency registered with the Care Quality Commission."
question_text:"Is this letting in sheltered accommodation?"
question_text:"Is this property older people’s housing?"
invalid:"Age of person %{person_num} must be a number or the letter R"
invalid:"Age of person %{person_num} must be a number or the letter R"
address:
address:
not_found:"We could not find this address. Check the address data in your CSV file is correct and complete, or select the correct address using the CORE site."
not_found:"We could not find this address. Check the address data in your CSV file is correct and complete, or find the correct address in the service."
not_determined:"There are multiple matches for this address. Either select the correct address manually or correct the UPRN in the CSV file."
not_determined:
one:"There is a possible match for this address which doesn't look right. Check the address data in your CSV file is correct and complete, or confirm the address in the service."
multiple:"There are multiple matches for this address. Check the address data in your CSV file is correct and complete, or select the correct address in the service."
not_answered:"Enter either the UPRN or the full address."
not_answered:"Enter either the UPRN or the full address."
buyer_cannot_be_over_16_and_child:"Buyer 2's age cannot be 16 or over if their working situation is child under 16."
buyer_cannot_be_over_16_and_child:"Buyer 2's age cannot be 16 or over if their working situation is child under 16."
address:
address:
not_found:"We could not find this address. Check the address data in your CSV file is correct and complete, or select the correct address using the CORE site."
not_found:"We could not find this address. Check the address data in your CSV file is correct and complete, or find the correct address in the service."
not_determined:"There are multiple matches for this address. Either select the correct address manually or correct the UPRN in the CSV file."
not_determined:
one:"There is a possible match for this address which doesn't look right. Check the address data in your CSV file is correct and complete, or confirm the address in the service."
multiple:"There are multiple matches for this address. Check the address data in your CSV file is correct and complete, or select the correct address in the service."
not_answered:"Enter either the UPRN or the full address."
not_answered:"Enter either the UPRN or the full address."
Bulk upload functionality allows users to upload multiple logs using a csv file.
## How Bulk Upload works
Bulk upload file can be uploaded for a specific log type (sales or lettings) for a specific year. During crossover period we ask which collection year the file is for, otherwise we assume the Bulk Upload is for the current year.
When a bulk upload file is successfully uploaded on the service, it:
- Saves a BulkUpload record in the database
- Uploads the file to S3
- Schedules `ProcessBulkUploadJob`
### Bulk upload service
There are several outcomes to a bulk upload:
- Successful upload
- Partial upload: upload has errors but partial logs can be created. Email to error report is sent to the user and the bulk upload needs a user approval
- Errors in bulk upload: errors on important fields, or in the template. Logs can't be created and an email with errors (or a link to error report) is sent to the user
Most of BU processing logic is in `BulkUpload::Processor`. It chooses the correct `Validator` and `LogCreator` classes for the log type and uses them to process the file.
Main differences between different collection years would be in `CsvParsers` and `RowParsers`.
#### Row parser
- Maps any values from a csv row into values saved internally
- Maps any validations into errors for bulk uploads by associating them with relevant fields
- Adds any additional validations that might only make sense in BU (for example, validation that might not relevant in single log submission due to routing)