Editing QC Items (data model 2026-04)
QC Items are being republished so that they follow the EBU QC data model 2026-04. This page explains what that changes in the Item editor.
Two data models, two API generations
Every version of an Item records the data model it was made under. The Item page shows it as a label next to the version number:
- Legacy (pre-2026-04): all versions that existed before the switch. API v1 and v2 serve these versions only.
- EBU QC data model 2026-04: every version created since. API v3 serves these versions only.
A new version of an older Item is always a 2026-04 version. The label is set once and never changes.
Republishing an Item for the 2026-04 data model counts as a substantial change, so it gets a new MAJOR version number (see Versioning).
Colour key
Some fields exist in only one of the two API generations. The edit and show pages tint them, with a small text label, and show a colour key above the Inputs and Outputs:
- Light blue, label "v3": only in API v3 (data model 2026-04). These are the CheckResult definition, the Analysis method and the four positioning flags (Has locator (temporal), Has locator (spatial), Has track, Has wrapper location).
- Grey, label "v1/v2 only": only for API v1/v2. This is the old Locator. It is derived from the flags and cannot be edited.
- No tint: used by both.
On a legacy version, the v3-only fields read "not in this version".
Usable as: Check and Report
Usable as (UsableAs in the data model and in all API versions: v1, v2 and v3) says whether an Item can be used as a check, in reports, or both. It is not a field you fill in: it follows from the In Checks and In Reports settings of the Inputs and Outputs.
- Check: at least one Input or Output has In Checks set to something other than "not applicable".
- Report: at least one Input or Output has In Reports set to something other than "not applicable".
- Neither: every row is "not applicable" in both columns.
The edit page shows the result at the top of the basic values, with the same Check and Report badges as the Item page. It updates while you edit: when you change In Checks or In Reports, and when you add or delete an Input or Output. A new row starts as "optional" in both columns, so adding one turns on both badges until you change it.
To change what an Item is usable as, change those columns. When the Item becomes usable as a check, the CheckResult definition becomes required; the form marks it as required straight away, and saving checks it.
CheckResult definition
The CheckResult definition describes what a check reports when it finds a problem. It is needed for every Item that is usable as a check.
When such an Item has no CheckResult definition yet, the edit form pre-fills a suggestion that starts with [TO BE VERIFIED]. The suggestion is the Description of the Item's old "CheckResult" Output when there is one, otherwise a generic sentence. Only the form is pre-filled; published versions are not changed.
Read the suggestion, correct it where needed, and remove "[TO BE VERIFIED]". As long as the text still starts with that marker, the version cannot move to Publication ready or Published.
Analysis method
The optional Analysis method says how the test is meant to be implemented: readout, measurement, or readout and measurement (see What is implicit for all QC Items). It is only in API v3. Leave it empty when it is not known or not prescribed.
When it is empty, the edit form pre-fills it from the Layer: wrapper and bitstream give readout, baseband gives measurement, crosscheck gives readout and measurement. Other layers get no suggestion. Only the form is pre-filled; published versions are not changed.
A pre-filled value is marked [TO BE VERIFIED] below the field, and Item checks lists it under To review. Check it, then click Confirm there, or choose another value. A value other than the suggestion counts as checked.
Positioning flags (replacing Locator)
API v1/v2 had one Locator flag per Input or Output. The 2026-04 data model replaces it with four independent flags:
- Has locator (temporal): the value refers to a time position or segment in the content.
- Has locator (spatial): the value refers to a position in the picture.
- Has track: the value refers to a specific track.
- Has wrapper location: the value refers to a location in the file wrapper.
The old Locator is now derived: it is on when Has locator (temporal) or Has locator (spatial) is ticked. A child no longer inherits it from its parent; each row has its own flags.
For a row that had Locator on but none of the new flags, the edit form pre-ticks Has locator (temporal), because most old Locators are time segments, and shows the hint "Pre-ticked from the old Locator: verify." Check it, and tick Has locator (spatial) instead (or as well) for a position in the picture. If you untick both locator flags, the old Locator is cleared when you save.
Item checks
The edit page has an Item checks button with two counters: red for blocking findings, orange for findings to review. Open it to see what still needs attention under the 2026-04 data model. It updates as you type, before you save.
The panel has three tabs:
- Blocking: must be fixed before the Item can move to Publication ready or Published. Drafting and review are not blocked.
- To review: worth a look. Fix the finding, or click Confirm if it is intended. Confirmations are saved with the version and carried to later versions; Undo takes one back.
- OK: the checks that pass, and the findings you confirmed.
Blocking checks:
- The fields required for publication are filled (Name, Definition, card title and lines, card image).
- The CheckResult definition is filled for an Item usable as a check, and no longer starts with "[TO BE VERIFIED]".
- Every Input and Output has a data model name, unique at its level.
- Every Input and Output that needs a value has a Type.
Checks to review:
- The Item and its Inputs and Outputs have a Description.
- The card lines are all different.
- The text follows the catalogue style: Definition and Descriptions start with a capital letter, the Definition ends with a full stop, no double spaces, data model names in PascalCase (for example
ProgrammeCount). - Ranges spell "infinity" in lower case.
- No placeholder Unit such as "-": leave the Unit empty instead.
- Type, Unit and Range are official parameters.
- The letter at the end of the EBU QC ID matches the Layer (W, F, B or X, see Layers), and the Layer is not a retired one.
- At least one Input or Output sets a positioning flag, or you confirmed that none applies.
- The Analysis method suggested from the Layer was confirmed, or changed. An empty one is listed too when the Layer suggests a value; confirm it if it is deliberately left empty.
- The Item has References and Examples.
EBU QC ID and Layer
The letter at the end of an EBU QC ID follows the Item's Layer: W for Wrapper, F for Bitstream, B for Baseband and X for X-check. When you create an Item, the suggestion below the EBU QC ID field uses the letter of the Layer you chose. See Layers for the letters, and why Bitstream uses F.
The Layer list only offers the four Layers of the data model. An Item on a retired Layer ("Programme layout", "Not present") keeps it until you choose another one.
Rules for Inputs and Outputs
From Tech review onward, saving checks the Inputs and Outputs against Annex C.4 of the 2026-04 data model. An error is shown on the row concerned:
- The data model name is unique (ignoring upper and lower case) among all Inputs, children included, and separately among all Outputs.
- The data model name contains only letters, digits and "-", and does not start with "-" or "PRIVATE".
- In Checks and In Reports are not both "not applicable". A child is "not applicable" wherever its parent is.
- A top-level Input or Output without a Type sets at least one positioning flag. A top-level Input without a Type also has one or more children.
- A child Input has a Type. A child Output has a Type or sets a positioning flag.
- An Item usable in reports has at least one top-level Output with In Reports set to required or optional. If it has only one, that one is required.
These apply on every save, whatever the status:
- A row with children has no value of its own, and there is only one level of nesting.
- When Needs a value is unticked, the row's value fields are hidden, and its Default value and Alias are cleared on saving.
Unit, Representation and Range are optional
In the 2026-04 data model, Unit, Representation and Range are optional. The editor accepts them empty, also for publication; each picker has a clear button (for the Unit, "No unit"). A value you do enter must still be allowed by the Type, and a Range must be official from review onward.
A count has no unit: leave the Unit empty rather than choosing "-".
See also
- Parameters: Types, Representations, Units and Ranges
- Parent field
- QC Item Status
- API and the API validators