← Exception queue

JOB-0049Sampo Metalli Oy

Customer CUS-009 · Completed · opened 02.07.2025 at 02:50 · completed 11.08.2025 at 02:50

Work centres: CNC-1, CNC-2, WELD-1

4 374,95 €
21,00 %
In order

No blocking findings: the margin is reportable.

Quote basis and actual

ItemQuote basisActual
Revenue (allocated)21 415,38 €20 837,16 €
Material9 914,23 €8 896,74 €
Labour74,19 h × 68,16 €/h7 130,24 €
Subcontract0,00 €0,00 €
Other variable costs435,23 €435,23 €
Margin4 374,95 €

The estimated margin is not a stored figure: the quote basis stores the items, and the bridge sets out the difference between estimated and actual line by line.

Snapshot computed 21.09.2026 at 14:48 · definition job-margin/2026-09-20.1 · inputs 72d10da44272

The margin bridge

The bridge explains the arithmetic difference: each line says how much of the gap between the estimated and the actual margin that driver accounts for. It does not establish a cause. Why a price or an hours figure moved is a different question, and this view does not answer it.

  • 1Revenue differencerevenue_varianceCausal−578,22 €
    Evidence (6 rows · Causal reference: 6)
    Causal referenceThe rows that produced the amount

    These rows produced the amount: every figure is computed from these rows.

    TableSourceRowVersionTime (UTC)MappingQualityField
    Invoice line invoice_lineinvoicingIL-000296112.11.2025 at 10:44synthetic/v1In order
    Invoice line invoice_lineinvoicingIL-000297121.10.2025 at 08:57synthetic/v1In order
    Invoice line invoice_lineinvoicingIL-000298127.11.2025 at 08:50synthetic/v1In order
    Invoice line invoice_lineinvoicingIL-000299108.01.2026 at 22:18synthetic/v1In order
    Credit line credit_lineinvoicingCR-00035126.07.2026 at 02:50synthetic/v1In order
    Credit line credit_lineinvoicingCR-00036114.08.2026 at 04:54synthetic/v1In order
  • 2Material quantity differencematerial_quantity_varianceCausal+694,83 €
    Evidence (6 rows · Causal reference: 6)
    Causal referenceThe rows that produced the amount

    These rows produced the amount: every figure is computed from these rows.

    TableSourceRowVersionTime (UTC)MappingQualityField
    Material consumption material_consumptionerpMC-000405108.08.2025 at 19:12synthetic/v1In orderqty
    Material consumption material_consumptionerpMC-000406131.07.2025 at 03:33synthetic/v1In orderqty
    Material consumption material_consumptionerpMC-000407109.08.2025 at 08:03synthetic/v1In orderqty
    Material consumption material_consumptionerpMC-000408110.08.2025 at 23:29synthetic/v1In orderqty
    Material consumption material_consumptionerpMC-000409131.07.2025 at 19:06synthetic/v1In orderqty
    Material consumption material_consumptionerpMC-000410107.08.2025 at 23:29synthetic/v1In orderqty
  • 3Material price differencematerial_price_varianceCausal+322,66 €
    Evidence (6 rows · Causal reference: 6)
    Causal referenceThe rows that produced the amount

    These rows produced the amount: every figure is computed from these rows.

    TableSourceRowVersionTime (UTC)MappingQualityField
    Material consumption material_consumptionerpMC-000405108.08.2025 at 19:12synthetic/v1In orderunitCost
    Material consumption material_consumptionerpMC-000406131.07.2025 at 03:33synthetic/v1In orderunitCost
    Material consumption material_consumptionerpMC-000407109.08.2025 at 08:03synthetic/v1In orderunitCost
    Material consumption material_consumptionerpMC-000408110.08.2025 at 23:29synthetic/v1In orderunitCost
    Material consumption material_consumptionerpMC-000409131.07.2025 at 19:06synthetic/v1In orderunitCost
    Material consumption material_consumptionerpMC-000410107.08.2025 at 23:29synthetic/v1In orderunitCost
  • 4Labour hours differencelabour_hours_varianceCausal−2 073,43 €
    Evidence (21 rows · Causal reference: 21)
    Causal referenceThe rows that produced the amount

    These rows produced the amount: every figure is computed from these rows.

    TableSourceRowVersionTime (UTC)MappingQualityField
    Time entry time_entrytimeclockTE-000717128.07.2025 at 02:10synthetic/v1In orderhours
    Time entry time_entrytimeclockTE-000718105.08.2025 at 22:59synthetic/v1In orderhours
    Time entry time_entrytimeclockTE-000719110.08.2025 at 14:27synthetic/v1In orderhours
    Time entry time_entrytimeclockTE-000720102.08.2025 at 03:13synthetic/v1In orderhours
    Time entry time_entrytimeclockTE-000721113.07.2025 at 12:32synthetic/v1In orderhours
    Time entry time_entrytimeclockTE-000722120.07.2025 at 20:34synthetic/v1In orderhours
    Time entry time_entrytimeclockTE-000723127.07.2025 at 16:09synthetic/v1In orderhours
    Time entry time_entrytimeclockTE-000724129.07.2025 at 07:54synthetic/v1In orderhours
    Time entry time_entrytimeclockTE-000725112.07.2025 at 07:47synthetic/v1In orderhours
    Time entry time_entrytimeclockTE-000726102.08.2025 at 01:32synthetic/v1In orderhours
    Time entry time_entrytimeclockTE-000727124.07.2025 at 23:20synthetic/v1In orderhours
    Time entry time_entrytimeclockTE-000728123.07.2025 at 03:45synthetic/v1In orderhours
    Time entry time_entrytimeclockTE-000729116.07.2025 at 12:02synthetic/v1In orderhours
    Time entry time_entrytimeclockTE-000730110.07.2025 at 09:12synthetic/v1In orderhours
    Time entry time_entrytimeclockTE-000731102.08.2025 at 09:21synthetic/v1In orderhours
    Time entry time_entrytimeclockTE-900070109.07.2025 at 09:06synthetic/v1In orderhours
    Time entry time_entrytimeclockTE-900071124.07.2025 at 08:09synthetic/v1In orderhours
    Time entry time_entrytimeclockTE-900072118.07.2025 at 12:22synthetic/v1In orderhours
    Time entry time_entrytimeclockTE-900073127.07.2025 at 01:08synthetic/v1In orderhours
    Time entry time_entrytimeclockTE-900074108.08.2025 at 11:12synthetic/v1In orderhours
    Time entry time_entrytimeclockTE-900075116.07.2025 at 17:30synthetic/v1In orderhours
  • 5Labour rate differencelabour_rate_varianceCausal−0,02 €
    Evidence (21 rows · Causal reference: 21)
    Causal referenceThe rows that produced the amount

    These rows produced the amount: every figure is computed from these rows.

    TableSourceRowVersionTime (UTC)MappingQualityField
    Time entry time_entrytimeclockTE-000717128.07.2025 at 02:10synthetic/v1In orderrate
    Time entry time_entrytimeclockTE-000718105.08.2025 at 22:59synthetic/v1In orderrate
    Time entry time_entrytimeclockTE-000719110.08.2025 at 14:27synthetic/v1In orderrate
    Time entry time_entrytimeclockTE-000720102.08.2025 at 03:13synthetic/v1In orderrate
    Time entry time_entrytimeclockTE-000721113.07.2025 at 12:32synthetic/v1In orderrate
    Time entry time_entrytimeclockTE-000722120.07.2025 at 20:34synthetic/v1In orderrate
    Time entry time_entrytimeclockTE-000723127.07.2025 at 16:09synthetic/v1In orderrate
    Time entry time_entrytimeclockTE-000724129.07.2025 at 07:54synthetic/v1In orderrate
    Time entry time_entrytimeclockTE-000725112.07.2025 at 07:47synthetic/v1In orderrate
    Time entry time_entrytimeclockTE-000726102.08.2025 at 01:32synthetic/v1In orderrate
    Time entry time_entrytimeclockTE-000727124.07.2025 at 23:20synthetic/v1In orderrate
    Time entry time_entrytimeclockTE-000728123.07.2025 at 03:45synthetic/v1In orderrate
    Time entry time_entrytimeclockTE-000729116.07.2025 at 12:02synthetic/v1In orderrate
    Time entry time_entrytimeclockTE-000730110.07.2025 at 09:12synthetic/v1In orderrate
    Time entry time_entrytimeclockTE-000731102.08.2025 at 09:21synthetic/v1In orderrate
    Time entry time_entrytimeclockTE-900070109.07.2025 at 09:06synthetic/v1In orderrate
    Time entry time_entrytimeclockTE-900071124.07.2025 at 08:09synthetic/v1In orderrate
    Time entry time_entrytimeclockTE-900072118.07.2025 at 12:22synthetic/v1In orderrate
    Time entry time_entrytimeclockTE-900073127.07.2025 at 01:08synthetic/v1In orderrate
    Time entry time_entrytimeclockTE-900074108.08.2025 at 11:12synthetic/v1In orderrate
    Time entry time_entrytimeclockTE-900075116.07.2025 at 17:30synthetic/v1In orderrate
  • 6Subcontract differencesubcontract_varianceNo claim0,00 €

    No claim A zero line points at no source rows: it claims nothing, so no evidence is to be expected.

  • 7Rework differencerework_varianceNo claim0,00 €

    No claim A zero line points at no source rows: it claims nothing, so no evidence is to be expected.

  • 8Other variable cost differenceother_variable_varianceNo claim0,00 €

    No claim A zero line points at no source rows: it claims nothing, so no evidence is to be expected.

  • 9Unexplained differenceresidual_unexplainedNo claim0,00 €

    No claim A zero line points at no source rows: it claims nothing, so no evidence is to be expected.

Reconciliation0,00 €tolerance 104,19 €
  • ReconcilesJOB-0049 reconciles: the drivers account for the whole of the difference between the estimated and the actual margin (residual 0,00 €, tolerance 104,19 €)
The stored note

tolerance 10419 minor units; tasmaa: JOB-0049 reconciles: the drivers account for the whole of the difference between the estimated and the actual margin (residual 0,00 €, tolerance 104,19 €)

The bridge is computed from the stored snapshot. The next step is always the same: open the line's evidence and check the source rows.

Findings (1)Margin 4 374,95 € · 21,00 %

  • Medium mediumLabour hours overrunR22 073,43 €

    Quoted-scope labour on JOB-0049 exceeds the allowed factor: 2 073,43 € at the estimated rate.

    The job is in order · work centres CNC-1, CNC-2, WELD-1 · version job-margin-rules/2026-09-20.1 · computed 21.09.2026 at 14:48

    Evidence (21 rows · Causal reference: 21)
    Causal referenceThe rows that produced the amount

    These rows produced the amount: every figure is computed from these rows.

    TableSourceRowVersionTime (UTC)MappingQualityField
    Time entry time_entrytimeclockTE-000717128.07.2025 at 02:10synthetic/v1In orderhours
    Time entry time_entrytimeclockTE-000718105.08.2025 at 22:59synthetic/v1In orderhours
    Time entry time_entrytimeclockTE-000719110.08.2025 at 14:27synthetic/v1In orderhours
    Time entry time_entrytimeclockTE-000720102.08.2025 at 03:13synthetic/v1In orderhours
    Time entry time_entrytimeclockTE-000721113.07.2025 at 12:32synthetic/v1In orderhours
    Time entry time_entrytimeclockTE-000722120.07.2025 at 20:34synthetic/v1In orderhours
    Time entry time_entrytimeclockTE-000723127.07.2025 at 16:09synthetic/v1In orderhours
    Time entry time_entrytimeclockTE-000724129.07.2025 at 07:54synthetic/v1In orderhours
    Time entry time_entrytimeclockTE-000725112.07.2025 at 07:47synthetic/v1In orderhours
    Time entry time_entrytimeclockTE-000726102.08.2025 at 01:32synthetic/v1In orderhours
    Time entry time_entrytimeclockTE-000727124.07.2025 at 23:20synthetic/v1In orderhours
    Time entry time_entrytimeclockTE-000728123.07.2025 at 03:45synthetic/v1In orderhours
    Time entry time_entrytimeclockTE-000729116.07.2025 at 12:02synthetic/v1In orderhours
    Time entry time_entrytimeclockTE-000730110.07.2025 at 09:12synthetic/v1In orderhours
    Time entry time_entrytimeclockTE-000731102.08.2025 at 09:21synthetic/v1In orderhours
    Time entry time_entrytimeclockTE-900070109.07.2025 at 09:06synthetic/v1In orderhours
    Time entry time_entrytimeclockTE-900071124.07.2025 at 08:09synthetic/v1In orderhours
    Time entry time_entrytimeclockTE-900072118.07.2025 at 12:22synthetic/v1In orderhours
    Time entry time_entrytimeclockTE-900073127.07.2025 at 01:08synthetic/v1In orderhours
    Time entry time_entrytimeclockTE-900074108.08.2025 at 11:12synthetic/v1In orderhours
    Time entry time_entrytimeclockTE-900075116.07.2025 at 17:30synthetic/v1In orderhours