# MyTrainingRequirement

object type

One training requirement that applies to YOU: the rule, its due instant (the later of your role grant and the rule's birth, plus its grace days) and whether a VALID certificate satisfies it today (certified · certificateId).

## Fields

| Field | Type | Notes |
| --- | --- | --- |
| `requirementId` | [ID](/types/#scalars) `ID!` | No further notes. |
| `roleTemplateKey` | [String](/types/#scalars) `String!` | No further notes. |
| `courseKey` | [String](/types/#scalars) `String!` | No further notes. |
| `passMark` | [Int](/types/#scalars) `Int!` | No further notes. |
| `graceDays` | [Int](/types/#scalars) `Int!` | No further notes. |
| `dueAt` | [String](/types/#scalars) `String!` | No further notes. |
| `certified` | [Boolean](/types/#scalars) `Boolean!` | No further notes. |
| `certificateId` | [ID](/types/#scalars) | No further notes. |
| `refreshDue` | [Boolean](/types/#scalars) `Boolean!` | THE REFRESH STANDING — DERIVED at read time, never stored: certified AND the certificate was passed on an older version of the course (the play’s content changed, or the play is gone); false whenever not certified. Sit again to refresh. |
| `refreshDueAt` | [String](/types/#scalars) | When the refresh falls due — the daily sweep’s first observation of the change + the strictest applicable graceDays; null until the sweep has observed it (the face words a due-less refresh honestly). |
