Quality Score
Critical issues found
10 error-level issues require attention. Review the feedback details below.
Score Breakdown
Feedback by Criterion
Annual leave carryover rule is entirely missing: the policy states unused annual leave may be carried over up to a maximum of 5 days, but no rule captures this entitlement or cap.
Duplicate/redundant rules for doctor's note requirement: rule-004 and rule-006 both implement the same policy (doctor's note for >3 consecutive sick days) with overlapping but inconsistent conditions. Rule-006 adds a redundant 'employee.consecutiveSickLeaveDays > 3' condition alongside the leaveRequest-level condition, creating confusion and potential double-firing.
Parental leave rule-007 contains a duplicate condition: both 'employee.monthsOfService >= 12' and 'employee.months_of_service >= 12' appear (camelCase vs snake_case), which is a data model inconsistency that could cause incorrect evaluation.
Emergency leave rule is missing: the policy explicitly states emergency leave requests may be submitted retroactively within 48 hours, but no rule captures this distinct approval pathway or the 48-hour retroactive submission window.
Rule-009 references 'Section 6' in its source_chunks, but the source document has no Section 6 — this is an inaccurate attribution that undermines traceability.
Rule-010 also references 'Section 6' which does not exist in the source document, further degrading attribution accuracy.
Rule-009 and rule-010 overlap significantly in purpose (both flag insufficient notice for non-emergency leave) but have different conditions (rule-010 requires isEligibleForPaidLeaveBenefits while rule-009 does not), creating inconsistent enforcement of the same policy.
The approval process rules (rule-008, rule-009, rule-010) do not require the employee to be eligible for paid leave benefits as a prerequisite, meaning the engine could approve or flag leave requests for ineligible employees.
Metadata contains significant noise: duplicated entries in child_rules arrays (e.g., rule-001's child_rules lists rule-002 through rule-010 multiple times), and merged_rule_ids lists the same rule ID multiple times, suggesting extraction pipeline artifacts that reduce trustworthiness.
Add a dedicated rule for emergency leave: capture the 48-hour retroactive submission window as a separate approval pathway rule, distinct from the standard 14-day advance notice requirement.
Consolidate or eliminate the duplicate doctor's note rules (rule-004 and rule-006) into a single, authoritative rule to avoid ambiguity and potential double-firing in the rules engine.
Fix the duplicate condition in rule-007 by standardizing on a single fact name (either 'monthsOfService' or 'months_of_service') and removing the redundant condition.
Add 'isEligibleForPaidLeaveBenefits == true' as a prerequisite condition to the approval process rules (rule-008, rule-009, rule-010) to ensure leave processing only applies to eligible employees.
Clean up metadata arrays to remove duplicate entries in child_rules, parent_rules, and merged_rule_ids fields to improve readability and reduce confusion.
Standardize fact naming conventions across all rules — the inconsistency between snake_case (employee.months_of_service) and camelCase (employee.monthsOfService) should be resolved to a single convention.
Consider adding a rule that explicitly handles the interaction between the 90-day general eligibility requirement and the 12-month parental leave requirement, making the layered eligibility logic clearer.
The sick leave entitlement rule (rule-003) incorrectly references 'Section 2' in its source_chunks — sick leave is defined in Section 3, not Section 2.
Correct all source_chunk references to remove non-existent 'Section 6' citations and ensure all section references map to actual sections in the source document.
Add a dedicated rule for annual leave carryover: 'Unused annual leave may be carried over to the next year, up to a maximum of 5 days' — this is a distinct and important entitlement that is completely absent.
Review and reconcile the conflicts_with and overrides relationships in metadata — rule-008 claiming to override rule-009 is not clearly supported by the policy text and may mislead implementers.
Policy Logic Extractor