249 lines
12 KiB
JavaScript
Executable File
249 lines
12 KiB
JavaScript
Executable File
export const violationData = {
|
|
tardy: {
|
|
name: 'Tardy Core Hours', category: 'Attendance & Punctuality',
|
|
minPoints: 1, maxPoints: 1, chapter: 'Chapter 4, Section 5',
|
|
fields: ['time', 'minutes', 'description'],
|
|
description: 'Arriving 7+ minutes after 9:00 AM or start of mandatory meeting without prior excuse'
|
|
},
|
|
unplanned_absence: {
|
|
name: 'Unplanned Absence', category: 'Attendance & Punctuality',
|
|
minPoints: 3, maxPoints: 3, chapter: 'Chapter 4, Section 5',
|
|
fields: ['description'],
|
|
description: 'Absence from Core Hours without 48-hour notification, excluding verified emergencies'
|
|
},
|
|
chronic_underscheduling: {
|
|
name: 'Chronic Under-Scheduling', category: 'Attendance & Punctuality',
|
|
minPoints: 5, maxPoints: 5, chapter: 'Chapter 4, Section 5',
|
|
fields: ['description'],
|
|
description: 'Consistently failing to meet 40-hour weekly baseline'
|
|
},
|
|
pto_exhausted: {
|
|
name: 'Absence - PTO Exhausted', category: 'Attendance & Punctuality',
|
|
minPoints: 5, maxPoints: 5, chapter: 'Chapter 4, Section 5',
|
|
fields: ['description'],
|
|
description: 'Any absence after PTO bank reaches zero'
|
|
},
|
|
shadow_absenteeism: {
|
|
name: 'Shadow Absenteeism', category: 'Attendance & Punctuality',
|
|
minPoints: 5, maxPoints: 20, chapter: 'Chapter 4, Section 5',
|
|
fields: ['description'],
|
|
description: 'Failure to record partial-day absences or habitual PTO system bypass (20 pts for recidivists)'
|
|
},
|
|
manual_punch_1st: {
|
|
name: 'Manual Punch Correction (1st)', category: 'Administrative Integrity',
|
|
minPoints: 1, maxPoints: 1, chapter: 'Chapter 4, Section 5',
|
|
fields: ['description'],
|
|
description: 'First failure to punch in/out requiring manual audit'
|
|
},
|
|
manual_punch_2nd: {
|
|
name: 'Manual Punch Correction (2nd)', category: 'Administrative Integrity',
|
|
minPoints: 2, maxPoints: 2, chapter: 'Chapter 4, Section 5',
|
|
fields: ['description'],
|
|
description: 'Second failure requiring written action plan'
|
|
},
|
|
manual_punch_3rd: {
|
|
name: 'Manual Punch Correction (3rd / Tier 1)', category: 'Administrative Integrity',
|
|
minPoints: 5, maxPoints: 5, chapter: 'Chapter 4, Section 5',
|
|
fields: ['description'],
|
|
description: 'Repeated timekeeping negligence triggering formal Tier 1 realignment'
|
|
},
|
|
geolocation_1st: {
|
|
name: 'Geolocation Integrity (1st)', category: 'Administrative Integrity',
|
|
minPoints: 1, maxPoints: 1, chapter: 'Chapter 4, Section 5',
|
|
fields: ['location', 'description'],
|
|
description: 'Recording blind punch with location services disabled'
|
|
},
|
|
geolocation_2nd: {
|
|
name: 'Geolocation Integrity (2nd)', category: 'Administrative Integrity',
|
|
minPoints: 10, maxPoints: 10, chapter: 'Chapter 4, Section 5',
|
|
fields: ['location', 'description'],
|
|
description: 'Subsequent attempt to bypass location safeguards'
|
|
},
|
|
point_of_work: {
|
|
name: 'Point-of-Work Integrity', category: 'Administrative Integrity',
|
|
minPoints: 1, maxPoints: 3, chapter: 'Chapter 4, Section 5',
|
|
fields: ['location', 'description'],
|
|
description: 'Clocking in before arriving at assigned post or for personal errands'
|
|
},
|
|
financial_chargeback: {
|
|
name: 'Financial Stewardship / Chargeback', category: 'Financial Stewardship',
|
|
minPoints: 1, maxPoints: 1, chapter: 'Chapter 4, Section 5',
|
|
fields: ['amount', 'description'],
|
|
description: 'Monthly assessment for unsubstantiated expenses requiring chargeback'
|
|
},
|
|
receipt_negligence: {
|
|
name: 'Receipt Negligence', category: 'Financial Stewardship',
|
|
minPoints: 10, maxPoints: 10, chapter: 'Chapter 4, Section 5',
|
|
fields: ['amount', 'description'],
|
|
description: 'Frequent failure to provide company card expense documentation'
|
|
},
|
|
failure_to_respond: {
|
|
name: 'Failure to Respond', category: 'Operational Response',
|
|
minPoints: 1, maxPoints: 3, chapter: 'Chapter 4, Section 5',
|
|
fields: ['description'],
|
|
description: 'Failure to respond promptly to internal/external requests during Core Hours'
|
|
},
|
|
sunset_rule: {
|
|
name: 'Sunset Rule Violation', category: 'Operational Response',
|
|
minPoints: 1, maxPoints: 3, chapter: 'Chapter 4, Section 5',
|
|
fields: ['description'],
|
|
description: 'Failure to provide response or status update with commitment date by end of business day'
|
|
},
|
|
double_ask: {
|
|
name: 'Double Ask Friction', category: 'Operational Response',
|
|
minPoints: 3, maxPoints: 3, chapter: 'Chapter 4, Section 5',
|
|
fields: ['description'],
|
|
description: 'Forcing client to ask twice for same information due to employee neglect'
|
|
},
|
|
missed_deadline_internal: {
|
|
name: 'Missed Deadline - Internal', category: 'Operational Response',
|
|
minPoints: 3, maxPoints: 3, chapter: 'Chapter 4, Section 5',
|
|
fields: ['description'],
|
|
description: 'Failure to meet internal project milestones'
|
|
},
|
|
missed_deadline_client: {
|
|
name: 'Missed Deadline - Client', category: 'Operational Response',
|
|
minPoints: 7, maxPoints: 7, chapter: 'Chapter 4, Section 5',
|
|
fields: ['description'],
|
|
description: 'Failure to meet high-impact client-facing deadline'
|
|
},
|
|
commitment_breach: {
|
|
name: 'Commitment Breach', category: 'Operational Response',
|
|
minPoints: 4, maxPoints: 4, chapter: 'Chapter 4, Section 5',
|
|
fields: ['description'],
|
|
description: 'Failing to meet commitment date without proactive prior notification'
|
|
},
|
|
communication_gap: {
|
|
name: 'Communication Gap (15-min window)', category: 'Operational Response',
|
|
minPoints: 5, maxPoints: 5, chapter: 'Chapter 4, Section 5',
|
|
fields: ['description'],
|
|
description: 'Failure to respond within 15-minute window due to mobile device distraction'
|
|
},
|
|
quality_recidivism: {
|
|
name: 'Quality Recidivism', category: 'Operational Response',
|
|
minPoints: 4, maxPoints: 4, chapter: 'Chapter 4, Section 5',
|
|
fields: ['description'],
|
|
description: 'Repetition of technical/administrative error previously corrected'
|
|
},
|
|
technical_negligence: {
|
|
name: 'Technical Negligence', category: 'Operational Response',
|
|
minPoints: 5, maxPoints: 5, chapter: 'Chapter 4, Section 5',
|
|
fields: ['description'],
|
|
description: 'Performance error resulting in rework, data loss, or equipment damage'
|
|
},
|
|
appearance: {
|
|
name: 'Professional Appearance Violation', category: 'Professional Conduct',
|
|
minPoints: 1, maxPoints: 3, chapter: 'Chapter 2, Section 9',
|
|
fields: ['time', 'location', 'description'],
|
|
description: 'Failure to maintain dress code standards (shirts, pants, shoes required)'
|
|
},
|
|
active_consumption: {
|
|
name: 'Active Consumption Media', category: 'Professional Conduct',
|
|
minPoints: 5, maxPoints: 5, chapter: 'Chapter 4, Section 5',
|
|
fields: ['time', 'description'],
|
|
description: 'Interactive social media/gaming during Core Hours'
|
|
},
|
|
tobacco_debris: {
|
|
name: 'Tobacco Facility Debris', category: 'Professional Conduct',
|
|
minPoints: 5, maxPoints: 5, chapter: 'Chapter 4, Section 5',
|
|
fields: ['location', 'description'],
|
|
description: 'Failure to maintain clean smoking area or flicking debris on grounds'
|
|
},
|
|
passive_insubordination: {
|
|
name: 'Passive Insubordination', category: 'Professional Conduct',
|
|
minPoints: 5, maxPoints: 5, chapter: 'Chapter 4, Section 5',
|
|
fields: ['description'],
|
|
description: 'Ignoring reasonable requests, emails, or syncs without open dissent'
|
|
},
|
|
lockdown_violation: {
|
|
name: 'Lockdown Violation', category: 'Professional Conduct',
|
|
minPoints: 10, maxPoints: 10, chapter: 'Chapter 4, Section 5',
|
|
fields: ['description'],
|
|
description: 'Using non-work media while under Tier 2 Administrative Friction'
|
|
},
|
|
vehicle_stewardship: {
|
|
name: 'Vehicle Stewardship', category: 'Professional Conduct',
|
|
minPoints: 10, maxPoints: 10, chapter: 'Chapter 4, Section 5',
|
|
fields: ['description'],
|
|
description: 'Persistent tobacco-free transit violation (odor/debris in company vehicle)'
|
|
},
|
|
defiant_insubordination: {
|
|
name: 'Defiant Insubordination', category: 'Professional Conduct',
|
|
minPoints: 15, maxPoints: 15, chapter: 'Chapter 4, Section 5',
|
|
fields: ['description'],
|
|
description: 'Openly refusing legal, ethical, or professional directive from management'
|
|
},
|
|
benefit_documentation: {
|
|
name: 'Benefit Documentation Failure', category: 'Professional Conduct',
|
|
minPoints: 15, maxPoints: 15, chapter: 'Chapter 4, Section 5',
|
|
fields: ['description'],
|
|
description: 'Failure to provide insurance records for Workers Comp'
|
|
},
|
|
professional_dishonesty: {
|
|
name: 'Professional Dishonesty', category: 'Professional Conduct',
|
|
minPoints: 20, maxPoints: 20, chapter: 'Chapter 4, Section 5',
|
|
fields: ['description'],
|
|
description: 'Falsifying time records, expenses, or reasons for absence'
|
|
},
|
|
wfh_submittal: {
|
|
name: 'WFH Submittal Failure', category: 'Work From Home',
|
|
minPoints: 1, maxPoints: 5, chapter: 'Chapter 4, Section 4.1',
|
|
fields: ['description'],
|
|
description: 'Failure to provide work-product summary or misrepresenting hours worked'
|
|
},
|
|
safety_minor: {
|
|
name: 'Safety Violation - Minor', category: 'Safety & Security',
|
|
minPoints: 1, maxPoints: 10, chapter: 'Chapter 4, Section 5',
|
|
fields: ['location', 'description'],
|
|
description: 'Minor to moderate safety standard violations without immediate injury'
|
|
},
|
|
policy_isp: {
|
|
name: 'Policy Non-Alignment - ISP', category: 'Safety & Security',
|
|
minPoints: 5, maxPoints: 20, chapter: 'Chapter 4, Section 5',
|
|
fields: ['description'],
|
|
description: 'Failure to adhere to Information Security Policy protocols'
|
|
},
|
|
workspace_safety: {
|
|
name: 'Workspace Safety Neglect', category: 'Safety & Security',
|
|
minPoints: 15, maxPoints: 15, chapter: 'Chapter 4, Section 5',
|
|
fields: ['location', 'description'],
|
|
description: 'Failure to maintain clean workspace or minor safety negligence'
|
|
},
|
|
distracted_driving: {
|
|
name: 'Distracted Driving', category: 'Safety & Security',
|
|
minPoints: 15, maxPoints: 15, chapter: 'Chapter 4, Section 5',
|
|
fields: ['location', 'description'],
|
|
description: 'Use of handheld mobile devices while operating vehicle for company business'
|
|
},
|
|
operational_sabotage: {
|
|
name: 'Operational Sabotage', category: 'Safety & Security',
|
|
minPoints: 20, maxPoints: 20, chapter: 'Chapter 4, Section 5',
|
|
fields: ['description'],
|
|
description: 'Willful disregard for security/safety protocols resulting in breach or injury'
|
|
},
|
|
impairment_redzone: {
|
|
name: 'Impairment in Red Zone', category: 'Safety & Security',
|
|
minPoints: 30, maxPoints: 30, chapter: 'Chapter 4, Section 5',
|
|
fields: ['location', 'description'],
|
|
description: 'Operating machinery or working in Fabrication Area while under influence'
|
|
},
|
|
child_redzone: {
|
|
name: 'Child in Red Zone', category: 'Safety & Security',
|
|
minPoints: 30, maxPoints: 30, chapter: 'Chapter 4, Section 5',
|
|
fields: ['location', 'description'],
|
|
description: 'Bringing minor into active Fabrication Area (Suite 24/25)'
|
|
},
|
|
i9_falsification: {
|
|
name: 'I-9 Eligibility Falsification', category: 'Safety & Security',
|
|
minPoints: 30, maxPoints: 30, chapter: 'Chapter 4, Section 5',
|
|
fields: ['description'],
|
|
description: 'Falsifying work authorization or identity documentation'
|
|
}
|
|
};
|
|
|
|
export const violationGroups = Object.entries(violationData).reduce((acc, [key, val]) => {
|
|
if (!acc[val.category]) acc[val.category] = [];
|
|
acc[val.category].push({ key, ...val });
|
|
return acc;
|
|
}, {});
|