Semantius Logo

Instructor-Led and Virtual-Instructor-Led Training

1. Overview

Scheduled course delivery: offerings and sessions, instructor assignments, attendance capture (OSHA evidence substrate), waitlist management, virtual-classroom integration, and per-session resources. Structurally distinct from evergreen e-learning in LMS-COURSE-DELIVERY because it carries its own cardinality (course -> many offerings -> many sessions), its own roles (instructors are not learners), and its own per-session compliance footprint.

2. Entity summary

Namedata_objectDescription
Course Offeringscourse_offeringsScheduled instances of a course, with date range, location, capacity, language, and delivery mode.
Course Resourcescourse_resourcesHandouts, supplementary materials, and pre-reads attached to a course offering or session.
Course Sessionscourse_sessionsIndividual sessions within a multi-day offering, with per-session attendance and instructor assignment.
Instructor Assignmentsinstructor_assignmentsAssignments of an instructor to a session or offering, with role such as primary, assistant, or observer.
InstructorsinstructorsInstructor records covering internal trainers, contracted experts, and external vendor instructors, kept separate from employees.
Session Attendancessession_attendancesPer-session attendance roster rows for each learner, serving as evidence of completed required workplace training.
Session Cancellationssession_cancellationsCancellation or no-show records for an instructor-led session, used to drive waitlist promotion.
Session Rosterssession_rostersPre-session enrollment snapshots for an instructor-led session, used as the basis for attendance proof.
Training Room Bookingstraining_room_bookingsReservations of a physical or virtual room and its resources for an instructor-led session.
Virtual Classroom Meetingsvirtual_classroom_meetingsLinks to external video meetings for a virtual session, carrying the join URL and recording reference.
Waitlist Entrieswaitlist_entriesCapacity overflow queue for a course offering, with priority order and a notify-on-seat-open policy.
Course Enrollmentscourse_enrollmentsPer-learner per-course records tracking assigned and due dates, attempts, status, and score.
CoursescoursesLearning units such as e-learning modules, videos, live sessions, or blended programs, with format, duration, and prerequisites.
EmployeesemployeesCanonical records of people currently or formerly employed, carrying identity, employment metadata, and links to position, manager, and org unit.
LocationslocationsPhysical or organizational locations referenced across the system, used to place and group other records.
Org Unitsorg_unitsNodes in the organizational hierarchy such as divisions, departments, and teams, with manager, cost center alignment, geographic scope, and parent-child links.
flowchart TD
  classDef master fill:#d4f4dd,stroke:#27ae60,color:#0b3d20;
  classDef embedded_master fill:#fff4cc,stroke:#c79100,color:#5b4500;
  classDef platform_builtin fill:#e0e0e0,stroke:#424242,color:#1a1a1a;
  course_offerings["Course Offerings"]
  course_sessions["Course Sessions"]
  instructors["Instructors"]
  instructor_assignments["Instructor Assignments"]
  session_attendances["Session Attendances"]
  waitlist_entries["Waitlist Entries"]
  virtual_classroom_meetings["Virtual Classroom Meetings"]
  course_resources["Course Resources"]
  locations["Locations"]
  courses["Courses"]
  course_enrollments["Course Enrollments"]
  employees["Employees"]
  org_units["Org Units"]
  training_room_bookings["Training Room Bookings"]
  session_rosters["Session Rosters"]
  session_cancellations["Session Cancellations"]
  users["Users"]
  courses -->|"scheduled_as"| course_offerings
  course_offerings -->|"comprises"| course_sessions
  course_sessions -->|"staffed_by"| instructor_assignments
  instructors -->|"fulfills"| instructor_assignments
  course_sessions -->|"records"| session_attendances
  course_offerings -->|"queues"| waitlist_entries
  course_sessions -->|"delivered_via"| virtual_classroom_meetings
  course_sessions -->|"provides"| course_resources
  org_units -->|"groups"| employees
  employees -->|"enrolls_in"| course_enrollments
  courses -->|"enrolled_via"| course_enrollments
  employees -->|"learns_via"| course_enrollments
  org_units -->|"rolls_up_to"| org_units
  locations -->|"rolls_up_to"| locations
  users -->|"owns"| courses
  users -->|"instructs_as"| instructors
  users -->|"fulfills_assignment"| instructor_assignments
  users -->|"attends"| session_attendances
  users -->|"waitlisted_for"| waitlist_entries
  employees -->|"is_linked_to"| users
  users -->|"leads"| org_units
  users -->|"authors"| courses
  users -->|"enrolls in"| course_enrollments
  users -->|"assigns"| course_enrollments
  org_units -->|"has members"| users
  locations -->|"houses"| users
  class course_offerings master;
  class course_sessions master;
  class instructors master;
  class instructor_assignments master;
  class session_attendances master;
  class waitlist_entries master;
  class virtual_classroom_meetings master;
  class course_resources master;
  class locations embedded_master;
  class courses embedded_master;
  class course_enrollments embedded_master;
  class employees embedded_master;
  class org_units embedded_master;
  class training_room_bookings master;
  class session_rosters master;
  class session_cancellations master;
  class users platform_builtin;
  style locations stroke-dasharray:5 5;
  style org_units stroke-dasharray:5 5;
  style training_room_bookings stroke-dasharray:5 5;
  style session_rosters stroke-dasharray:5 5;
  style session_cancellations stroke-dasharray:5 5;

3. Entities catalog

#data_objectcanonical codesingularpluralrolemastered inmastered labelnecessitypersonal_contententity_typewrite tiernotes
1course_offeringscourse_offeringsCourse OfferingCourse Offeringsmaster--required-operational_workflow:manage-
2course_resourcescourse_resourcesCourse ResourceCourse Resourcesmaster--required-catalog:admin-
3course_sessionscourse_sessionsCourse SessionCourse Sessionsmaster--required-operational_workflow:manage-
4instructor_assignmentsinstructor_assignmentsInstructor AssignmentInstructor Assignmentsmaster--required-operational_workflow:manage-
5instructorsinstructorsInstructorInstructorsmaster--requiredyesoperational_workflow:manage-
6session_attendancessession_attendancesSession AttendanceSession Attendancesmaster--requiredyesoperational_record:manage-
7session_cancellationssession_cancellationsSession CancellationSession Cancellationsmaster--optionalyesoperational_record:manage-
8session_rosterssession_rostersSession RosterSession Rostersmaster--optionalyesoperational_record:manage-
9training_room_bookingstraining_room_bookingsTraining Room BookingTraining Room Bookingsmaster--optionalyesoperational_workflow:manage-
10virtual_classroom_meetingsvirtual_classroom_meetingsVirtual Classroom MeetingVirtual Classroom Meetingsmaster--required-operational_workflow:manage-
11waitlist_entrieswaitlist_entriesWaitlist EntryWaitlist Entriesmaster--requiredyesoperational_workflow:manage-
12course_enrollmentscourse_enrollmentsCourse EnrollmentCourse Enrollmentsembedded_masterlms-course-deliveryCourse Deliveryrequiredyesoperational_workflow:manage-
13coursescoursesCourseCoursesembedded_masterlms-course-deliveryCourse Deliveryrequired-operational_workflow:manage-
14employeesemployeesEmployeeEmployeesembedded_masterhcm-core-workerCore Worker Recordrequiredyesoperational_workflow:manage-
15locationslocationsLocationLocationsembedded_masteriwms-location-masterLocation and Property Masteroptional-catalog:admin-
16org_unitsorg_unitsOrg UnitOrg Unitsembedded_masterhcm-org-positionsOrganization and Position Managementoptional-operational_workflow:manage-

4. Aliases and industry synonyms

(none: no industry-scoped aliases for this scope)

5. Relationships

5.1 Intra-scope edges

fromverbtocardinalitykindnecessityowner_sidedelete_modefk_formatnotes
coursesscheduled_ascourse_offeringsone_to_manyreferenceoptionaltargetclearreference-
course_offeringscomprisescourse_sessionsone_to_manycompositionoptionalsourcecascadeparent-
course_sessionsstaffed_byinstructor_assignmentsone_to_manyreferenceoptionaltargetclearreference-
instructorsfulfillsinstructor_assignmentsone_to_manyreferenceoptionaltargetclearreference-
course_sessionsrecordssession_attendancesone_to_manycompositionoptionalsourcecascadeparent-
course_offeringsqueueswaitlist_entriesone_to_manycompositionoptionalsourcecascadeparent-
course_sessionsdelivered_viavirtual_classroom_meetingsone_to_manyreferenceoptionaltargetclearreference-
course_sessionsprovidescourse_resourcesmany_to_manyassociationoptionalsourceclearreference-
org_unitsgroupsemployeesone_to_manyreferencerequiredsourcerestrictreference-
employeesenrolls_incourse_enrollmentsone_to_manyreferenceoptionalsourceclearreference-
coursesenrolled_viacourse_enrollmentsone_to_manyreferencerequiredsourcerestrictreference-
employeeslearns_viacourse_enrollmentsone_to_manyreferencerequiredsourcerestrictreference-
org_unitsrolls_up_toorg_unitsone_to_manyreferenceoptionalsourceclearreference-
locationsrolls_up_tolocationsone_to_manyreferenceoptionalsourceclearreference-

5.2 Built-in edges (users and other platform built-ins)

fromverbtocardinalitynecessityowner_sidedelete_modefk_formatnotes
usersownscoursesone_to_manyoptionalsourceclearreference-
usersinstructs_asinstructorsone_to_manyoptionalsourceclearreference-
usersfulfills_assignmentinstructor_assignmentsone_to_manyoptionalsourceclearreference-
usersattendssession_attendancesone_to_manyrequiredsourcerestrictreference-
userswaitlisted_forwaitlist_entriesone_to_manyrequiredsourcerestrictreference-
employeesis_linked_tousersone_to_oneoptionaltargetclearreference-
usersleadsorg_unitsone_to_manyoptionalsourceclearreference-
usersauthorscoursesone_to_manyoptionalsourceclearreference-
usersenrolls incourse_enrollmentsone_to_manyrequiredsourcerestrictreference-
usersassignscourse_enrollmentsone_to_manyoptionalsourceclearreference-
org_unitshas membersusersone_to_manyoptionaltargetclearreference-
locationshousesusersone_to_manyoptionaltargetclearreference-

5.3 Cross-scope edges

5.3a Outbound from this scope’s masters and contributors

Edges this scope drives: the in-scope endpoint has role of master or contributor.

(none: no outbound cross-scope edges from this scope’s masters or contributors)

5.3b Context edges on embedded shells and consumed entities

Edges the canonical owner drives, shown for context: the in-scope endpoint has role of embedded_master, consumer, or derived.

fromverbtocardinalitynecessitydelete_modefk_formatnotes
employeestriggersiga_provisioning_eventsone_to_manyoptionalnonen/a-
employeesfinalized byonboarding_document_collectionsone_to_manyoptionalnonen/a-
pre_employeespromotes toemployeesone_to_onerequirednone (required-if-present)n/a-
legal_holdsidentifies_custodians_fromemployeesmany_to_manyoptionalnonen/a-
legal_advice_recordsreferencesemployeesmany_to_manyoptionalnonen/a-
employeesis host forhost_assignmentsone_to_manyrequirednone (required-if-present)n/a-
courseshas_versioncourse_versionsone_to_manyrequired⚠ audit: required composed child out of scopen/a-
course_enrollmentsyieldscourse_completionsone_to_manyoptionalnonen/a-
coursesclassified_ascourse_categoriesmany_to_manyoptionalnonen/a-
coursestagged_withcourse_tagsmany_to_manyoptionalnonen/a-
course_catalogslistscoursesmany_to_manyoptionalnonen/a-
coursesreviewed_viacourse_reviewsone_to_manyoptionalnonen/a-
coursesrated_viacourse_ratingsone_to_manyoptionalnonen/a-
coursesdiscussed_incourse_discussionsone_to_manyoptionalnonen/a-
coursesgrantscertification_definitionsmany_to_manyoptionalnonen/a-
coursesyields_credits_viacontinuing_education_creditsmany_to_manyoptionalnonen/a-
learning_path_stepsreferencescoursesone_to_manyoptionalnonen/a-
automated_enrollment_rulescreatescourse_enrollmentsone_to_manyoptionalnonen/a-
contingent_workersconverts_toemployeesone_to_oneoptionalnonen/a-
merit_recommendationsapplies toemployeesone_to_oneoptionalnonen/a-
equity_grantsgranted toemployeesone_to_oneoptionalnonen/a-
compensation_statementsissued toemployeesone_to_oneoptionalnonen/a-
locationshosts_desk_bookingsdesk_bookingsone_to_manyrequirednone (required-if-present)n/a-
locationshosts_room_reservationsroom_reservationsone_to_manyrequirednone (required-if-present)n/a-
locationssite_of_service_requestsworkplace_service_requestsone_to_manyrequirednone (required-if-present)n/a-
locationsmeasured_by_reportsspace_utilization_reportsone_to_manyrequirednone (required-if-present)n/a-
locationssubject_of_feedbackworkplace_experience_feedbackone_to_manyoptionalnonen/a-
employeesrequestsabsence_requestsone_to_manyoptionalnonen/a-
org_unitscontainshcm_positionsone_to_manyrequirednone (required-if-present)n/a-
hcm_positionsis_filled_byemployeesone_to_oneoptionalnonen/a-
employeessignsemployment_contractsone_to_manyrequired⚠ audit: required composed child out of scopen/a-
employeesgeneratesemployment_eventsone_to_manyrequired⚠ audit: required composed child out of scopen/a-
cost_centersfundsorg_unitsone_to_manyrequirednone (required-if-present)n/a-
employeestriggersasset_lifecycle_eventsone_to_manyoptionalnonen/a-
employeesholdsskill_profilesone_to_oneoptionalnonen/a-
org_unitsengagescontingent_workersone_to_manyoptionalnonen/a-
org_unitsis_scored_byengagement_driversone_to_manyoptionalnonen/a-
org_unitsis_measured_bypeople_kpisone_to_manyoptionalnonen/a-
employeestriggersservice_requestsone_to_manyoptionalnonen/a-
org_unitstriggersiga_entitlement_definitionsone_to_manyoptionalnonen/a-
employeestriggerspay_runsone_to_manyoptionalnonen/a-
job_profilesmaps_tocoursesmany_to_manyoptionalnonen/a-
employeesbecomescareer_aspirationsone_to_oneoptionalnonen/a-
employeesbecomeswork_shiftsone_to_manyoptionalnonen/a-
employeesbecomescompensation_statementsone_to_oneoptionalnonen/a-
employeestriggersbenefit_enrollmentsone_to_manyoptionalnonen/a-
org_unitsmaps_tocost_centersone_to_oneoptionalnonen/a-
employeestriggerscorporate_cardsone_to_manyoptionalnonen/a-
employeesspawnsonboarding_journeysone_to_oneoptionalnonen/a-
employeesspawnshr_casesone_to_manyoptionalnonen/a-
employeesfeedsheadcount_plansone_to_manyoptionalnonen/a-
employeesfeedsagency_time_entriesone_to_manyoptionalnonen/a-
employeesonboarded byonboarding_journeysone_to_manyrequirednone (required-if-present)n/a-
onboarding_tasksspawnscourse_enrollmentsone_to_manyoptionalnonen/a-
coursessequenced_intolearning_pathsmany_to_manyoptionalnonen/a-
course_enrollmentsproduceslearning_recordsone_to_manyrequired⚠ audit: required composed child out of scopen/a-
coursesfulfillscompliance_assignmentsone_to_manyoptionalnonen/a-
coursesgrantslearner_certificationsone_to_manyoptionalnonen/a-
skill_profilesupdated bycourse_enrollmentsone_to_manyoptionalnonen/a-
org_unitssponsorscompliance_assignmentsone_to_manyoptionalnonen/a-
cost_centersfundscourse_enrollmentsone_to_manyoptionalnonen/a-
employeesreflectslearning_recordsone_to_manyoptionalnonen/a-
employeesreflected oncompliance_assignmentsone_to_manyoptionalnonen/a-
course_enrollmentsupdatescareer_aspirationsone_to_manyoptionalnonen/a-
employeesdeclareslife_eventsone_to_manyoptionalnonen/a-
org_unitssponsorsbenefit_plansmany_to_manyoptionalnonen/a-
employeesupdated bylife_eventsone_to_manyoptionalnonen/a-
survey_campaignstargetsorg_unitsmany_to_manyoptionalnonen/a-
org_unitsownsaction_plansone_to_manyoptionalnonen/a-
employeessubmitssurvey_responsesone_to_manyoptionalnonen/a-
employeesflagged onengagement_driversone_to_manyoptionalnonen/a-
employeesreflected onengagement_driversone_to_manyoptionalnonen/a-
employeesraiseshr_casesone_to_manyrequirednone (required-if-present)n/a-
employeesupdated byhr_casesone_to_manyoptionalnonen/a-
case_categoriesdrivesemployeesone_to_manyoptionalnonen/a-
contingent_workersreviewed_againstemployeesone_to_oneoptionalnonen/a-
candidatesbecomesemployeesone_to_onerequirednone (required-if-present)n/a-
employeesfillshcm_positionsone_to_oneoptionalnonen/a-
employeesenrolls_inbenefit_enrollmentsone_to_manyrequirednone (required-if-present)n/a-
survey_campaignstargetsemployeesmany_to_manyoptionalnonen/a-
employeeshasemergency_contactsone_to_manyrequired⚠ audit: required composed child out of scopen/a-
employeeshaswork_eligibility_documentsone_to_manyrequired⚠ audit: required composed child out of scopen/a-
employeeshasnational_idsone_to_manyrequired⚠ audit: required composed child out of scopen/a-
employeeshasworker_addressesone_to_manyrequired⚠ audit: required composed child out of scopen/a-
employeeshasemployee_dependentsone_to_manyrequired⚠ audit: required composed child out of scopen/a-
employeeshasworker_change_requestsone_to_manyrequirednone (required-if-present)n/a-
employeesapplies_ascandidatesone_to_manyoptionalnonen/a-
employeesis the worker behindtraveler_profilesone_to_oneoptionalnonen/a-
exit_risk_assessmentsassessesemployeesone_to_oneoptionalnonen/a-
insider_risk_casesconcernsemployeesone_to_manyoptionalnonen/a-
frontline_recognitionsrecognizesemployeesone_to_manyrequirednone (required-if-present)n/a-
advocate_profilesrepresentsemployeesone_to_onerequirednone (required-if-present)n/a-

6. Cross-domain context

6.1 Master consumers (other modules / domains that embed this scope’s masters)

(none: no other module embeds this scope’s masters; the canonical owners do.)

6.2 Outbound handoffs (events this scope publishes)

source moduletarget domaintarget moduletrigger_eventtransitionpayloadintegrationfrictiondescription
HCM-CORE-WORKERHRSDHRSD-CASE-MGMTemployee.terminatedterminated (lifecycle)employeesevent_streammediumTermination kicks off offboarding case (exit interview, knowledge transfer, paperwork). Multiple downstream HRSD tasks created.
HCM-CORE-WORKERIGAIGA-ACCESS-REQUESTemployee.createdcreated (lifecycle)employeesapi_callhighNew employee in HCM triggers directory account creation and birthright-role assignment in IGA. High friction because role-to-entitlement mappings drift per business unit, and IGA frequently needs additional context (cost center, manager, location) that arrives later in the journey. Same trigger event as the HCM → Onboarding and HCM → Payroll handoffs.
HCM-CORE-WORKERIGAIGA-ACCESS-REQUESTemployee.promoted(lifecycle)employeesevent_streamhighPromotion (mover event) requires entitlement re-evaluation: add new role access, revoke prior-role access. SoD risk window during transition.
HCM-CORE-WORKERIGAIGA-ACCESS-REQUESTemployee.terminatedterminated (lifecycle)employeesapi_callhighTermination in HCM must immediately revoke identity access in IGA: disable account, remove group memberships, terminate app-level entitlements. Failure modes: contractor terminations not flowing (different HCM table); rehires confuse the de-provisioning idempotency; access lingers after termination is the canonical audit finding.
HCM-ORG-POSITIONSIGAIGA-ACCESS-REQUESTorg_unit.created(state_change)org_unitsevent_streammediumNew org unit drives IGA group/role provisioning. Group-name conventions and ownership must be encoded; otherwise orphan groups proliferate.
HCM-ORG-POSITIONSIGAIGA-ACCESS-REQUESTorg_unit.disbanded(state_change)org_unitsevent_streamhighOrg-unit disbandment requires IGA group cleanup; orphan-group risk if employees re-assigned slowly.
HCM-ORG-POSITIONSIGAIGA-ACCESS-REQUESTorg_unit.merged(state_change)org_unitsevent_streamhighOrg-unit merge consolidates IGA groups: members migrate, entitlements deduplicated, SoD revalidated. Often runs as a batch project rather than event.
HCM-CORE-WORKERHCMHCM-LIFECYCLE-WORKFLOWSemployee.createdcreated (lifecycle)employeeslifecycle_progressionlowNew worker record surfaces in self-service: manager dashboard, new-hire welcome surface, lifecycle task inbox. In-process state read; no message bus.
HCM-CORE-WORKERHCMHCM-LIFECYCLE-WORKFLOWSemployee.terminatedterminated (lifecycle)employeeslifecycle_progressionlowTermination drives the offboarding self-service flow: exit-interview prompt, equipment-return task, knowledge-handoff surfaces in the lifecycle workflow module.
HCM-CORE-WORKERPAYROLLPAYROLL-RUNemployee.createdcreated (lifecycle)employeesapi_callmediumNew employee in HCM triggers comp profile activation in Payroll: gross-to-net rules selected by jurisdiction, deductions initialised, bank account and tax setup collected via Onboarding flow. Same trigger event as the HCM → Onboarding handoff; both subscribe to the employee.created event.
HCM-CORE-WORKERPAYROLLPAYROLL-RUNemployee.promoted(lifecycle)employeesevent_streammediumPromotion typically includes salary change. Effective-dated change must flow to PAYROLL with retroactive handling.
HCM-CORE-WORKERPAYROLLPAYROLL-RUNemployee.terminatedterminated (lifecycle)employeesevent_streamhighTermination drives final pay (severance, accrued PTO payout, prorated bonus). Cross-vendor stack when HCM and PAYROLL are different vendors; retro-adjustments are common.
HCM-ORG-POSITIONSATSATS-RECRUITMENT-PIPELINEorg_unit.activated(state_change)org_unitsapi_calllow-
HCM-ORG-POSITIONSATSATS-RECRUITMENT-PIPELINEorg_unit.closed(state_change)org_unitsapi_callhigh-
HCM-ORG-POSITIONSATSATS-RECRUITMENT-PIPELINEorg_unit.created(state_change)org_unitsapi_callmedium-
HCM-ORG-POSITIONSATSATS-RECRUITMENT-PIPELINEorg_unit.disbanded(state_change)org_unitsapi_callhigh-
HCM-ORG-POSITIONSATSATS-RECRUITMENT-PIPELINEorg_unit.merged(state_change)org_unitsapi_callhigh-
HCM-ORG-POSITIONSATSATS-RECRUITMENT-PIPELINEorg_unit.reorganized(state_change)org_unitsapi_callhigh-
LMS-COURSE-DELIVERYLMSLMS-COMPLIANCE-TRAININGcourse.published(lifecycle)courseslifecycle_progressionlow-
LMS-ILT-DELIVERYLMSLMS-COURSE-DELIVERYcourse_offering.completed(lifecycle)course_offeringslifecycle_progressionlow-
LMS-ILT-DELIVERYLMSLMS-COMPLIANCE-TRAININGsession_attendance.validated(lifecycle)session_attendanceslifecycle_progressionlow-
HCM-CORE-WORKERTALENT-MGMTTALENT-PERFORMANCE-MGMTemployee.createdcreated (lifecycle)employeesapi_calllowNew employee triggers talent-profile initialisation in Talent Management: career aspirations, mobility preferences, skills profile stubs. Same employee.created trigger as Onboarding / Payroll / IGA handoffs.
HCM-CORE-WORKERTALENT-MGMTTALENT-PERFORMANCE-MGMTemployee.promoted(lifecycle)employeesevent_streamlowPromotion updates succession-plan slots and 9-box placement context.
LMS-COURSE-DELIVERYTALENT-MGMTTALENT-SUCCESSION-CAREERcourse_enrollment.completed(lifecycle)course_enrollmentsevent_streamlowCourse completion updates skill-profile; TALENT-MGMT reflects in dev-plans and succession.
HCM-CORE-WORKERWFM(domain-level)employee.createdcreated (lifecycle)employeesevent_streamlowNew employee provisioned in HCM becomes a schedulable resource in WFM - identity, position, base FTE. Mid-shift onboarding and badge-binding are typical edge cases.
HCM-CORE-WORKERCOMP-MGMTCOMP-PLANNINGemployee.createdcreated (lifecycle)employeesevent_streamlowNew-hire creation provides compensation basis. Bands and grades attach via job profile.
HCM-CORE-WORKERCOMP-MGMTCOMP-PLANNINGemployee.promoted(lifecycle)employeesevent_streamlowPromotion event triggers off-cycle compensation review (eligibility, band placement, increase recommendation) in COMP-MGMT.
HCM-CORE-WORKERBEN-ADMINBEN-ENROLLMENTemployee.createdcreated (lifecycle)employeesevent_streammediumNew-hire creation seeds benefits eligibility (waiting periods, default elections). Drives carrier feed setup at end of new-hire window.
HCM-CORE-WORKERBEN-ADMINBEN-ENROLLMENTemployee.terminatedterminated (lifecycle)employeesevent_streamhighTermination triggers benefits termination, COBRA / equivalent notices, and dependent coverage decisions. Late notifications cause coverage gaps.
HCM-ORG-POSITIONSFIN(domain-level)org_unit.created(state_change)org_unitsapi_callmediumNew org unit usually maps to cost-center; ERP-FIN must reflect the structure for budgeting and labor allocation.
HCM-CORE-WORKEREXPENSE(domain-level)employee.terminatedterminated (lifecycle)employeesevent_streammediumTermination triggers EXPENSE corporate-card deactivation and outstanding-report close-out.
HCM-CORE-WORKERPSAPSA-PROJECT-DELIVERYemployee.terminatedterminated (lifecycle)employeesevent_streammediumTerminated employee may be the assignee on open project_tasks. PROJECT-DELIVERY needs to surface affected tasks for reassignment or completion handover.
HCM-CORE-WORKERPSAPSA-RESOURCE-MGMTattrition_risk.high(state_change)employeesevent_streamhighML attrition score crosses high threshold. PSA resource managers may proactively rebalance assignments away from at-risk consultants on critical engagements. High friction: probabilistic→deterministic pattern (score requires judgment call), false-positive volume can swamp the staffing queue.
HCM-CORE-WORKERPSAPSA-RESOURCE-MGMTemployee.createdcreated (lifecycle)employeesevent_streamlowNew consultant hired. PSA resource pool adds the employee as available capacity; skill inventory record is seeded for downstream certifications.
HCM-CORE-WORKERPSAPSA-RESOURCE-MGMTemployee.promoted(lifecycle)employeesevent_streamlowConsultant promoted (level / job profile change). PSA reevaluates billable rate band and skill inventory; existing project_assignments may need rate revision.
HCM-CORE-WORKERPSAPSA-RESOURCE-MGMTemployee.terminatedterminated (lifecycle)employeesevent_streammediumConsultant terminated. PSA must release any active project_assignments, return capacity to bench and re-allocate forecast. Medium friction: leaver-event timing varies (immediate vs notice period) and active assignments may need urgent rebalancing.
LMS-COURSE-DELIVERYSKILLS-MGMTSKILLS-MGMT-PROFILEcourse.published(lifecycle)courseslifecycle_progressionlow-
LMS-COURSE-DELIVERYSKILLS-MGMTSKILLS-MGMT-PROFILEcourse_enrollment.completed(lifecycle)course_enrollmentslifecycle_progressionlow-

6.3 Inbound handoffs (events this scope reacts to)

target modulesource domainsource moduletrigger_eventtransitionpayloadintegrationfrictiondescription
HCM-CORE-WORKERATSATS-CANDIDATE-CRMcandidate.hiredhired (lifecycle)employeesevent_streammediumCandidate-to-employee conversion: hired candidate from ATS triggers employee-record creation in HCM. Field mapping (candidate → employee) is rarely perfect; missing fields (legal name spelling, work-eligibility detail, tax IDs) get collected in the Onboarding journey and back-filled into HCM.
HCM-CORE-WORKERCOMP-MGMTCOMP-PLANNINGmerit_cycle.approvedapproved (state_change)employeesevent_streamlowCycle-close pay-rate changes post to the worker record (base salary, bonus target, equity guideline).
HCM-CORE-WORKEREMP-EXPEMP-EXP-CONTINUOUS-LISTENattrition_risk.high(state_change)employeesapi_callhighAttrition-risk inference from engagement signals surfaces to managers via HCM dashboards. Probabilistic-signal → deterministic-action pattern: a risk score is not a directive; intervention is gated by manager judgment, data-privacy rules (anonymity floor), and DEI-bias concerns.
HCM-CORE-WORKERPAPA-PREDICTIVE-MODELSattrition_risk.high(state_change)employeesevent_streamhighFlight-risk score flagged on employee; HR-business-partner motion required. Probabilistic-signal-to-deterministic-action friction shape; false-positive volume drives mistrust.
HCM-CORE-WORKERMDM(domain-level)employee_golden_record.createdactive (lifecycle)employeesapi_callmediumResolved identity → HCM links operational HR record.

6.4 Master providers (modules / domains that own masters this scope embeds)

data_objectrole herenecessitycanonical owner(s)slice notes
course_enrollmentsembedded_masterrequiredLMS-COURSE-DELIVERY (LMS)-
coursesembedded_masterrequiredLMS-COURSE-DELIVERY (LMS)-
employeesembedded_masterrequiredHCM-CORE-WORKER (HCM)-
locationsembedded_masteroptionalIWMS-LOCATION-MASTER (IWMS)-
org_unitsembedded_masteroptionalHCM-ORG-POSITIONS (HCM)-

7. Lifecycle states

course_enrollments (Course Enrollment)

This scope holds course_enrollments as embedded_master; the canonical state machine is owned by LMS-COURSE-DELIVERY.

orderstate_nameinitial?terminal?requires_permission?derived gatedescription
1enrolled---Learner enrolled in the course but has not started.
2in_progress----Learner has begun the course content or activities.
3completed-lms-ilt-delivery:completeLearner met all completion criteria with a passing score.
4failed-lms-ilt-delivery:failLearner did not meet the passing criteria within allowed attempts.
5expired-lms-ilt-delivery:expireEnrollment closed unmet at the due date or content expiry.
6withdrawn-lms-ilt-delivery:withdrawLearner withdrew or was unenrolled before completion.

course_offerings (Course Offering)

orderstate_nameinitial?terminal?requires_permission?derived gatedescription
1scheduled----
2open_for_enrollment--lms-ilt-delivery:open-
3in_progress-----
4completed-lms-ilt-delivery:complete-
5canceled-lms-ilt-delivery:cancel-

course_sessions (Course Session)

orderstate_nameinitial?terminal?requires_permission?derived gatedescription
1scheduled----
2in_progress-----
3completed-lms-ilt-delivery:complete-
4canceled-lms-ilt-delivery:cancel-

courses (Course)

This scope holds courses as embedded_master; the canonical state machine is owned by LMS-COURSE-DELIVERY.

orderstate_nameinitial?terminal?requires_permission?derived gatedescription
1draft---Course being authored by an instructional designer or SME.
2in_review----Content under review by L&D or compliance reviewers.
3published--lms-ilt-delivery:publishCourse released to the catalog and available for enrollment.
4retired-lms-ilt-delivery:retireCourse removed from the catalog and kept for historical transcripts.

employees (Employee)

This scope holds employees as embedded_master; the canonical state machine is owned by HCM-CORE-WORKER.

orderstate_nameinitial?terminal?requires_permission?derived gatedescription
1draft---Pre-hire stub created during requisition or onboarding handoff; not yet a worker of record.
2active--lms-ilt-delivery:active_employeeWorker is currently employed and appears in headcount, payroll eligibility, and directory feeds.
3on_leave--lms-ilt-delivery:on_leave_employeeEmployee is on approved leave (parental, medical, sabbatical); active record but suppressed from some downstream feeds.
4suspended--lms-ilt-delivery:suspended_employeeEmployment temporarily halted (investigation, disciplinary); pay and access may be paused.
5terminated-lms-ilt-delivery:terminated_employeeEmployment ended (voluntary or involuntary); final pay processed, access deprovisioned.

instructor_assignments (Instructor Assignment)

orderstate_nameinitial?terminal?requires_permission?derived gatedescription
1assigned----
2confirmed--lms-ilt-delivery:confirm-
3completed----
4canceled-lms-ilt-delivery:cancel-

instructors (Instructor)

orderstate_nameinitial?terminal?requires_permission?derived gatedescription
1pending----
2active--lms-ilt-delivery:activate-
3inactive-lms-ilt-delivery:deactivate-

org_units (Org Unit)

This scope holds org_units as embedded_master; the canonical state machine is owned by HCM-ORG-POSITIONS.

orderstate_nameinitial?terminal?requires_permission?derived gatedescription
1draft---Org unit defined as part of a future structure; not yet operational.
2active--lms-ilt-delivery:active_org_unitOperational unit; carries headcount, cost-center linkage, and reporting lines.
3reorganized-lms-ilt-delivery:reorganized_org_unitUnit folded into or replaced by a new structure; references remain for history.
4closed-lms-ilt-delivery:closed_org_unitUnit dissolved; no employees or positions reside in it.

session_attendances (Session Attendance)

orderstate_nameinitial?terminal?requires_permission?derived gatedescription
1recorded----
2validated-lms-ilt-delivery:validate-

training_room_bookings (Training Room Booking)

orderstate_nameinitial?terminal?requires_permission?derived gatedescription
1requested----
2confirmed--lms-ilt-delivery:confirm-
3released-lms-ilt-delivery:release-

virtual_classroom_meetings (Virtual Classroom Meeting)

orderstate_nameinitial?terminal?requires_permission?derived gatedescription
1scheduled----
2in_progress-----
3completed----
4canceled-lms-ilt-delivery:cancel-

waitlist_entries (Waitlist Entry)

orderstate_nameinitial?terminal?requires_permission?derived gatedescription
1waiting----
2promoted-lms-ilt-delivery:promote-
3expired----
4canceled----

8. Permissions and business rules (derived)

8.1 Permissions

permissiontierdescriptionincluded in :admin?
lms-ilt-delivery:readbaseline-readRead access to every entity in the module
lms-ilt-delivery:managebaseline-manageEdit operational records
lms-ilt-delivery:adminbaseline-adminEdit reference data and inherit every workflow gate below-
lms-ilt-delivery:active_employeeworkflow-gate (lifecycle)Transition employees into state active
lms-ilt-delivery:on_leave_employeeworkflow-gate (lifecycle)Transition employees into state on_leave
lms-ilt-delivery:suspended_employeeworkflow-gate (lifecycle)Transition employees into state suspended
lms-ilt-delivery:terminated_employeeworkflow-gate (lifecycle)Transition employees into state terminated
lms-ilt-delivery:active_org_unitworkflow-gate (lifecycle)Transition org_units into state active
lms-ilt-delivery:reorganized_org_unitworkflow-gate (lifecycle)Transition org_units into state reorganized
lms-ilt-delivery:closed_org_unitworkflow-gate (lifecycle)Transition org_units into state closed
lms-ilt-delivery:publishworkflow-gate (lifecycle)Transition courses into state published
lms-ilt-delivery:retireworkflow-gate (lifecycle)Transition courses into state retired
lms-ilt-delivery:completeworkflow-gate (lifecycle)Transition course_enrollments into state completed
lms-ilt-delivery:failworkflow-gate (lifecycle)Transition course_enrollments into state failed
lms-ilt-delivery:expireworkflow-gate (lifecycle)Transition course_enrollments into state expired
lms-ilt-delivery:withdrawworkflow-gate (lifecycle)Transition course_enrollments into state withdrawn
lms-ilt-delivery:openworkflow-gate (lifecycle)Transition course_offerings into state open_for_enrollment
lms-ilt-delivery:cancelworkflow-gate (lifecycle)Transition course_offerings into state canceled
lms-ilt-delivery:activateworkflow-gate (lifecycle)Transition instructors into state active
lms-ilt-delivery:deactivateworkflow-gate (lifecycle)Transition instructors into state inactive
lms-ilt-delivery:confirmworkflow-gate (lifecycle)Transition instructor_assignments into state confirmed
lms-ilt-delivery:validateworkflow-gate (lifecycle)Transition session_attendances into state validated
lms-ilt-delivery:promoteworkflow-gate (lifecycle)Transition waitlist_entries into state promoted
lms-ilt-delivery:releaseworkflow-gate (lifecycle)Transition training_room_bookings into state released
lms-ilt-delivery:view_all_instructorsoverride (personal_content)View all instructors rows beyond row-scope
lms-ilt-delivery:manage_all_instructorsoverride (personal_content)Manage all instructors rows beyond row-scope
lms-ilt-delivery:view_all_session_attendancesoverride (personal_content)View all session_attendances rows beyond row-scope
lms-ilt-delivery:manage_all_session_attendancesoverride (personal_content)Manage all session_attendances rows beyond row-scope
lms-ilt-delivery:view_all_waitlist_entriesoverride (personal_content)View all waitlist_entries rows beyond row-scope
lms-ilt-delivery:manage_all_waitlist_entriesoverride (personal_content)Manage all waitlist_entries rows beyond row-scope
lms-ilt-delivery:view_all_course_enrollmentsoverride (personal_content)View all course_enrollments rows beyond row-scope
lms-ilt-delivery:manage_all_course_enrollmentsoverride (personal_content)Manage all course_enrollments rows beyond row-scope
lms-ilt-delivery:view_all_employeesoverride (personal_content)View all employees rows beyond row-scope
lms-ilt-delivery:manage_all_employeesoverride (personal_content)Manage all employees rows beyond row-scope
lms-ilt-delivery:view_all_training_room_bookingsoverride (personal_content)View all training_room_bookings rows beyond row-scope
lms-ilt-delivery:manage_all_training_room_bookingsoverride (personal_content)Manage all training_room_bookings rows beyond row-scope
lms-ilt-delivery:view_all_session_rostersoverride (personal_content)View all session_rosters rows beyond row-scope
lms-ilt-delivery:manage_all_session_rostersoverride (personal_content)Manage all session_rosters rows beyond row-scope
lms-ilt-delivery:view_all_session_cancellationsoverride (personal_content)View all session_cancellations rows beyond row-scope
lms-ilt-delivery:manage_all_session_cancellationsoverride (personal_content)Manage all session_cancellations rows beyond row-scope

8.2 Business rules

rule_namedata_objectsource flagintent
instructor_edit_scopeinstructorshas_personal_contentRow-scope by default; override via lms-ilt-delivery:view_all_instructors / lms-ilt-delivery:manage_all_instructors
session_attendance_edit_scopesession_attendanceshas_personal_contentRow-scope by default; override via lms-ilt-delivery:view_all_session_attendances / lms-ilt-delivery:manage_all_session_attendances
waitlist_entry_edit_scopewaitlist_entrieshas_personal_contentRow-scope by default; override via lms-ilt-delivery:view_all_waitlist_entries / lms-ilt-delivery:manage_all_waitlist_entries
course_enrollment_edit_scopecourse_enrollmentshas_personal_contentRow-scope by default; override via lms-ilt-delivery:view_all_course_enrollments / lms-ilt-delivery:manage_all_course_enrollments
employee_edit_scopeemployeeshas_personal_contentRow-scope by default; override via lms-ilt-delivery:view_all_employees / lms-ilt-delivery:manage_all_employees
training_room_booking_edit_scopetraining_room_bookingshas_personal_contentRow-scope by default; override via lms-ilt-delivery:view_all_training_room_bookings / lms-ilt-delivery:manage_all_training_room_bookings
session_roster_edit_scopesession_rostershas_personal_contentRow-scope by default; override via lms-ilt-delivery:view_all_session_rosters / lms-ilt-delivery:manage_all_session_rosters
session_cancellation_edit_scopesession_cancellationshas_personal_contentRow-scope by default; override via lms-ilt-delivery:view_all_session_cancellations / lms-ilt-delivery:manage_all_session_cancellations

9. Roles, RACI, and responsibilities (derived)

Baseline roles, the permission hierarchy, and RACI realization are DERIVED from this scope’s entity-type write tiers + process_raci; none of it is stored in the catalog (the deployer provisions it from this blueprint).

9.1 LMS-ILT-DELIVERY

Baseline roles:

rolebaseline grant
lms-ilt-delivery_viewerlms-ilt-delivery:read
lms-ilt-delivery_managerlms-ilt-delivery:manage
lms-ilt-delivery_adminlms-ilt-delivery:admin

Permission hierarchy:

permissionincludes
lms-ilt-delivery:adminlms-ilt-delivery:manage
lms-ilt-delivery:managelms-ilt-delivery:read
lms-ilt-delivery:adminlms-ilt-delivery:active_employee
lms-ilt-delivery:adminlms-ilt-delivery:on_leave_employee
lms-ilt-delivery:adminlms-ilt-delivery:suspended_employee
lms-ilt-delivery:adminlms-ilt-delivery:terminated_employee
lms-ilt-delivery:adminlms-ilt-delivery:active_org_unit
lms-ilt-delivery:adminlms-ilt-delivery:reorganized_org_unit
lms-ilt-delivery:adminlms-ilt-delivery:closed_org_unit
lms-ilt-delivery:adminlms-ilt-delivery:publish
lms-ilt-delivery:adminlms-ilt-delivery:retire
lms-ilt-delivery:adminlms-ilt-delivery:complete
lms-ilt-delivery:adminlms-ilt-delivery:fail
lms-ilt-delivery:adminlms-ilt-delivery:expire
lms-ilt-delivery:adminlms-ilt-delivery:withdraw
lms-ilt-delivery:adminlms-ilt-delivery:open
lms-ilt-delivery:adminlms-ilt-delivery:cancel
lms-ilt-delivery:adminlms-ilt-delivery:activate
lms-ilt-delivery:adminlms-ilt-delivery:deactivate
lms-ilt-delivery:adminlms-ilt-delivery:confirm
lms-ilt-delivery:adminlms-ilt-delivery:validate
lms-ilt-delivery:adminlms-ilt-delivery:promote
lms-ilt-delivery:adminlms-ilt-delivery:release
lms-ilt-delivery:adminlms-ilt-delivery:view_all_instructors
lms-ilt-delivery:adminlms-ilt-delivery:manage_all_instructors
lms-ilt-delivery:adminlms-ilt-delivery:view_all_session_attendances
lms-ilt-delivery:adminlms-ilt-delivery:manage_all_session_attendances
lms-ilt-delivery:adminlms-ilt-delivery:view_all_waitlist_entries
lms-ilt-delivery:adminlms-ilt-delivery:manage_all_waitlist_entries
lms-ilt-delivery:adminlms-ilt-delivery:view_all_course_enrollments
lms-ilt-delivery:adminlms-ilt-delivery:manage_all_course_enrollments
lms-ilt-delivery:adminlms-ilt-delivery:view_all_employees
lms-ilt-delivery:adminlms-ilt-delivery:manage_all_employees
lms-ilt-delivery:adminlms-ilt-delivery:view_all_training_room_bookings
lms-ilt-delivery:adminlms-ilt-delivery:manage_all_training_room_bookings
lms-ilt-delivery:adminlms-ilt-delivery:view_all_session_rosters
lms-ilt-delivery:adminlms-ilt-delivery:manage_all_session_rosters
lms-ilt-delivery:adminlms-ilt-delivery:view_all_session_cancellations
lms-ilt-delivery:adminlms-ilt-delivery:manage_all_session_cancellations

Processes wired:

process_keyprocess_namePCF codePCF IDleveldescription
manage_maintain_employee_dataManage and maintain employee data7.7.3105243Capturing and updating employee information and data and information on the employees.
manage_leave_absenceManage leave of absence7.6.2.2105154Managing the period of time that an employee must be away from their primary job, while maintaining the status of employee (i.e., paid and unpaid leave of absence but not vacations, holidays, hiatuses, sabbaticals, and work-from-home programs).
manage_separationManage separation7.6.2105133Managing the process of employee separation, including leaves of absence, resignations, discharges, and layoffs. Inform the employee of the termination. Complete paperwork for continuation of benefits. Enter employment status change into system.
create_organizational_designCreate organizational design1.2.5100413Formulating a design for the organization’s resources that allow it to meet its objectives. Develop a new framework for molding the organization’s various processes into a coherent and seamless whole.
conduct_organizationConduct organization restructuring opportunities1.1.5167923Examining the scope and contingencies for restructuring based on market situation and internal realities. Map the market forces over which any and all probabilities can be probed for utility and viability. Once the restructuring options have been analyzed and the due-diligence performed, execute the deal. Consider seeking professional services for assistance in formalizing these opportunities.
develop_conduct_manage_employeeDevelop, conduct, and manage employee training programs7.3.4.5104934Creating, implementing, and managing the programs for training employees. Create and design sessions on the basis of the needs and the availability of the skills. Conduct the sessions in person or virtually. Manage all aspects related to the training programs. Consider including literacy training, interpersonal skills training, technical training, problem-solving training, diversity or sensitivity training, etc.
manage_training_scheduleManage training schedule5.2.3.3121314Providing training to the employee within a manageable timeframe to meet the needs of both the individual and the organization.

RACI realization:

actorkindraciprocess_keyrealization
HR-PEOPLE-OPS-SPECIALISTpersonaresponsiblemanage_maintain_employee_datagrant gates [lms-ilt-delivery:active_employee] + the gated entities’ write tier
HR-BUSINESS-PARTNERpersonaaccountablemanage_maintain_employee_dataapproval gate
HR-HRIS-ADMINpersonaconsultedmanage_maintain_employee_dataadvisory read grant
PEOPLE-MANAGERpersonainformedmanage_maintain_employee_datanotification side effect (trigger_event / webhook_receiver)
HR-PEOPLE-OPS-SPECIALISTpersonaresponsiblemanage_leave_absencegrant gates [lms-ilt-delivery:on_leave_employee] + the gated entities’ write tier
PEOPLE-MANAGERpersonaaccountablemanage_leave_absenceapproval gate
HR-BUSINESS-PARTNERpersonaconsultedmanage_leave_absenceblocking consultation state
HR-HRIS-ADMINpersonainformedmanage_leave_absencenotification side effect (trigger_event / webhook_receiver)
HR-PEOPLE-OPS-SPECIALISTpersonaresponsiblemanage_separationgrant gates [lms-ilt-delivery:terminated_employee] + the gated entities’ write tier
HR-BUSINESS-PARTNERpersonaaccountablemanage_separationapproval gate
PEOPLE-MANAGERpersonaconsultedmanage_separationadvisory read grant
HR-HRIS-ADMINpersonainformedmanage_separationnotification side effect (trigger_event / webhook_receiver)
HR-ORG-DESIGN-ANALYSTpersonaresponsiblecreate_organizational_designgrant gates [lms-ilt-delivery:active_org_unit] + the gated entities’ write tier
HR-BUSINESS-PARTNERpersonaaccountablecreate_organizational_designapproval gate
PEOPLE-MANAGERpersonaconsultedcreate_organizational_designadvisory read grant
HR-HRIS-ADMINpersonainformedcreate_organizational_designnotification side effect (trigger_event / webhook_receiver)
HR-ORG-DESIGN-ANALYSTpersonaresponsibleconduct_organizationgrant gates [lms-ilt-delivery:reorganized_org_unit] + the gated entities’ write tier
HR-BUSINESS-PARTNERpersonaaccountableconduct_organizationapproval gate
PEOPLE-MANAGERpersonaconsultedconduct_organizationadvisory read grant
LD-INSTRUCTIONAL-DESIGNERpersonaresponsibledevelop_conduct_manage_employeegrant gates [lms-ilt-delivery:publish, lms-ilt-delivery:complete] + the gated entities’ write tier
LD-LEARNING-ADMINpersonaaccountabledevelop_conduct_manage_employeeapproval gate
LD-INSTRUCTORpersonaconsulteddevelop_conduct_manage_employeeadvisory read grant
PEOPLE-MANAGERpersonainformeddevelop_conduct_manage_employeenotification side effect (trigger_event / webhook_receiver)
LD-INSTRUCTORpersonaresponsiblemanage_training_schedulegrant gates [lms-ilt-delivery:open, lms-ilt-delivery:complete] + the gated entities’ write tier
LD-LEARNING-ADMINpersonaaccountablemanage_training_scheduleapproval gate

9.2 Functional ownership and default grants

responsibilitybusiness functiondefault roledefault tier
ownerLearning and Developmentadmin:admin
contributorGovernance, Risk and Compliancemanage:manage
contributorLegalmanage:manage
consumerManufacturing Operationsread:read
consumerSalesread:read
consumerSoftware Engineeringread:read