Capability Matrix¶
What the engine computes for fiscal year 2027, and how far the bundled
data behind it is backed by sources. Generated from the capability registry
(knowledge/capability/registry/2027.json), the provenance records of the
payable rules, the missing notes and the model limitations of the 132
bundled CCNLs. The
runtime capability report of every run, the CCNL Coverage
index and this page all derive from the same registry.
→ Provenance statuses · Assurance of a result
Capabilities¶
Each capability has a scope on these pages: core (computed or decided
on every run: the path the contracts index rates), scenario (an event, a
termination, or a decided capability the engine covers only in part) or
outside_input. Each also declares:
- Implementation:
native(bundled rules and request facts),caller_supplied(a caller rate or amount stands in for a rule),partial(only the listed variants) orunsupported. - Applies when:
always;decidedby its decision owner;event(the request declares an event of the capability);termination_run(the run closes the employment);outside_input(the request has no field for the fact that makes it apply: a case with that fact is outside the engine input). - Handler: the code that decides and traces it (
pipeline,event,decision); an unsupported capability has none. - Facts: the request facts it reads; for an
outside_inputcapability, the fact the request lacks.
A run reports every capability as applicable, not_applicable or
outside_input. Only an applicable capability can leave a gap: an
unsupported one blocks payment, a partial one that executed makes the
coverage partial and blocks payment too.
| Label | Meaning |
|---|---|
| verified | Implemented; a named person checked every bundled rule it reads |
| caller-supplied | Computed from caller rates or amounts that stand in for a rule |
| implemented | Computed; the bundled rules it reads, if any, cite a source |
| simplified | Partial, or reads an assumed or missing rule |
| unavailable | Not computed by the engine |
Rules counts the payable rules of the bundle each capability reads, by provenance status: verified / derived / assumed / missing. "none bundled" means the capability reads no bundled table: it computes from engine formulas or caller-declared amounts.
| Scope | native | caller_supplied | partial | unsupported |
|---|---|---|---|---|
| core | 20 | 0 | 0 | 0 |
| scenario | 4 | 9 | 2 | 1 |
| outside_input | 0 | 0 | 0 | 14 |
| Capability | Description | Scope | Layer | Implementation | Applies when | Handler | Facts | Variants | Label | Rules (v / d / a / m) |
|---|---|---|---|---|---|---|---|---|---|---|
base_salary |
Paga base contrattuale | core | gross | native | always | pipeline | — | — | simplified | 1426 / 4083 / 660 / 59 |
seniority |
Scatti di anzianità | core | gross | native | decided | decision | employment.seniority |
— | simplified | 24 / 95 / 13 / 0 |
worker_category |
Categoria lavoratore (dichiarata o fissata dal livello) | core | gross | native | decided | decision | employment.category |
— | implemented | none bundled |
inps_employee |
Contributi INPS a carico dipendente | core | net | native | always | pipeline | — | — | simplified | 21 / 24 / 48 / 0 |
inps_employer |
Contributi INPS a carico azienda | core | net | native | always | pipeline | — | — | simplified | 29 / 24 / 56 / 0 |
inail |
Premio INAIL a carico azienda | outside_input | net | unsupported | outside_input | — | employer.inail_tariff_rate |
— | unavailable | none bundled |
contribution_exemption |
Esonero contributivo | outside_input | net | unsupported | outside_input | — | employer.contribution_exemption |
— | unavailable | none bundled |
fiscal_adjustment |
Conguaglio IRPEF da assistenza fiscale o periodo precedente | outside_input | net | unsupported | outside_input | — | facts.fiscal_adjustment |
— | unavailable | none bundled |
maternity_leave |
Indennità maternità INPS | outside_input | work_rules | unsupported | outside_input | — | facts.events[maternity_leave] |
— | unavailable | none bundled |
workplace_injury |
Indennità infortunio INAIL | outside_input | work_rules | unsupported | outside_input | — | facts.events[workplace_injury] |
— | unavailable | none bundled |
termination_residual_leave |
Monetizzazione ferie e permessi residui alla cessazione | scenario | gross | unsupported | termination_run | — | facts.residual_leave_hours |
— | unavailable | none bundled |
termination_tfr |
Liquidazione TFR a tassazione separata (importo e aliquota dal chiamante) | scenario | net | caller_supplied | event | event | — | — | caller-supplied | none bundled |
contract_renewal_arrears |
Arretrati rinnovo contratto: tassazione separata se di anni precedenti (aliquota dal chiamante), ordinaria se dell'anno | scenario | gross | caller_supplied | event | event | — | — | caller-supplied | none bundled |
una_tantum |
Una tantum contrattuale | outside_input | gross | unsupported | outside_input | — | facts.events[una_tantum] |
— | unavailable | none bundled |
personal_withholdings |
Trattenute personali (pignoramenti, cessioni del quinto, prestiti) | outside_input | net | unsupported | outside_input | — | facts.personal_withholdings |
— | unavailable | none bundled |
additional_irpef_base |
Redditi di altri sostituti nella base IRPEF del conguaglio | outside_input | net | unsupported | outside_input | — | facts.other_withholding_agents_income |
— | unavailable | none bundled |
health_fund_employee |
Fondo sanitario integrativo a carico dipendente | outside_input | net | unsupported | outside_input | — | employment.health_fund |
— | unavailable | none bundled |
health_fund_employer |
Fondo sanitario integrativo a carico azienda | outside_input | net | unsupported | outside_input | — | employment.health_fund |
— | unavailable | none bundled |
territorial_supplement |
Integrazione da contratto territoriale | outside_input | gross | unsupported | outside_input | — | employment.territorial_agreement |
— | unavailable | none bundled |
company_supplement |
Integrazione da contratto aziendale | outside_input | gross | unsupported | outside_input | — | employment.company_agreement |
— | unavailable | none bundled |
tfr |
Trattamento di Fine Rapporto | core | net | native | always | pipeline | employment.tfr_treasury_fund |
— | simplified | 18 / 0 / 18 / 0 |
tfr_revaluation |
Rivalutazione del fondo TFR al 31 dicembre e imposta sostitutiva (art. 2120 c. 4 c.c.) | core | net | native | decided | decision | employment.tfr_fund |
— | implemented | 1 / 2 / 0 / 0 |
irpef |
IRPEF (sostituto d'imposta) | core | net | native | always | pipeline | — | — | simplified | 24 / 0 / 24 / 0 |
trattamento_integrativo |
Trattamento integrativo (ex bonus 80€) | core | net | native | decided | decision | — | — | simplified | 8 / 0 / 8 / 0 |
ulteriore_detrazione_lavoro |
Ulteriore detrazione lavoro dipendente | core | net | native | decided | decision | — | — | simplified | 8 / 0 / 8 / 0 |
somma_esente |
Somma esente L. 207/2024 art. 1 c. 4 | core | net | native | decided | decision | — | — | simplified | 1 / 0 / 1 / 0 |
withholding_shortfall |
Ritenute non capienti riportate ai cedolini successivi | core | net | native | decided | decision | — | — | implemented | none bundled |
shortfall_deferral |
Differimento scritto dell'IRPEF incapiente del conguaglio con interessi 0,50% mensile (art. 23 c. 3 DPR 600/1973) | core | net | native | decided | decision | — | — | implemented | none bundled |
foreign_tax_credit |
Credito imposte estere art. 165 TUIR al conguaglio | scenario | net | partial | decided | decision | — | declared_foreign_tax_at_conguaglio | simplified | none bundled |
addizionale_regionale |
Addizionale regionale IRPEF | core | net | native | decided | decision | facts.regione |
— | simplified | 1 / 0 / 1 / 0 |
addizionale_comunale |
Addizionale comunale IRPEF | core | net | native | decided | decision | facts.comune_belfiore |
— | simplified | 0 / 1 / 1 / 0 |
family_deductions |
Detrazioni familiari a carico (Art. 12 TUIR) | core | net | native | decided | decision | facts.family_composition, current_year |
children, other_dependants, sole_parent_first_child, spouse, spouse_increase_bands | simplified | 4 / 0 / 4 / 0 |
art15_deductions |
Detrazioni Art. 15 TUIR (interessi mutuo e oneri) | outside_input | net | unsupported | outside_input | — | facts.art15_expenses |
— | unavailable | none bundled |
overtime |
Lavoro straordinario e supplementare | scenario | work_rules | caller_supplied | event | event | — | ccnl_band_multiplier, caller_multiplier | caller-supplied | 93 / 293 / 7 / 0 |
night_work |
Lavoro notturno | scenario | work_rules | caller_supplied | event | event | — | — | caller-supplied | none bundled |
holiday_work |
Lavoro festivo | scenario | work_rules | caller_supplied | event | event | — | — | caller-supplied | none bundled |
shift_work |
Lavoro a turni | scenario | work_rules | caller_supplied | event | event | — | — | caller-supplied | none bundled |
standby |
Reperibilità (importi del CCNL per livello) | scenario | work_rules | native | event | event | — | — | implemented | none bundled |
absence |
Assenze ingiustificate | scenario | work_rules | caller_supplied | event | event | — | — | caller-supplied | none bundled |
leave |
Ferie e permessi ROL | outside_input | work_rules | unsupported | outside_input | — | facts.events[leave] |
— | unavailable | none bundled |
sickness |
Malattia: episodi su più periodi, carenza, fasce INPS e integrazione CCNL | scenario | work_rules | native | event | event | — | multi_period_episode, inps_bands_and_carenza, ccnl_tiers | simplified | 37 / 197 / 9 / 0 |
fringe_benefit |
Fringe benefit (informativo) | scenario | work_rules | native | event | event | — | — | simplified | 0 / 1 / 1 / 0 |
travel_allowance |
Indennità di trasferta (importo giornaliero dal chiamante, quota esente art. 51 c. 5 TUIR) | scenario | work_rules | caller_supplied | event | event | — | — | caller-supplied | none bundled |
welfare |
Welfare aziendale (informativo) | scenario | work_rules | native | event | event | — | — | implemented | none bundled |
bonus_pdr |
Premio di risultato PDR (informativo) | core | net | native | decided | decision | — | — | simplified | 0 / 1 / 1 / 0 |
rinnovo_substitute_tax |
Imposta sostitutiva aumenti da rinnovo L. 199/2025 art. 1 c. 7 | core | net | native | decided | decision | prior_year |
— | simplified | 0 / 1 / 1 / 0 |
notte_festivi_turni_substitute_tax |
Imposta sostitutiva notturno, festivo e turni L. 199/2025 art. 1 cc. 10-11 | core | net | native | decided | decision | prior_year |
— | simplified | 0 / 1 / 1 / 0 |
bilateral_funds |
Fondi bilaterali (importi dal chiamante) | scenario | work_rules | caller_supplied | event | event | — | — | caller-supplied | none bundled |
pension_fund_contribution |
Previdenza complementare CCNL su adesione e contributo contrattuale | scenario | net | partial | decided | decision | employment.pension_fund |
ccnl_fund_on_enrolment, ccnl_contractual_contribution | simplified | 39 / 115 / 25 / 0 |
assistance_contribution |
Contributi di assistenza contrattuale per ora retribuita (Cas.Sa.Colf, lavoro domestico) | core | net | native | decided | decision | facts.contributable_hours |
— | verified | 3 / 0 / 0 / 0 |
CCNL coverage¶
The same cells as the CCNL Coverage index. Limits names the
capabilities a missing note or a model limitation with a monetary impact
of the contract file lowers to partial. Rules counts the payable rules
of the contract file by provenance status: verified / derived / assumed /
missing. The assumed and missing ones are listed in the shrink-only
evidence baseline (scripts/provenance/baseline.json), so these counts
never grow.
| Core payroll path of a contract | |
|---|---|
| ✅ | Every core capability is computed from bundled rules and request facts |
| ⚠️ | The contract's data leave a core capability partial: see Limits |