Skip to content

Verdict YAML Reference

Field-level specification for verdict YAML definitions.

PropertyValue
File locationverdicts/verdict_*.yaml
ID ruleverdict_id must match filename (without .yaml)
Validatorpython3 scripts/verdictcheck.py
Compilerpython3 scripts/verdictcompile.py
Compiler dry-runpython3 scripts/verdictcompile.py --check
FieldTypeRequiredValid values
verdict_idstringyesMust match filename
versionstringyesSemantic version (e.g. "1.0")
thesis_idstringyesMust reference an existing theses/*.yaml
root_cause_categorystringyesSee Root Cause Categories
root_cause_idstringyesFreeform identifier for the specific root cause
conditionslistyesMin 1 entry; see Conditions Block
confidencedictyesSee Confidence Block
explanationdictyes{en, de, fr} tri-lingual text
recommendationdictyes{en, de, fr} tri-lingual text
created_atstringnoISO date
modified_atstringnoISO date
CategoryDescription
process_failureBroken or incomplete business process
system_failureIT system malfunction or integration gap
data_qualityStale, missing, or inconsistent master data
behavioralHuman behavior patterns (workarounds, skipped steps)
structuralOrganizational or contractual misalignment
externalExternal factors (supplier, regulatory)

Each entry in the conditions list:

FieldTypeRequiredDescription
signal_idstringyesMust reference an existing signals/*.yaml
fieldstringyesAggregate field from signal findings (e.g. finding_count, money_at_risk)
abovenumberyesNumeric threshold

Rules:

  • All conditions must be met (AND logic) for the verdict to fire.
  • All referenced signal_id values must have a corresponding YAML file in signals/.
  • The verdict only evaluates when its parent thesis has status confirmed.
FieldTypeRequiredValid values
basefloatyes0.0-1.0
boost_iflistnoSee below

Each boost_if entry:

FieldTypeRequiredValid values
signal_idstringyesMust reference an existing signals/*.yaml
fieldstringyesAggregate field from signal findings
abovenumberyesNumeric threshold
boostfloatyes0.0-0.3

Rules:

  • base + sum(all boosts) should not exceed 1.0.
  • Each individual boost must be between 0.0 and 0.3.

Each verdict produces one row per tenant in verdict_findings (only for confirmed theses where all conditions are met):

ColumnTypeDescription
verdict_idstringVerdict identifier
tenant_idstringTenant identifier
thesis_idstringParent thesis identifier
root_cause_categorystringCategory from the YAML
root_cause_idstringSpecific root cause identifier
confidencefloatbase + applicable boosts
finding_countintegerTotal findings across condition signals
money_at_risknumericSum of money_at_risk from condition signals
thesis_evidence_scorefloatEvidence score from the parent thesis
verdict_id: verdict_billing_workflow_gap
version: "1.0"
thesis_id: thesis_unbilled_services
root_cause_category: process_failure
root_cause_id: billing_step_skipped
conditions:
- signal_id: signal_revenue_leakage
field: finding_count
above: 10
- signal_id: signal_billing_completeness
field: money_at_risk
above: 5000
confidence:
base: 0.6
boost_if:
- signal_id: signal_revenue_leakage
field: money_at_risk
above: 50000
boost: 0.2
explanation:
en: "A gap in the billing workflow causes services to be delivered without triggering an invoice."
de: "Eine Luecke im Verrechnungsprozess fuehrt dazu, dass Leistungen ohne Rechnungsstellung erbracht werden."
fr: "Une lacune dans le processus de facturation fait que des prestations sont fournies sans declenchement de facture."
recommendation:
en: "Implement a mandatory billing check before case closure in the ERP system."
de: "Einen obligatorischen Verrechnungscheck vor Fallabschluss im ERP-System einrichten."
fr: "Mettre en place un controle de facturation obligatoire avant la cloture du cas dans le systeme ERP."
jazzisnow jinflow is a jazzisnow product
v0.64.7 · built 2026-09-20 19:48 UTC