Skip to content

Reporting and certificates

Updated 20 Sept 2026

Reporting should answer three basic questions:

  • who needs to complete what,
  • who has completed it,
  • where completion risk exists.

The three questions above are not asked only by whoever manages training. People in different roles ask them, each for a different reason, and the completion report has to answer all of them from one place.

  • An auditor wants proof that training took place. During an inspection they ask who completed safety training and when. A row with state completed, a completion date and a content version says who finished which version of the course and when; a certificate belongs to the completed record. You do not dig out signatures on attendance sheets.
  • A manager wants to know who is at risk of missing the deadline. Before the end of the month they ask which of their people have not started the mandatory course yet. State assigned next to an approaching deadline tells them whom to contact today rather than after the deadline.
  • HR matches completions against the personnel records. They transfer the state into the HR system. The user identifier column tells them which record a row belongs to, which is why it matters which identifier the exports use. They do not match by names, which change.

All three read the same report, just different columns. What each column says and which question it answers is summed up in the table below.

StateMeaning
assignedThe user has assigned content but has not started yet.
in_progressThe user is studying the content.
completedThe user completed all required steps.

A study record is connected to a specific content version. This matters when content changes or training is repeated.

A deadline can come from different assignment sources. If a user has the same content from multiple groups or from a direct assignment, the system must choose the closest relevant deadline.

Column or signalOwner question
User identifierCan we match the row to the authoritative HR or external record?
Content titleIs this the expected learning item?
VersionDoes the row refer to the expected active version?
StateIs the user assigned, in progress, or completed?
DeadlineIs the date coming from the expected assignment source?
Completion dateDoes completion fall inside the accepted window?
CertificateIs the certificate available or still being generated?

A certificate belongs to a concrete completed study record. For the certificate API endpoint, the first response can be in_progress, because PDF generation is asynchronous.

  • How often does the client need to evaluate reporting?
  • Should completion state be sent to an external HR system?
  • Which user identifier is used in exports?
  • How long should certificates and historical records be retained?
  • A newly assigned user appears in reporting.
  • A completed user changes state from in_progress to completed.
  • Certificate status is checked after completion.
  • Exported identifiers match the agreed integration identifier.
  • Revoked users remain traceable in historical reporting when needed.