Skip to content
Profit OS · Manufacturing Profitability Intelligence

The totals looked profitable — yet some orders were sold at a loss

We stop manufacturing losses before they lock in.

A loss here is not a defect or an accident — it is the moment revenue lands but profit leaks. We catch where cost, inventory, equipment, quality or production drifts from your own baseline, flag it, and give people time to check and act.
For manufacturers whose cost swings with raw materials, FX and yield, or whose centre stock leaks into scrap and freight — start with one plant, one loss domain, in 4–6 weeks.

Try the 1-minute fit check first

The loss is made at step 1 — but you only see it from step 4

  1. 1 · Set the baseline

    Standard cost, quoted price, allocation rules

    Where the baseline starts drifting from reality. Nothing has happened yet.

  2. 2 · Act on it

    Orders, purchasing, production, shipping

    Decisions repeat on the drifted baseline. Up to here it can still be changed.

  3. 3 · It locks in

    Dispatch, settlement, month-end close

    The loss hardens into the books. Past this line it cannot be undone.

  4. 4 · You find it

    After the close

    Usually the first time it is visible. This is the stretch ERP and BI show you.

  5. 5 · It repeats

    The next quote goes out at the same price

    The baseline has not changed, so the same loss returns next cycle.

ERP and BI open step 4. Profit OS opens the stretch between step 1 and step 3 — while people can still do something about it.

What the loss is worth

What a prevented loss is worth in revenue

Cut a loss and almost all of it lands in operating profit. Making the same profit through sales takes far more revenue. Put your own numbers in.

×100M
%

To make the same profit through sales

19.6×100M

That is about 20× the loss, in extra revenue

Defaults are operating margins from the Bank of Korea’s 2024 Financial Statement Analysis (manufacturing 5.1%, food 3.8%, printing 3.7%). A loss here means money you can prevent, not money recovered. Actual savings depend on your situation and the actions you take.

A food-manufacturing enterprise, one business unit · 2026

Inside one business unit, the money that leaked where no one was looking

Where money leaksBeforeNowPreventable, per year (scenario)
Money lost by finding out lateLearned only after the loss was locked inFlagged daily, before it locks inKRW 13.0M
Money lost by not finding it at allPeople only looked at the top 5 itemsAll 899 items scanned · about 17 more found every monthKRW 60.0M
Money spent just to find it3 hours per cause · 30 minutes to check stock5 minutesKRW 38.5M
TotalOne business unit · about KRW 9.3M a monthabout KRW 110M

Hours and counts are measured; the amounts multiply them by conservative assumptions (labour cost, loss per case) and are scenarios. This is preventable money, not money recovered. The company is anonymised.

These numbers change before your next quote, before your next order.

Signal

Start by seeing which product family got flagged

Once the close is done, how much each product family moved sits on one screen.
You don’t read all of it — only what the rules flagged.

Month-end briefingFictional Manufacturing Co. · Plant 1 · 2026-06 close
Read-OnlyExample — fictional data

2026-06 — which product family got flagged?

Total cost change +KRW 279.09M · 5 product familiesPublished 4/5 · 1 blocked3 sources connected · 2 not loaded
  • Largest moveFrozen food+KRW 154.0M · +KRW 1,539/kg per unit
  • Over threshold3Δ ≥ +2.0%p → analyse
  • Publication blocked1Seasoning
  • Families in scope5As of the 2026-06 close
  • Items held open11Held at the release gate
Flagged3Of five families, those the rule (Δ ≥ +2.0%p → analyse) flagged or that are blocked from publishing
Product familyCost change · vs last monthSize of moveUnit costCost ratio (ref.)Verdict · top driver
1+KRW 154.0MKRW 16,915/kg+KRW 1,53968.4%+4.3%pOver thresholdRaw-material price
2+KRW 70.19MKRW 16,149/kg+KRW 71069.5%+3.5%pPublication blockedKRW 45,000,000 unexplained
3+KRW 68.3MKRW 16,263/kg+KRW 73272.1%+3.8%pOver thresholdRaw-material price

Click a row and the Decision Brief below switches to that family.

This is the real product screen. The figures are fictional data, and every number on it is the result of SQL run against the connected sources.

Explanation · evidence

Not one number —
the items that made that number

Pick a product family and the cost change splits by factor. Each line carries its formula and the owning department, and the screen checks that the total matches the cost change.

Decision BriefFrozen food · A · 2026-06 close · vs last month
Read-OnlyExample — fictional data

Why frozen-food cost rose in 2026-06+KRW 154.0M

  • Cost change+KRW 154.0MKRW 2.308B → 2.462B
  • Unit costKRW 16,915/kgLast month KRW 15,376 · +10.0%
  • Output145,552kgLast month 150,100 kg · −3.0%
  • Yield rate92.8%Last month 95.0%
Contribution to changeThe KRW 154,000,000 cost change, split by axis
Why it changedAmountShareCost-ratio effectOwnerVerified
KRW 83,504,500+53%+2.3%pPurchasingVerified
KRW 49,495,500+33%+1.4%pProductionProvisional
−KRW 47,873,684-30%−1.3%pProduction controlProvisional
KRW 36,873,684+23%+1.0%pProductionProvisional
KRW 32,000,000+21%+0.9%pCost accountingProvisional
TotalKRW 154,000,000+100%+4.3%pChecked against the cost change
Residual KRW 0

The total reconciles. The five axes add up to KRW 154.0M — the same as the cost change. The tolerance is ±0.05%p; beyond it we do not invent an “other” bucket, we simply do not publish the Brief.

Source vouchers · 5Largest RM-X variances
  • PO-2606-001S-04212,000kgKRW 10,850 → 12,500+15.2%
  • PO-2606-002S-04210,000kgKRW 10,570 → 12,000+13.5%
  • PO-2606-004S-0189,000kgKRW 8,900 → 10,000+12.4%
  • … 2 more
SQL executed · 5No number on this screen was typed in by hand
SELECT material_code,
       SUM(qty_kg * (unit_price
           - prev_unit_price)) AS contrib
FROM   purchase
WHERE  period = ? AND product_group = ?
GROUP  BY material_code
ORDER  BY contrib DESC

Click an axis and its evidence changes — currently “Price axis”.

A candidate cause is not a verdict. This product answers as far as the axis points; the judgement after that is yours.

Inventory loss · the same five steps

When centre stock drifts outside the usual range, a transfer candidate comes first

The same way as cost, inventory is logged as signal, then explanation, then evidence, then action.

Inventory transfer recommendationsLarge food manufacturer · N distribution centres · as of 2026-09-02
Read-OnlyExample — fictional data

Today — which centre stock is outside the usual range?

Days-of-stock outliers3centresOutside the usual 4-7 day range
Near-expiry12SKUs4,800 boxes
Transfer candidates3Nearest plant preferred
Pending approval3Needs an SCM owner to check
FlaggedRows where days-of-stock is outside the usual range, or stock is flagged as near-expiry
CentreSKUStock (boxes)Days of stockUsual rangeVerdict
Centre ASKU-1181,2402.1 days4-7 daysShort
Centre BSKU-1189,86019.5 days4-7 daysExcess
Centre CSKU-0423,300D-6Near-expiry
Transfer candidates3 candidates · pending owner approval
  • Centre B → Centre A · SKU-118 · 2,400 boxesMoved from a neighbouring centre instead of the nearest plant · within capacity (40 pallets) · evidence: centre daily log 9/2 · STO balance
    Pending owner approval
  • Centre C → Centre A · SKU-042 · 1,100 boxesClears near-expiry stock first · within capacity (18 pallets) · evidence: near-expiry list 9/2 · STO balance
    Pending owner approval
  • Centre B → Centre C · SKU-118 · 3,600 boxesOver capacity — proposed split into a second run · run 1 at 40 pallets · evidence: centre daily log 9/2 · STO balance
    Pending owner approval

On approval this is sent to the STO. Any gap between the assigned quantity and what actually arrives is kept as evidence for the next round.

  • Signal

    Only the rows where a centre’s days-of-stock falls outside the usual range (e.g. 4-7 days), or where stock is nearing expiry, come up.

  • Evidence

    Sources actually checked — the centre daily log, the near-expiry list, the STO balance — sit right next to each candidate.

  • Action

    Transfer candidates are built within plant shipping capacity, nearest plant first. An SCM owner does the execution and approval.

Roadmap · planned screen

Catching the moment a standard drifts, before the close

The screens above explain cost after the close. The next screen flags the day an input that makes up that cost drifts from its standard. What follows is a planned screen and is not yet a contractual promise.

Daily signalsFictional Manufacturing Co. · Plant 1 · 2026-06-18 · June close D-12
Fictional dataPlanned screen — in development

Today — which input drifted from its standard?

Flagged today4out of 899 items
Next lock-inD-12June close
Alerts sent4Slack 3 · email 1
Actions logged2last 30 days
FlaggedInputs outside the company standard or the usual range. Each row carries the time left until the next lock-in
Item · familyDateSignalUsual → todayNext lock-inAlert
06-18Purchase price driftStd 10,850 · ±3%12,500 (+15.2%)Quote reprice 06-25 · close D-12Slack → Purchasing 09:10
06-17Batch yield drift · 3 days running94.5–95.5%91.7%Next batch 06-19Slack → Production 07:40
06-16Recipe revised, standard cost not updatedRM-X 62%RM-X 68%Next quote 06-25Email → Cost team 18:05
06-15Allocation driver changed, no approval on recordMachine hoursHeadcountClose D-15Slack → Cost team 10:30
Action candidates · pending approvalS-042 · Frozen food A
  • Reprice S-042 for the next quote (3 quotes due 06-25)Owner: Purchasing
    Pending owner approval
  • Request an alternative supplier quoteOwner: Purchasing
    Pending owner approval

EvidencePO-2606-001 · standard cost master v2026-04

An owner executes and approves.

RecordLast decision → outcome

05-22 S-018 price drift flagged → 05-27 decision to reprice quotes (purchasing lead) → 06-10 confirmed in 3 June quotes

This is a planned screen. Today's contract covers signal, explanation, evidence and action records at the monthly close; daily signals are in development. No date is promised. The yield row assumes an MES connection.

  • Signal

    The inputs that make up cost — purchase price, batch yield, recipe, allocation driver — come up only on the day they drift outside the company standard or the usual range.

  • Alert

    A flagged row goes to its owning team by Slack or email, with the time left until the next lock-in (quote, order, batch, close) attached.

  • Action · record

    The system proposes candidates; an owner executes and approves. The decision and its outcome stay on the same row as evidence for the next signal.

Five stages, from signal to memory

This isn’t a tool that answers once and stops. Evidence and decisions stay in the same place, so this month’s judgement is where next month starts.

Signal

When cost or margin moves unlike it usually does, we catch it first — before anyone opens the month-end close.

Explain

What contributed and by how much, split by item, process and department — with the comparison base and the calculation alongside.

Decide

Every candidate cause carries a drill-down, a formula and a source. Your team checks it on the spot and moves to the decision.

Act

For a confirmed cause we propose what to do next, and record the action a person picks. Whether it happens is a human approval.

Learn

What was decided, on what evidence, and how it turned out — all kept. Next month the same question starts from that record.

In the Act and Learn stages the system proposes and records. It does not act for you, and approval stays with a person.

We don’t touch your existing systems

We only read from them. That means no system replacement and no migration to get started — and a source that isn’t connected is shown as not connected.

Data connectionsExample — fictional data
  • purchaseConnected33 rows · snapshot 2026-08-07 01:21
  • cost_ledgerConnected30 rows · snapshot 2026-08-07 01:21
  • revenueConnected10 rows · snapshot 2026-08-07 01:21
  • Production actuals · mesNot loadedInput and output actuals per batch — the source for yield by process and lot. Family-level yield comes from cost_ledger input and output.
  • BOM · bomNot loadedProduct family ↔ material ratios — the only path that attributes shared-material vouchers to a family. Dedicated materials already carry a family in purchase.

The edge of coverage — this is as far as the system goes. MES and BOM exist as nodes in the definition file but are not loaded. So yield broken down by process and lot and attributing shared-material vouchers to a product family are not answered here. We do not fill them in with estimates.

What it does not do
  • Running, editing or writing back your ERP close
  • Forecasting
  • Acting on its own
  • Approving anything automatically

It goes as far as a person checking and acting once something is flagged. We don’t run or fix a close on your behalf. Being read-only keeps the review short, and there is nothing to roll back.

Who does what

Who keys in the data? — Nobody

What the customer prepares

  • One read-only connection to ERP, MES and cost sheets
  • 2–3 interviews — the words and rules the company runs on
  • The last 3–6 months of close data

Nothing new to key in. We read the systems you already have.

What DFINITE does automatically

  • Joins scattered tables and documents into one data map
  • Learns the usual range and catches the moment it drifts
  • Packages cause, amount and evidence into an alert

What people check

  • Whether the flagged item is real
  • Which action to take — quote, purchase, reallocate
  • Recording the decision and its outcome

People execute and approve. The system proposes and records.

Our data is a mess. Does this still work?

We don’t start by assuming tidy data. Finding out when the allocation basis changed and how stale the master data is, is the early work. If clean data were the entry price, this problem would never get solved. If tidying the data and the decision rules is itself what you need right now, that’s a different engagement — the plant diagnostic covers it.

How can we trust an answer an AI produced?

It is built to stay silent when it is not sure. The five-axis breakdown has to match the actual cost change within ±0.05%p before a Brief goes out. When it cannot, it does not invent an "other" bucket; that month simply gets no Brief. Every answer that does go out carries its cause, amount and evidence, so your people can check it on the spot.

What extra input do our teams have to provide?

None. We only read your existing systems; nothing new has to be entered. There will be a few things to confirm with your people while we align the assumptions behind the calculation.

Permissions

Same data, different screens

An executive and an analyst look at the same numbers but not the same screen. What is not shown is specified just as carefully as what is.

RoleScopeWhat the screen showsWhat stays hidden
CFO · finance executiveChooses which of the five families to dig intoAll familiesThe list is the hero · Brief down to the summary layer · validation shows the gate verdict onlyTechnical detail — residuals, SQL counts, gates, pack versions — opened only when something looks off
Cost accountantBuilds the explanation and defends the numbersAll familiesEvery layer — axis table, SQL, vouchers, gates, open items, glossary alignment, ad-hoc queriesNothing. If this role can’t see the evidence, the product doesn’t work
Division head · plant managerAnswers why cost moved in their own product familyFrozen food onlyOwnership and the written explanation at the top · one row in the list · evidence collapsedEvery other family · the validation screen · vouchers and SQL · ad-hoc queries · setup screens
FDE · ontology ownerConnects the customer ERP to the definition file and sets the detection rulesAll familiesEvery layer + golden set · QA scoring + Ontology Studio + workflow setup + operations and adminNothing. Early in a rollout this role is the only user

Role names and scopes come from the definition file. Where your organisation calls them something else, we use your words.

One cycle, four to six weeks

You don’t have to commit to a company-wide rollout first. Start by seeing whether one product family produces an answer.

01

Fix the scope

One plant, one product family. The narrower the cut, the sooner the answer.

02

Connect the data

We connect your existing systems read-only and write down where each value comes from.

03

Align the rules

We check the allocation rules and when master data was last updated, so the calculation starts from the right assumptions.

04

Check the explanation

We answer real month-end questions with comparison, contribution and evidence — and confirm it with your team.

Check whether your plant is a fit right now

Pick a side and answer five questions to tell whether now is the right time to start. We don’t ask for your contact details.

Start

Which is closer to you?

Loss domains

It starts with cost and inventory, but what it watches is loss as a whole

Every domain runs the same five steps (signal → explanation → evidence → action → record). Domains grow, the product stays one, and the company’s judgement accumulates in one place.

DomainWhere it leaksStatus
Cost lossWhere unit price, yield or allocation drifts and margin leaksLive
Inventory lossWhere centre allocation, plant transfers and near-expiry stock leak into scrap and logistics costLive
Equipment lossWhere equipment history does not carry over and the same failure repeatsNext
Quality lossWhere rework and claims come back as costNext
Production lossWhere the gap between plan and actual leaks into fixed costNext

What a contract promises today is the signal, explanation, evidence and recorded action for the domains marked “Live” — no more. The rest widens as the evidence accumulates. Pricing follows the same unit: loss domain × plant (or product family).

Before you start

These are the questions people usually ask first

Next step

Next month, hear about the loss before it locks in

A 30-minute call to decide which plant and product family to start with. Existing systems are only read; the first alert lands within 4–6 weeks.