Reporting and certificates
Reporting should answer three basic questions:
- who needs to complete what,
- who has completed it,
- where completion risk exists.
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.