Skip to content

Conditional mandatory fields - plans #1187

@Ben-Hodgkiss

Description

@Ben-Hodgkiss

Problem

The pipeline currently raises missing value issues for any field marked as mandatory in the
specification, even when that field is only required once the LPA reaches a certain stage in
their plan development. These issues are then surfaced to LPAs as tasks on the LPA Dashboard,
causing false positives - LPAs are being asked to provide data they are not yet expected to supply.

Examples

period-end-date
Marked as mandatory in the specification, but guidance states LPAs should leave it blank if
they do not yet have a plan document. It only becomes required once document-url is populated.

document-url
Should not be required until the LPA reaches the timetable event at which their draft local
plan is published.

required-housing
Marked as mandatory for local plans, but guidance states it only becomes required when the LPA
launches their consultation on a proposed local plan. It must then be updated at subsequent
stages (plan submission, examiner's recommendations, adopted plan publication). No issue should
be raised for a blank value before the LPA has reached this stage.

Expected behaviour

missing value issues are binary tests on data and may not be the right mechanism for this
kind of stage-dependent validation. We may need to explore using expectations instead, which
allow for more dynamic checks - only flagging a missing field once the LPA has reached the
stage at which it becomes required (for example, based on dates in their plan-timetable
dataset, or the presence of related fields such as document-url).

Out of scope

Determining the exact conditional logic for every affected field. A follow-up spike may be
needed to map all fields with stage-dependent requirements and define the appropriate
expectation rules for each.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status
    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions