Reporting and certificates
Reporting should answer three basic questions:
- who needs to complete what,
- who has completed it,
- where completion risk exists.
What reporting is good for
Section titled “What reporting is good for”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
assignednext 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.
Study state
Section titled “Study state”| State | Meaning |
|---|---|
assigned | The user has assigned content but has not started yet. |
in_progress | The user is studying the content. |
completed | The user completed all required steps. |
A study record is connected to a specific content version. This matters when content changes or training is repeated.
Deadlines
Section titled “Deadlines”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.
How to read a completion report
Section titled “How to read a completion report”| Column or signal | Owner question |
|---|---|
| User identifier | Can we match the row to the authoritative HR or external record? |
| Content title | Is this the expected learning item? |
| Version | Does the row refer to the expected active version? |
| State | Is the user assigned, in progress, or completed? |
| Deadline | Is the date coming from the expected assignment source? |
| Completion date | Does completion fall inside the accepted window? |
| Certificate | Is the certificate available or still being generated? |
Certificates
Section titled “Certificates”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.
Recommended operational questions
Section titled “Recommended operational questions”- 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?
QA checks
Section titled “QA checks”- A newly assigned user appears in reporting.
- A completed user changes state from
in_progresstocompleted. - Certificate status is checked after completion.
- Exported identifiers match the agreed integration identifier.
- Revoked users remain traceable in historical reporting when needed.