Provenance Information


This page provide work-in-progress background documentation on the provenance approach taken in the standard.

Design considerations

It is important to have access to provenance information about each of the statements made as part of a beneficial ownership disclosure.

Provenance information may be used in a number of ways, including:

  • Identifying the source of information, and how it can be corrected;
  • Deciding whether or not to trust a particular source of information;
  • Signposting the documentary evidence on which data is based;
  • Describing the ways in which data has been modified by source systems;

Any particular statement of provenance may have a range of scopes, including:

  • All the statements in a particular file. For example, to describe that the statements were downloaded from the database;
  • A group of statements. For example, to describe the individual responsible for submitting information about a particular set of statements describing ownership of a single firm.
  • A single beneficial ownership statement - made up of entity, person and qualification statements. For example, to describe the point at which disclosure was made, and the steps taken to verify the information.
  • A single person statement. For example, to describe how the information was obtained, and to link to any supporting documentation or verification of identification.

These scopes are nested. For example, a person statement might be referenced within a beneficial ownership statement, within a group of statements, and within a particular file - and the provenance information from each of these scopes should be taken to apply to that person statement.


Following the PROV-DM Provenance Data Model we model provenance in terms of Activities, Entities and Agents.

A collection of statements, a beneficial ownership statement, and the individual statements that make this up are all considered to be entities.

Each entity was derived from some source (also, in PROV-DM terms, an entity).

This source will have been generated by some activity, such as:

  • A self-declaration by an individual agent;
  • Extraction of information from an existing register;
  • Primary research using public documents or news sources;
  • Verification of identity using official documentation;
  • and so on.

For each source there will be at least one associated agent who was involved, such as:

  • The person filling in the form;
  • The researcher compiling documentation; or
  • The organisation responsible for validating documents.

An source may, itself, be derived from some other source as it’s input. For example, when a validation process draws upon documents orginally submitted by an individual.

Provenance block

The provenance building block of the schema can be attached at the statementGroup, beneficialOwnershipStatement or individual entity, person and qualification statement levels.

Provenance statements can also be chained together using the derivedFrom property.

In PROV-DM terms, all the properties within a provenance block attach to the statement they are nested within (i.e. asserting that this statement wasAtributedTo or wasGeneratedBy).

Field Name Description Format
id See ID Object
type Source type: What kind of source is this? [ToDo: Identify an appropriate codelist for this field] string
attributedTo Attributed to: Which agent (individual, organisation or software process) was responsible for directly contributing this source. See attributedTo Object
generatedBy Generated by: Which activity led to the creation of this source? See generatedBy Object
primarySource Primary source: A link to a primary source. This may be a resolvable URI, or some other identifier for the source. uri string
derivedFrom Derived from: If this source was derived from a prior source either provide the identifier of a provenanceStatement about that prior source, or nest the provenace statement here.  
replacesStatement See ReplacesStatement Object


How should applications interpret the nesting of provenance information?

For example: does a provenanceStatement attached to a statementGroup apply to all the statements within that group?