Skip to content

Rules

Specifications, not weights

Each rule is a written condition with a version. A finding names the rule and the version that produced it, and a change to any rule is visible in the rule-set version stamped on the next run.

The rule set in this build

RuleNameCategorySeverityVersion
RULE-IL-001Allocation number for input VAT deductionAllocation numbersCritical1.0.0
RULE-IL-002VAT rate in force on the transaction dateVATCritical1.0.0
RULE-WHT-001Withholding above the highest rate the regulations setVATAnomaly2.0.0
RULE-WHT-002Withholding recorded on a document the uniform file reserves for receiptsVATAnomaly1.0.0
RULE-001Duplicate supplier invoiceDuplicationCritical1.2.0
RULE-003Repeated journal lineDuplicationReview1.0.1
RULE-004VAT arithmetic inconsistencyVATCritical2.0.0
RULE-031Non-standard VAT rateVATAnomaly1.1.0
RULE-012Missing allocation numberAllocation numbersCritical1.3.0
RULE-013Malformed allocation numberAllocation numbersAnomaly1.1.0
RULE-007Invoice sequence gapInvoice integrityReview1.4.0
RULE-009Credit note without matching invoiceInvoice integrityAnomaly1.0.0
RULE-017Material manual journal at period endJournal integrityAnomaly1.5.0
RULE-021Dormant account reactivatedJournal integrityReview1.0.2
RULE-023Document dated outside the periodPeriod controlsReview1.2.0
RULE-026Negative expense postingPeriod controlsReview1.0.0
RULE-034Counterparty identity conflictCounterparty identityAnomaly1.0.0
RULE-F-001Manual journal at period end, large against the client's own journalsJournal integrityAnomaly1.0.0
RULE-F-002Counterparty appears for the first time and is immediately materialCounterparty identityReview1.0.0
RULE-F-003Account dormant in the previous period becomes materially activeJournal integrityReview1.0.0
RULE-F-004The same period-end adjustment appears in consecutive periodsJournal integrityReview1.0.0

Versioning

  • A rule's version changes whenever its conditions change.
  • A finding stores the rule version it was produced by, so findings from an earlier run remain attributable to the specification that raised them.
  • The rule-set version on a run is derived from every enabled rule's id and version, so enabling or disabling a rule also changes it.

Configuration

Thresholds are configuration, editable per workspace and shown next to the findings they produced. When the configuration differs from the run on screen, VLDTION shows the difference and offers to re-validate; review notes and statuses are carried forward.

SettingDefault in this build
Standard VAT rate18%
VAT rounding tolerance₪1.00
Allocation threshold₪20,000.00
Journal materiality₪100,000.00
Period-end window3 days
Dormancy window9 months

These defaults belong to development rules

These thresholds configure VLDTION’s own development checks. They are not statutory requirements, and VLDTION does not present them as such. The verified Israeli rules do not take their rates or thresholds from here: RULE-IL-001 and RULE-IL-002 hold dated tables taken from the source documents themselves, so a configuration change cannot quietly rewrite what the law said on a given date. RULE-IL-002 reads one setting, the rounding tolerance applied when comparing computed VAT to the figure in the file. See Israeli rules.

What a rule depends on

Every rule declares the fields it needs. When a source format does not carry one of them, the engine does not run the rule: it reports insufficient data for those records and names the missing field. A cross-period rule declares that it needs the previous period, and reports the same when the workspace holds none. This is why a VAT rule against an export with no VAT column reports nothing rather than passing everything.

Adding a rule

A rule is a file in the domain that implements the rule interface and is listed in the rule registry. It is then evaluated, counted, charted and rendered everywhere without further wiring, including in the evidence export, because a rule produces its own evidence attributes and trail.