Data quality
120 jobs · 88 in order · 32 blocked · 120 snapshots · clock 2026-09-18T00:00:00.000Z
Definition job-margin/2026-09-20.1
Blocked jobs
A blocked job's margin is not shown as a figure. The reason is the engine's own, and the evidence can be opened.
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
Evidence (1 rows · Context reference: 1)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field timeclock timeclock RUN-STALE-TIMECLOCK 1 14.09.2026 at 00:00 synthetic/v1 In order — - unattributed_subcontract1 unattributed subcontract cost row(s) fall in this job's period: the export left them without a job, so this job cannot be certified
Evidence (1 rows · Context reference: 1)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field erp erp SUB-UNATTRIBUTED-000001 1 17.09.2026 at 11:00 synthetic/v1 In order —
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
- missing_material6 invoice line(s) totalling 24 893,49 € on a completed job, but material cost was never posted
Evidence (6 rows · Context reference: 6)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field invoicing invoicing IL-000054 1 30.04.2025 at 15:18 synthetic/v1 In order — invoicing invoicing IL-000055 1 30.06.2026 at 18:50 synthetic/v1 In order — invoicing invoicing IL-000056 1 04.05.2025 at 21:15 synthetic/v1 In order — invoicing invoicing IL-000057 1 07.03.2025 at 01:00 synthetic/v1 In order — invoicing invoicing IL-000058 1 31.05.2026 at 19:42 synthetic/v1 In order — invoicing invoicing IL-000059 1 29.11.2025 at 17:26 synthetic/v1 In order — - missing_labour6 invoice line(s) totalling 24 893,49 € on a completed job, but hours were never posted
Evidence (6 rows · Context reference: 6)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field invoicing invoicing IL-000054 1 30.04.2025 at 15:18 synthetic/v1 In order — invoicing invoicing IL-000055 1 30.06.2026 at 18:50 synthetic/v1 In order — invoicing invoicing IL-000056 1 04.05.2025 at 21:15 synthetic/v1 In order — invoicing invoicing IL-000057 1 07.03.2025 at 01:00 synthetic/v1 In order — invoicing invoicing IL-000058 1 31.05.2026 at 19:42 synthetic/v1 In order — invoicing invoicing IL-000059 1 29.11.2025 at 17:26 synthetic/v1 In order —
- missing_material6 invoice line(s) totalling 24 893,49 € on a completed job, but material cost was never posted
- missing_material8 invoice line(s) totalling 22 451,29 € on a completed job, but material cost was never posted
Evidence (8 rows · Context reference: 8)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field invoicing invoicing IL-000070 1 07.10.2025 at 23:25 synthetic/v1 In order — invoicing invoicing IL-000071 1 28.03.2026 at 17:12 synthetic/v1 In order — invoicing invoicing IL-000072 1 28.06.2026 at 23:45 synthetic/v1 In order — invoicing invoicing IL-000073 1 27.07.2025 at 21:38 synthetic/v1 In order — invoicing invoicing IL-000074 1 15.10.2025 at 12:44 synthetic/v1 In order — invoicing invoicing IL-000075 1 23.02.2026 at 20:13 synthetic/v1 In order — invoicing invoicing IL-000076 1 11.09.2026 at 03:26 synthetic/v1 In order — invoicing invoicing IL-000077 1 28.08.2025 at 10:36 synthetic/v1 In order — - missing_labour8 invoice line(s) totalling 22 451,29 € on a completed job, but hours were never posted
Evidence (8 rows · Context reference: 8)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field invoicing invoicing IL-000070 1 07.10.2025 at 23:25 synthetic/v1 In order — invoicing invoicing IL-000071 1 28.03.2026 at 17:12 synthetic/v1 In order — invoicing invoicing IL-000072 1 28.06.2026 at 23:45 synthetic/v1 In order — invoicing invoicing IL-000073 1 27.07.2025 at 21:38 synthetic/v1 In order — invoicing invoicing IL-000074 1 15.10.2025 at 12:44 synthetic/v1 In order — invoicing invoicing IL-000075 1 23.02.2026 at 20:13 synthetic/v1 In order — invoicing invoicing IL-000076 1 11.09.2026 at 03:26 synthetic/v1 In order — invoicing invoicing IL-000077 1 28.08.2025 at 10:36 synthetic/v1 In order —
- missing_material8 invoice line(s) totalling 22 451,29 € on a completed job, but material cost was never posted
- missing_material6 invoice line(s) totalling 12 496,40 € on a completed job, but material cost was never posted
Evidence (6 rows · Context reference: 6)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field invoicing invoicing IL-000078 1 04.04.2026 at 13:47 synthetic/v1 In order — invoicing invoicing IL-000079 1 28.03.2025 at 03:04 synthetic/v1 In order — invoicing invoicing IL-000080 1 07.08.2026 at 11:20 synthetic/v1 In order — invoicing invoicing IL-000081 1 12.01.2026 at 10:38 synthetic/v1 In order — invoicing invoicing IL-000082 1 02.01.2026 at 21:21 synthetic/v1 In order — invoicing invoicing IL-000083 1 25.10.2025 at 01:16 synthetic/v1 In order — - missing_labour6 invoice line(s) totalling 12 496,40 € on a completed job, but hours were never posted
Evidence (6 rows · Context reference: 6)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field invoicing invoicing IL-000078 1 04.04.2026 at 13:47 synthetic/v1 In order — invoicing invoicing IL-000079 1 28.03.2025 at 03:04 synthetic/v1 In order — invoicing invoicing IL-000080 1 07.08.2026 at 11:20 synthetic/v1 In order — invoicing invoicing IL-000081 1 12.01.2026 at 10:38 synthetic/v1 In order — invoicing invoicing IL-000082 1 02.01.2026 at 21:21 synthetic/v1 In order — invoicing invoicing IL-000083 1 25.10.2025 at 01:16 synthetic/v1 In order —
- missing_material6 invoice line(s) totalling 12 496,40 € on a completed job, but material cost was never posted
- missing_material8 invoice line(s) totalling 17 314,21 € on a completed job, but material cost was never posted
Evidence (8 rows · Context reference: 8)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field invoicing invoicing IL-000091 1 22.06.2026 at 21:15 synthetic/v1 In order — invoicing invoicing IL-000092 1 29.07.2025 at 07:20 synthetic/v1 In order — invoicing invoicing IL-000093 1 13.04.2026 at 18:08 synthetic/v1 In order — invoicing invoicing IL-000094 1 03.05.2025 at 10:46 synthetic/v1 In order — invoicing invoicing IL-000095 1 20.02.2025 at 14:27 synthetic/v1 In order — invoicing invoicing IL-000096 1 12.07.2025 at 12:46 synthetic/v1 In order — invoicing invoicing IL-000097 1 12.11.2025 at 05:24 synthetic/v1 In order — invoicing invoicing IL-000098 1 04.04.2025 at 01:42 synthetic/v1 In order — - missing_labour8 invoice line(s) totalling 17 314,21 € on a completed job, but hours were never posted
Evidence (8 rows · Context reference: 8)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field invoicing invoicing IL-000091 1 22.06.2026 at 21:15 synthetic/v1 In order — invoicing invoicing IL-000092 1 29.07.2025 at 07:20 synthetic/v1 In order — invoicing invoicing IL-000093 1 13.04.2026 at 18:08 synthetic/v1 In order — invoicing invoicing IL-000094 1 03.05.2025 at 10:46 synthetic/v1 In order — invoicing invoicing IL-000095 1 20.02.2025 at 14:27 synthetic/v1 In order — invoicing invoicing IL-000096 1 12.07.2025 at 12:46 synthetic/v1 In order — invoicing invoicing IL-000097 1 12.11.2025 at 05:24 synthetic/v1 In order — invoicing invoicing IL-000098 1 04.04.2025 at 01:42 synthetic/v1 In order —
- missing_material8 invoice line(s) totalling 17 314,21 € on a completed job, but material cost was never posted
- missing_material4 invoice line(s) totalling 34 450,68 € on a completed job, but material cost was never posted
Evidence (4 rows · Context reference: 4)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field invoicing invoicing IL-000099 1 22.07.2025 at 15:52 synthetic/v1 In order — invoicing invoicing IL-000100 1 15.05.2026 at 14:09 synthetic/v1 In order — invoicing invoicing IL-000101 1 19.02.2025 at 00:56 synthetic/v1 In order — invoicing invoicing IL-000102 1 11.08.2026 at 09:00 synthetic/v1 In order — - missing_labour4 invoice line(s) totalling 34 450,68 € on a completed job, but hours were never posted
Evidence (4 rows · Context reference: 4)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field invoicing invoicing IL-000099 1 22.07.2025 at 15:52 synthetic/v1 In order — invoicing invoicing IL-000100 1 15.05.2026 at 14:09 synthetic/v1 In order — invoicing invoicing IL-000101 1 19.02.2025 at 00:56 synthetic/v1 In order — invoicing invoicing IL-000102 1 11.08.2026 at 09:00 synthetic/v1 In order —
- missing_material4 invoice line(s) totalling 34 450,68 € on a completed job, but material cost was never posted
- stale_importimport run RUN-00024 is failed, so the job's postings are incomplete (the policy limit of 48 h)
Evidence (1 rows · Context reference: 1)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field erp erp RUN-00024 1 18.09.2026 at 00:00 synthetic/v1 In order — - unattributed_subcontract1 unattributed subcontract cost row(s) fall in this job's period: the export left them without a job, so this job cannot be certified
Evidence (1 rows · Context reference: 1)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field erp erp SUB-UNATTRIBUTED-000001 1 17.09.2026 at 11:00 synthetic/v1 In order —
- stale_importimport run RUN-00024 is failed, so the job's postings are incomplete (the policy limit of 48 h)
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
Evidence (1 rows · Context reference: 1)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field timeclock timeclock RUN-STALE-TIMECLOCK 1 14.09.2026 at 00:00 synthetic/v1 In order —
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
Evidence (1 rows · Context reference: 1)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field timeclock timeclock RUN-STALE-TIMECLOCK 1 14.09.2026 at 00:00 synthetic/v1 In order — - unattributed_subcontract1 unattributed subcontract cost row(s) fall in this job's period: the export left them without a job, so this job cannot be certified
Evidence (1 rows · Context reference: 1)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field erp erp SUB-UNATTRIBUTED-000001 1 17.09.2026 at 11:00 synthetic/v1 In order —
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
Evidence (1 rows · Context reference: 1)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field timeclock timeclock RUN-STALE-TIMECLOCK 1 14.09.2026 at 00:00 synthetic/v1 In order —
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
Evidence (1 rows · Context reference: 1)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field timeclock timeclock RUN-STALE-TIMECLOCK 1 14.09.2026 at 00:00 synthetic/v1 In order —
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
Evidence (1 rows · Context reference: 1)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field timeclock timeclock RUN-STALE-TIMECLOCK 1 14.09.2026 at 00:00 synthetic/v1 In order —
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
Evidence (1 rows · Context reference: 1)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field timeclock timeclock RUN-STALE-TIMECLOCK 1 14.09.2026 at 00:00 synthetic/v1 In order —
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
Evidence (1 rows · Context reference: 1)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field timeclock timeclock RUN-STALE-TIMECLOCK 1 14.09.2026 at 00:00 synthetic/v1 In order —
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
Evidence (1 rows · Context reference: 1)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field timeclock timeclock RUN-STALE-TIMECLOCK 1 14.09.2026 at 00:00 synthetic/v1 In order —
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
Evidence (1 rows · Context reference: 1)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field timeclock timeclock RUN-STALE-TIMECLOCK 1 14.09.2026 at 00:00 synthetic/v1 In order —
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
Evidence (1 rows · Context reference: 1)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field timeclock timeclock RUN-STALE-TIMECLOCK 1 14.09.2026 at 00:00 synthetic/v1 In order —
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
Evidence (1 rows · Context reference: 1)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field timeclock timeclock RUN-STALE-TIMECLOCK 1 14.09.2026 at 00:00 synthetic/v1 In order —
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
Evidence (1 rows · Context reference: 1)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field timeclock timeclock RUN-STALE-TIMECLOCK 1 14.09.2026 at 00:00 synthetic/v1 In order —
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
Evidence (1 rows · Context reference: 1)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field timeclock timeclock RUN-STALE-TIMECLOCK 1 14.09.2026 at 00:00 synthetic/v1 In order —
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
Evidence (1 rows · Context reference: 1)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field timeclock timeclock RUN-STALE-TIMECLOCK 1 14.09.2026 at 00:00 synthetic/v1 In order —
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
Evidence (1 rows · Context reference: 1)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field timeclock timeclock RUN-STALE-TIMECLOCK 1 14.09.2026 at 00:00 synthetic/v1 In order — - unattributed_subcontract1 unattributed subcontract cost row(s) fall in this job's period: the export left them without a job, so this job cannot be certified
Evidence (1 rows · Context reference: 1)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field erp erp SUB-UNATTRIBUTED-000001 1 17.09.2026 at 11:00 synthetic/v1 In order —
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
Evidence (1 rows · Context reference: 1)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field timeclock timeclock RUN-STALE-TIMECLOCK 1 14.09.2026 at 00:00 synthetic/v1 In order —
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
Evidence (1 rows · Context reference: 1)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field timeclock timeclock RUN-STALE-TIMECLOCK 1 14.09.2026 at 00:00 synthetic/v1 In order — - unattributed_subcontract1 unattributed subcontract cost row(s) fall in this job's period: the export left them without a job, so this job cannot be certified
Evidence (1 rows · Context reference: 1)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field erp erp SUB-UNATTRIBUTED-000001 1 17.09.2026 at 11:00 synthetic/v1 In order —
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
Evidence (1 rows · Context reference: 1)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field timeclock timeclock RUN-STALE-TIMECLOCK 1 14.09.2026 at 00:00 synthetic/v1 In order — - unattributed_subcontract1 unattributed subcontract cost row(s) fall in this job's period: the export left them without a job, so this job cannot be certified
Evidence (1 rows · Context reference: 1)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field erp erp SUB-UNATTRIBUTED-000001 1 17.09.2026 at 11:00 synthetic/v1 In order —
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
Evidence (1 rows · Context reference: 1)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field timeclock timeclock RUN-STALE-TIMECLOCK 1 14.09.2026 at 00:00 synthetic/v1 In order —
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
Evidence (1 rows · Context reference: 1)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field timeclock timeclock RUN-STALE-TIMECLOCK 1 14.09.2026 at 00:00 synthetic/v1 In order — - unattributed_subcontract1 unattributed subcontract cost row(s) fall in this job's period: the export left them without a job, so this job cannot be certified
Evidence (1 rows · Context reference: 1)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field erp erp SUB-UNATTRIBUTED-000001 1 17.09.2026 at 11:00 synthetic/v1 In order —
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
Evidence (1 rows · Context reference: 1)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field timeclock timeclock RUN-STALE-TIMECLOCK 1 14.09.2026 at 00:00 synthetic/v1 In order — - unattributed_subcontract1 unattributed subcontract cost row(s) fall in this job's period: the export left them without a job, so this job cannot be certified
Evidence (1 rows · Context reference: 1)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field erp erp SUB-UNATTRIBUTED-000001 1 17.09.2026 at 11:00 synthetic/v1 In order —
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
Evidence (1 rows · Context reference: 1)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field timeclock timeclock RUN-STALE-TIMECLOCK 1 14.09.2026 at 00:00 synthetic/v1 In order — - unattributed_subcontract1 unattributed subcontract cost row(s) fall in this job's period: the export left them without a job, so this job cannot be certified
Evidence (1 rows · Context reference: 1)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field erp erp SUB-UNATTRIBUTED-000001 1 17.09.2026 at 11:00 synthetic/v1 In order —
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
Evidence (1 rows · Context reference: 1)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field timeclock timeclock RUN-STALE-TIMECLOCK 1 14.09.2026 at 00:00 synthetic/v1 In order —
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
Evidence (1 rows · Context reference: 1)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field timeclock timeclock RUN-STALE-TIMECLOCK 1 14.09.2026 at 00:00 synthetic/v1 In order — - unattributed_subcontract1 unattributed subcontract cost row(s) fall in this job's period: the export left them without a job, so this job cannot be certified
Evidence (1 rows · Context reference: 1)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field erp erp SUB-UNATTRIBUTED-000001 1 17.09.2026 at 11:00 synthetic/v1 In order —
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
Evidence (1 rows · Context reference: 1)
Context referenceContext rows — they show the job existsThese rows show that the job exists and was billed. They did not produce the amount, so they do not explain it.
Table Source Row Version Time (UTC) Mapping Quality Field timeclock timeclock RUN-STALE-TIMECLOCK 1 14.09.2026 at 00:00 synthetic/v1 In order —
- stale_importimport run RUN-STALE-TIMECLOCK finished 96,00 h before the clock, over the policy limit of 48 h
Import freshness
The age is not computed in this view: the engine decides it, comparing the import run's completion with the job's as-of clock and recording the result as a blocking finding. Threshold: 48 h.
| Run | State | Started (UTC) | Finished (UTC) | Unmatched rows | Source |
|---|---|---|---|---|---|
| RUN-OPEN-INVOICING | Succeeded ok | 18.10.2026 at 00:00 | — | 0 | RUN-OPEN-INVOICING v1 |
| RUN-00024 | Failed failed | 17.09.2026 at 23:50 | 18.09.2026 at 00:00 | 0 | RUN-00024 v1 |
| RUN-STALE-TIMECLOCK | Succeeded ok | 13.09.2026 at 23:50 | 14.09.2026 at 00:00 | 0 | RUN-STALE-TIMECLOCK v1 |
| RUN-00023 | Succeeded ok | 17.08.2026 at 23:50 | 18.08.2026 at 00:00 | 0 | RUN-00023 v1 |
| RUN-00022 | Succeeded ok | 17.07.2026 at 23:50 | 18.07.2026 at 00:00 | 0 | RUN-00022 v1 |
| RUN-00021 | Succeeded ok | 17.06.2026 at 23:50 | 18.06.2026 at 00:00 | 0 | RUN-00021 v1 |
| RUN-00020 | Succeeded ok | 17.05.2026 at 23:50 | 18.05.2026 at 00:00 | 0 | RUN-00020 v1 |
| RUN-00019 | Succeeded ok | 17.04.2026 at 23:50 | 18.04.2026 at 00:00 | 0 | RUN-00019 v1 |
| RUN-00018 | Succeeded ok | 17.03.2026 at 23:50 | 18.03.2026 at 00:00 | 0 | RUN-00018 v1 |
| RUN-00017 | Succeeded ok | 17.02.2026 at 23:50 | 18.02.2026 at 00:00 | 0 | RUN-00017 v1 |
| RUN-00016 | Succeeded ok | 17.01.2026 at 23:50 | 18.01.2026 at 00:00 | 0 | RUN-00016 v1 |
| RUN-00015 | Succeeded ok | 17.12.2025 at 23:50 | 18.12.2025 at 00:00 | 0 | RUN-00015 v1 |
| RUN-00014 | Succeeded ok | 17.11.2025 at 23:50 | 18.11.2025 at 00:00 | 0 | RUN-00014 v1 |
| RUN-00013 | Succeeded ok | 17.10.2025 at 23:50 | 18.10.2025 at 00:00 | 0 | RUN-00013 v1 |
| RUN-00012 | Succeeded ok | 17.09.2025 at 23:50 | 18.09.2025 at 00:00 | 0 | RUN-00012 v1 |
| RUN-00011 | Succeeded ok | 17.08.2025 at 23:50 | 18.08.2025 at 00:00 | 0 | RUN-00011 v1 |
| RUN-00010 | Succeeded ok | 17.07.2025 at 23:50 | 18.07.2025 at 00:00 | 0 | RUN-00010 v1 |
| RUN-00009 | Succeeded ok | 17.06.2025 at 23:50 | 18.06.2025 at 00:00 | 0 | RUN-00009 v1 |
| RUN-00008 | Succeeded ok | 17.05.2025 at 23:50 | 18.05.2025 at 00:00 | 0 | RUN-00008 v1 |
| RUN-00007 | Succeeded ok | 17.04.2025 at 23:50 | 18.04.2025 at 00:00 | 0 | RUN-00007 v1 |
| RUN-00006 | Succeeded ok | 17.03.2025 at 23:50 | 18.03.2025 at 00:00 | 0 | RUN-00006 v1 |
| RUN-00005 | Succeeded ok | 17.02.2025 at 23:50 | 18.02.2025 at 00:00 | 0 | RUN-00005 v1 |
| RUN-00004 | Succeeded ok | 17.01.2025 at 23:50 | 18.01.2025 at 00:00 | 0 | RUN-00004 v1 |
| RUN-00003 | Succeeded ok | 17.12.2024 at 23:50 | 18.12.2024 at 00:00 | 0 | RUN-00003 v1 |
| RUN-00002 | Succeeded ok | 17.11.2024 at 23:50 | 18.11.2024 at 00:00 | 0 | RUN-00002 v1 |
| RUN-00001 | Succeeded ok | 17.10.2024 at 23:50 | 18.10.2024 at 00:00 | 0 | RUN-00001 v1 |
Unmatched rows
| Table | Reason | Details | Row | Time (UTC) |
|---|---|---|---|---|
| subcontract_cost | no_job_allocation | subcontract_cost row of 123456 minor units names no job, and carries no operation or quote line that would attribute it | SUB-UNATTRIBUTED-000001 v1 | 17.09.2026 at 11:00 |
Reconciliation differences
Zero-row reconciliations are left out: they say the drivers account for the whole difference. The rows shown are the ones where a difference was left over — or where a cost row was left without an owner. The rows are read from each job's current snapshot; there are no superseded difference rows.
- Unattributed cost1 cost row(s) on JOB-0042 worth 229,79 € point at operations no operation of this job carries, so no driver can place them (rows OVC-900000)
- Unexplained−229,79 € of the difference between the estimated and the actual margin of JOB-0042 is placed by no driver, above the 105,41 € tolerance: the job does not reconcile
other_variable_cost OVC-900000 v1
- Unattributed cost1 cost row(s) on JOB-0043 worth 1 052,57 € point at operations no operation of this job carries, so no driver can place them (rows OVC-900001)
- Unexplained−1 052,57 € of the difference between the estimated and the actual margin of JOB-0043 is placed by no driver, above the 419,35 € tolerance: the job does not reconcile
other_variable_cost OVC-900001 v1
- Unattributed cost1 cost row(s) on JOB-0044 worth 203,92 € point at operations no operation of this job carries, so no driver can place them (rows OVC-900002)
- Unexplained−203,92 € of the difference between the estimated and the actual margin of JOB-0044 is placed by no driver, above the 76,95 € tolerance: the job does not reconcile
other_variable_cost OVC-900002 v1
- Rounding difference0,01 € of the difference between the estimated and the actual margin of JOB-0066 is inside the 0,04 € the source data's own rounding accounts for: a rounding difference, not an amount no driver can place (tolerance 50,00 €)
- Rounding difference0,01 € of the difference between the estimated and the actual margin of JOB-0067 is inside the 0,04 € the source data's own rounding accounts for: a rounding difference, not an amount no driver can place (tolerance 293,89 €)
- Rounding difference0,04 € of the difference between the estimated and the actual margin of JOB-0085 is inside the 0,04 € the source data's own rounding accounts for: a rounding difference, not an amount no driver can place (tolerance 102,23 €)
- Rounding difference0,04 € of the difference between the estimated and the actual margin of JOB-0086 is inside the 0,04 € the source data's own rounding accounts for: a rounding difference, not an amount no driver can place (tolerance 139,92 €)
- Rounding difference0,04 € of the difference between the estimated and the actual margin of JOB-0087 is inside the 0,04 € the source data's own rounding accounts for: a rounding difference, not an amount no driver can place (tolerance 477,46 €)
- Rounding difference0,04 € of the difference between the estimated and the actual margin of JOB-0088 is inside the 0,04 € the source data's own rounding accounts for: a rounding difference, not an amount no driver can place (tolerance 185,19 €)
Finding coverage
79 findings on the current inputs · every finding opens at least one source row.
The thresholds in force
Read from the file config/policy.json. The thresholds are the ones the rules read: no figure is a constant in the engine.
The stored figures were computed under policy 3973919ae0b9, the same as the file's. Last computed 21.09.2026 at 14:48.
| Switch | Value |
|---|---|
| Allows valuation at purchase price material_valuation.allow_purchase_price | No |
| Requires a fully loaded labour rate labour_rate.require_fully_loaded | Yes |
| Rule | Thresholds |
|---|---|
| Margin below threshold margin_below_threshold |
|
| Labour hours overrun labour_hours_overrun |
|
| Material price increase material_price_creep |
|
| Unallocated labour unallocated_labour |
|
| The job cannot be reported job_data_quality |
|
| Rework rework_operations |
|
| Unallocated credit unallocated_credit |
|
| Unreconciled difference reconciliation_residual |
|
| Stale or incomplete import stale_or_incomplete_import |
|
Findings: exception queue. The view is read-only and recomputes no figure.