Creating reports based on User defined data-points

I’m currently working on a Human Resource project that allows Administrators to define “Career Events” then associate them with an Employee along with a date that the event occurred on. So far there are events such as: Hired, Terminated, Rate Change, Title Change, etc. The resistance I’m encountering is how to report using these data points, for example: “Turnover in the first year by department” would require knowing which Career Events represent “Hired” as well as “Terminated”.

So far I’ve brainstormed the following options:

  1. Create reports using the current event names (fragile, breaks if the name changes)
  2. Create reports using the current event ids (less fragile but now the reports are cryptic, e.g. where career_event_id = 2)
  3. Add additional logic to either the Career Event or Report to designate the binding(s) required

None of these feel “correct” which could mean that the problem lies in the current architecture and Career Events shouldn’t be modified via a UI but rather be their own data points.

I guess my question is has anyone tackled a similar scenario?