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
BetterV4qwen2.5-coder-7b-instruct
BetterComments
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.