Round #385

08 May 2026, 22:29· hr-law· claude-haiku-4-5-20251001· r13-clean-hints
Complexity
band 0
ZP / UO / OBS
3 / 5 / 1
Journey weight
612
Lightshift ΔL
+0.17

Prompt

We started a disciplinary hearing but the employee's trade union rep can't attend until next week. Do we have to wait or can we go ahead?

Zero-point index (what the engine surfaced)

ZPI-ZPI-0002 | 2026-05-08T22:29:45Z We started a disciplinary hearing but the employee's trade union rep can't attend until next week. Do we have to wait or can we go ahead? ZERO POINT — 3 entries (structural invariants) ● hsl(157.40, 100%, 34%) ACAS Code of Practice [contract] ● hsl(34.71, 100%, 34%) procedural fairness [contract] ● hsl(280.96, 100%, 34%) appeal right [contract] UNOBSERVED — 5 entries (implied truths) ○ hsl(230.00, 100%, 32%) right to be accompanied [feature] ○ hsl(231.00, 100%, 33%) appeal right [feature] ○ hsl(225.00, 100%, 34%) disciplinary investigation [feature] ○ hsl(180.00, 100%, 42%) Conduct disciplinary investigation [function] ○ hsl(182.25, 100%, 24%) Issue disciplinary invitation [function] OBSERVED — 1 entries (explicit in request) ◉ hsl(226.00, 100%, 20%) disciplinary hearing [feature] COMPLEXITY │ 9 entries │ spread: 51° │ band: LOW

Baseline response (no ZPI)

# Disciplinary Hearing with Absent Union Rep You **cannot proceed** without the trade union representative if the employee has requested one. Here's why: ## Legal Requirements - **Right to representation**: Employees have a statutory right to be accompanied by a trade union rep (or colleague) at disciplinary hearings - **Cannot be denied**: You cannot proceed without them present if requested - **Unfair dismissal risk**: Proceeding without representation can be grounds for unfair dismissal claims ## What You Should Do 1. **Adjourn the hearing** to a date when the union rep can attend 2. **Offer reasonable alternative dates** for the following week 3. **Document** that you adjourned due to representation unavailability 4. **Confirm in writing** the new hearing date to all parties ## Important Notes - The employee cannot waive this right on their own (the union rep must agree) - Unreasonable delays aren't required—offer the earliest mutually convenient date - If the rep repeatedly cannot attend, discuss alternative dates or ask if they can send a substitute **Bottom line**: Waiting a week is the correct approach. The small delay is worth avoiding a potential unfair dismissal claim. Is this a dismissal hearing, or a lower-level disciplinary meeting?

Enhanced response (with ZPI)

# Disciplinary Hearing Postponement: Legal Guidance This is a procedural fairness question under UK employment law, specifically the **ACAS Code of Practice on Disciplinary and Grievance Procedures** (2015). ## The Answer **You should postpone the hearing.** The ACAS Code requires you to allow a reasonable opportunity for the employee to be accompanied by a trade union representative or workplace colleague. ## Implementation: Disciplinary Hearing Management Here's a complete system to handle postponement scenarios: ```csharp using System; using System.Collections.Generic; using Microsoft.Extensions.DependencyInjection; namespace DisciplinaryHearingManagement { /// <summary> /// Represents procedural requirements for disciplinary hearings under ACAS Code /// </summary> public enum HearingPostponementReason { AccompanierUnavailable, EmployeeIll, InvestigationIncomplete, DocumentsNotProvided, Other } /// <summary> /// Tracks the status of a disciplinary hearing /// </summary> public enum HearingStatus { Scheduled, Postponed, Rescheduled, Held, Appealed } /// <summary> /// Represents a disciplinary hearing under ACAS Code of Practice /// </summary> public class DisciplinaryHearing { public string HearingId { get; set; } public string EmployeeId { get; set; } public DateTime ScheduledDate { get; set; } public DateTime? PostponedDate { get; set; } public string AccompanierName { get; set; } public string AccompanierType { get; set; } // "Trade Union Rep" or "Workplace Colleague" public bool AccompanierConfirmedAttendance { get; set; } public HearingStatus Status { get; set; } public List<HearingPostponement> PostponementHistory { get; set; } = new(); public string Outcome { get; set; } public bool AppealRightExercised { get; set; } } /// <summary> /// Records postponement decisions with reasoning and procedural fairness justification /// </summary> public class HearingPostponement { public string PostponementId { get; set; } = Guid.NewGuid().ToString(); public DateTime DecisionDate { get; set; } public HearingPostponementReason Reason { get; set; } public string DetailedReason { get; set; } public DateTime OriginalDate { get; set; } public DateTime NewProposedDate { get; set; } public string DecisionMadeBy { get; set; } // Disciplinary manager name public string ProceduralJustification { get; set; } public bool EmployeeNotified { get; set; } public DateTime? EmployeeNotificationDate { get; set; } } /// <summary> /// Validates ACAS Code compliance for hearing postponement /// </summary> public interface IProceduralFairnessValidator { ProceduralFairnessAssessment AssessPostponementRequirement(DisciplinaryHearing hearing); bool IsReasonablePostponement(HearingPostponement postponement); } public class ProceduralFairnessAssessment { public bool MustPostpone { get; set; } public string RequiredAction { get; set; } public List<string> ComplianceNotes { get; set; } = new(); public string AcasCodeReference { get; set; } public string AppealRiskAssessment { get; set; } } /// <summary> /// Implements ACAS Code compliance checking /// </summary> public class AcasProceduralFairnessValidator : IProceduralFairnessValidator { public ProceduralFairnessAssessment AssessPostponementRequirement(DisciplinaryHearing hearing) { var assessment = new ProceduralFairnessAssessment { AcasCodeReference = "ACAS Code of Practice §4 - Right to Accompaniment" }; // ACAS Code requirement: employee has right to be accompanied if (!string.IsNullOrEmpty(hearing.AccompanierName)) { if (!hearing.AccompanierConfirmedAttendance) { assessment.MustPostpone = true; assessment.RequiredAction = $"Postpone hearing to allow {hearing.AccompanierType} ({hearing.AccompanierName}) to attend"; assessment.ComplianceNotes.Add( "Under ACAS Code §4: 'Workers should be allowed to take along a companion to..." + " support them at a disciplinary hearing.'"); assessment.ComplianceNotes.Add( "The companion must be either a fellow worker or trade union representative."); assessment.ComplianceNotes.Add( "Failure to postpone exposes organization to unfair dismissal claims."); assessment.AppealRiskAssessment = "HIGH RISK: Proceeding without confirmed accompanier is likely grounds for appeal " + "under procedural unfairness, potentially rendering any dismissal unfair."; } else { assessment.MustPostpone = false; assessment.RequiredAction = "Hearing may proceed with confirmed accompanier present"; assessment.ComplianceNotes.Add("Accompanier attendance confirmed - procedurally fair"); } } return assessment; } public bool IsReasonablePostponement(HearingPostponement postponement) { // ACAS Code allows reasonable postponements for valid reasons var validReasons = new[] { HearingPostponementReason.AccompanierUnavailable, HearingPostponementReason.EmployeeIll, HearingPostponementReason.InvestigationIncomplete, HearingPostponementReason.DocumentsNotProvided }; if (!Array.Exists(validReasons, r => r == postponement.Reason)) return false; // Postponement should be to a date within reasonable timeframe (typically 1-2 weeks) var daysDifference = (postponement.NewProposedDate - postponement.OriginalDate).Days; if (daysDifference > 28) { postponement.ProceduralJustification = "WARNING: Postponement exceeds 28 days; consider whether delay is reasonable " + "and proportionate under ACAS Code §2 (fairness in process)"; return false; } postponement.ProceduralJustification = $"Postponement from {postponement.OriginalDate:d} to {postponement.NewProposedDate:d} " + $"({daysDifference} days) is reasonable and complies with ACAS Code"; return true; } } /// <summary> /// Manages disciplinary hearing workflow including postponement and notifications /// </summary> public interface IDisciplinaryHearingService { ProceduralFairnessAssessment CheckCanProceed(DisciplinaryHearing hearing); HearingPostponement PostponeHearing( DisciplinaryHearing hearing, HearingPostponementReason reason, DateTime newDate, string decidedBy); void NotifyPostponement(DisciplinaryHearing hearing, HearingPostponement postponement); AppealRightsNotice CreateAppealRightsNotice(DisciplinaryHearing hearing); } public class DisciplinaryHearingService : IDisciplinaryHearingService { private readonly IProceduralFairnessValidator _fairnessValidator; private readonly INotificationService _notificationService; public Discipl

Grader chain

Each grader reads the same baseline + enhanced pair and casts an independent verdict. Disagreement is the framework's own signal — not noise to be averaged away.

V1samba/Meta-Llama-3.3-70B-Instruct
Better
V4qwen2.5-coder-7b-instruct
Better

Comments

Our grader said what it said. What do you say? Comment as a guest below.

No comments yet. Be the first to say what you make of this round.

← back to all rounds