Upload a CSV
Columns it understands
Matched by header name, never by position, so column order does not matter.
Common aliases work too — "team" and "department" both land in group_tag.
Why there is no expiry column
An expiry is computed from the competency's own validity. Accepting one from a spreadsheet would mean either ignoring it silently or letting the file overrule the rule the rest of the product enforces.
Records are created by recording completions, not by pasting dates.