Skip to main content

Technical documentation for the Get Information about Schools service.

Bulk Updates, Triggers And Processing

This page explains operational processing tables that record bulk updates, data-quality triggers, reminders and small background process logs.

Scope

This model covers:

  • bulk update job state, progress and messages;
  • data-quality trigger settings and reminder state;
  • governance reminder state;
  • process logs for small background update jobs.

Scheduler runtime tables are covered separately in scheduler-and-batch-runtime.md.

How To Read This Model

  • These tables record process evidence rather than canonical provider facts.
  • Some tables are initiated by users, such as bulk update files.
  • Some tables are produced by automated checks, such as reminders and trigger state.
  • Some relationships are inferred from identifiers rather than enforced by foreign keys.

Application-Derived Insights

  • Bulk updates can bypass or interact with change-request behaviour, so they are not just file uploads.
  • Data-quality trigger state can lead to user-facing prompts or reminders.
  • Governance reminder tables are derived from governance freshness and role-expiration rules.
  • Future design should separate commands, process progress, derived reminders, integration holding rows and domain changes.

Bulk Update Processing

erDiagram SystemUser { nvarchar username PK nvarchar UserGroupCode FK tinyint enabled } BulkUpdate { numeric id PK datetime createTime datetime startTime datetime endTime datetime effectiveDate int status nvarchar fileName nvarchar originalFileName tinyint overrideCR int fileFormat tinyint createFreeSchools tinyint createAcademyLinks nvarchar user_username FK nvarchar asUser_username FK } BulkUpdateStatus { numeric id PK, FK nvarchar type numeric total numeric processed int errorsCount int rowsCount nvarchar status } BulkUpdateMessage { numeric id PK numeric bulkUpdate_id FK datetime time nvarchar message tinyint skipped } SystemUser ||--o{ BulkUpdate : requested_by SystemUser ||--o{ BulkUpdate : run_as_user BulkUpdate ||--|| BulkUpdateStatus : progress_status BulkUpdate ||--o{ BulkUpdateMessage : messages

BulkUpdate, BulkUpdateStatus And BulkUpdateMessage

Business-friendly pattern:

For this uploaded bulk update file,
who submitted it,
which identity should it run as,
what kind of update is it,
and what was the outcome?

The model separates the parent request, progress counts and detailed messages.

Data-Quality Trigger And Reminder State

erDiagram Establishment { numeric URN PK nvarchar EstablishmentName nvarchar eduBaseTrigger1_code FK tinyint checkedSixtyDays } EduBaseTrigger { nvarchar code PK nvarchar name tinyint archived } EdubaseTriggerSettings { numeric id PK numeric lowerThreshold numeric higherThreshold numeric governanceThreshold nvarchar saAccessRestrictions_code FK tinyint saSyncInitial } SAAccessRestrictions { nvarchar code PK nvarchar name } SixtyDayNotUpdatedReminder { numeric id PK numeric urn datetime sending_date varchar addressee } SixtyDayNotUpdatedReminderFlag { numeric id PK bit enabled datetime update_date varchar updated_by } EduBaseTrigger ||--o{ Establishment : trigger_state SAAccessRestrictions ||--o{ EdubaseTriggerSettings : restriction_policy Establishment ||..o{ SixtyDayNotUpdatedReminder : inferred_establishment_reminder

EduBaseTrigger And EdubaseTriggerSettings

Business-friendly pattern:

For this establishment,
what data-quality trigger state applies,
and what thresholds control the warning or issue?

SixtyDayNotUpdatedReminder

Business-friendly pattern:

For this establishment,
has a reminder been produced because the record has not been checked recently?

Governance Reminder State

erDiagram UserGroup { nvarchar code PK nvarchar name } SystemUser { nvarchar username PK } Establishment { numeric URN PK nvarchar EstablishmentName } EstablishmentGroup { numeric id PK nvarchar name } StaffRole { nvarchar code PK nvarchar name tinyint isOnePersonRole } Reminder { numeric id PK nvarchar creatorUsername nvarchar creatorUserGroup FK nvarchar title datetime dueDate datetime notificationDate } ReminderInstance { numeric id PK numeric reminder_id FK numeric URN FK nvarchar username FK tinyint complete } StaffRecordsOutdated { numeric id PK numeric announcementId datetime created datetime resolved numeric saOrgId numeric uid numeric urn datetime governanceLastCheck } StaffRoleExpiration { numeric id PK numeric announcementId datetime created datetime resolved numeric saOrgId numeric uid numeric urn numeric gid datetime stepdownDate nvarchar staffRole FK } UserGroup ||--o{ Reminder : creator_group Reminder ||--o{ ReminderInstance : recipient_instance Establishment ||--o{ ReminderInstance : establishment_instance SystemUser ||--o{ ReminderInstance : user_instance Establishment ||..o{ StaffRecordsOutdated : inferred_establishment_scope EstablishmentGroup ||..o{ StaffRecordsOutdated : inferred_group_scope StaffRole ||--o{ StaffRoleExpiration : expired_role Establishment ||..o{ StaffRoleExpiration : inferred_establishment_scope EstablishmentGroup ||..o{ StaffRoleExpiration : inferred_group_scope

Reminder And ReminderInstance

Business-friendly pattern:

For this reminder,
which establishment or user received it,
and has that reminder instance been completed?

StaffRecordsOutdated And StaffRoleExpiration

Business-friendly pattern:

For this establishment or group,
does governance information need attention,
and has the reminder or announcement been created or resolved?

Process Logs

erDiagram TelephoneUpdateProcess { numeric id PK numeric updated_items_count varchar process_status datetime date_start datetime date_end } WebAddressUpdateProcess { numeric id PK numeric updated_items_count varchar process_status datetime date_start datetime date_end } UkprnUpdateProcess { numeric id PK datetime since_date varchar item_type numeric updated_items_count varchar process_status datetime date_start datetime date_end } CompaniesHouseDownloadHolder { nvarchar companyNumber PK numeric edubaseId PK nvarchar edubaseName tinyint edubaseOpen nvarchar companyStatus nvarchar status } SanityCheckLog { numeric id PK datetime started datetime finished nvarchar status } FrontEnd_DataQualityStatus { nvarchar PartitionKey PK nvarchar RowKey PK datetime Timestamp }

Process Log Tables

Business-friendly pattern:

For this background process,
when did it run,
what outcome was recorded,
and what operational evidence was kept?

InspectionUpdates has been omitted because it is marked as having no observed production read or write activity in the 30-day table-usage evidence.

Reading This Diagram

Use this model to understand operational evidence around changes and reminders. It should not be treated as a single generic jobs model, because each process has different ownership, retention and restart behaviour.