D-CAT Group ↗ Contact ENTRDEESAZ
Start a 4-week pilot

Solutions · by department · finance & FP&A

Finance: plan, margin, cash and cost centre, read after every close

CFO (plan attainment, margin, cash) · head of FP&A (forecast movement, variance explanation) · group controller and business-unit controllers (cost centres, close) · treasurer (working capital) · CIO (the finance warehouse is usually the first governed model a company owns; on-premise and row-level scope by legal entity matter here). The buyer is the CFO with the CIO; the daily reader is the controller.

How the three agents on this page read one semantic modelOne semantic model on the left; three scheduled agents in the middle - CFO Agent, Working Capital Agent, Cost Centre Variance Agent; each publishes findings, recommendations and a brief on the right.semantic modelimported from Axoria Data Studiorevenue_actualrevenue_planrevenue_forecastcost_of_salesgross_marginCFO Agentmonthly on the 6th · 06:00FfindingRrecomm.BbriefWorking Capital Agentmonthly on the 2nd · 06:00FfindingRrecomm.BbriefCost Centre VarianceAgentmonthly on the 6th · 06:30FfindingRrecomm.Bbriefevery number in a record carries an evidence address

Questions

The questions the CFO asks every month

  • Which cost centres overran budget, by how much — timing or structural?
  • What moved in the full-year forecast since last month, and why?
  • Where is cash tied up — overdue customers, slow inventory, early supplier payments?
  • Did the close land on time, and what remains unreconciled?

In conversation

Sample questions people type into the conversation

deepen path — the finding's evidence is carried frozen; a new number needs a new query, and the agent says so

  • "Break the Metals margin gap down by cost element."
  • "Which cost centres were over budget in August and also over budget year to date?"
  • "Show overdue receivables over 60 days by distributor."
  • "Did the logistics cost centre overrun in the same months last year?"
  • "How current is the data — is August closed?"

Personas

Three example agents

The agents below are examples for this department, not a fixed set: CFO Agent · Working Capital Agent · Cost Centre Variance Agent. Each one’s scheduled run is shown in the example sets that follow.

Set 1

CFO Agent

Audience: CFO, group controller, business-unit heads.

Set 2

Working Capital Agent

Audience: treasurer, credit-control manager, CFO.

Set 3

Cost Centre Variance Agent

Audience: group and plant controllers, cost-centre owners.

An agent's name says which measures it reads and for whom. It holds none of the role's authority: it does not decide, approve or act.

Agents for the topics you choose

An agent is a job description, a bound semantic model and a schedule — not code — so the topics it watches are yours to set: a payer, a service line, a campaign, a supplier. We write the first ones with you.

Build your agents with us →

Example sets

Three example sets, one run each

Each set is one agent persona and one scheduled run’s output — the brief, the recommendations and the findings they rest on — in the product’s own record envelope. The first set is open; the other two are collapsed. The model and the measures the sets assume are listed at the foot of the page.

IllustrativeSet 1CFO Agent
Persona
Produces the post-close briefing for the CFO of an industrial group — 14 plants, three business units, four Turkish legal entities and two foreign subsidiaries, reporting in ₺ with a calendar fiscal year; separates volume, mix and price behind revenue against plan, and timing from structure behind a variance. · Audience: CFO, group controller, business-unit heads. · Tone: formal, measured, executive-summary language; short exact sentences. · Output language: en
Signals it watches
(1) Revenue–margin scissors — revenue ahead of plan while gross margin falls behind it. (2) Margin gap by business unit — which unit carries the group's margin deviation, with its share of revenue. (3) Opex overrun concentration — how much of the net overrun sits in how few cost centres. (4) Forecast drift — version-to-version movement of the full-year forecast, and the direction of consecutive revisions. (5) Cash against plan, on the closed month only.
Thresholds it was given
finding 5 % against plan · critical 15 % · ratio metrics (margin %, ratios) 1.5 points · minimum share 3 % of group revenue · any third consecutive same-direction forecast revision is a finding regardless of size, published at severity medium · severity rule: medium when a threshold is crossed, high when a ratio metric moves more than 1.25× its threshold or a count metric more than 1.5× the finding threshold, critical above the critical threshold; a finding with a breakdown cell takes the severity of the cell's own move; an ongoing topic keeps the severity it was given

Run header

  • Scheduled monthly on the 6th, 06:00, Europe/Istanbul (the close lands on the 5th)
  • Period: August 2026 (full month; fiscal year = calendar year) vs plan version P-2026-v2 and vs August 2025 — equal calendar days (31) and equal working days (21)
  • Data complete through 2026-09-05, measured via max(POSTING_DATE), 3 hours ago (posting date, not document date; late-posted journals fall outside the edge)
  • Scope: the four Turkish legal entities; the two foreign subsidiaries are outside this agent's scope
  • Model: the workspace's approved model, written onto the run
  • Cost: recorded on the run
Brief

August 2026: Revenue +3.14 % Against Plan While Gross Margin 24.43 % → 21.90 % — Metals Carries the Margin Gap, Three Cost Centres Hold 94.69 % of the Opex Overrun, Full-Year Forecast Cut a Third Time

Assumptions strip

You did not state a period; the last closed month (August 2026) was assumed and the plan version in force (P-2026-v2) was used. The two foreign subsidiaries are outside this agent's scope and do not appear. Year-on-year figures are nominal ₺; no inflation adjustment is in the model.

August revenue of 1,842 M ₺ was 3.14 % ahead of plan, but gross margin came in at 21.90 % against a planned 24.43 %, a 32.8 M ₺ shortfall in margin. Metals alone fell 40.8 M ₺ short of its planned margin (18.2 % against 23.5 %, on 49.51 % of group revenue), while Packaging came in 7.5 M ₺ ahead and Chemicals 0.5 M ₺ ahead on a provisional cell. Operating expenses overran budget by 6.42 % with personnel cost under budget; three cost centres — Logistics, Maintenance and IT — hold 94.69 % of the net overrun, Logistics alone at +28.51 %. The full-year revenue forecast was cut for the third consecutive version, to 21,120 M ₺ (−1.68 %), even though the August forecast itself was beaten by 1.77 %. The cash position against plan could not be reported this run.

covers: Finding 1, Finding 2, Finding 3

— Run: monthly, the workspace's approved model, data complete through 2026-09-05. Guard Ledger: held 1 — candidate b-01 (the 13-week cash sentence), reason numeric_provenance: token 1,240 M ₺ resolved to no envelope in this run; data state 1 — envelope e6 (intercompany eliminations, Chemicals) returned 0 rows, the journal was posted after the edge, and Finding 1 carries the provisional stamp; not_selected 0; duplicate 0.

Recommendation 1

Break Metals' August cost of sales down by cost element (material, energy, conversion) against plan, and put shipped tonnes beside it

based_on: Finding 1 · owner: Metals business-unit controller, with the head of procurement

The margin gap is a business-unit fact, not yet a cause. If material cost per tonne moved against plan, the question is a procurement one and the purchase-price variance is the next record to read; if revenue per tonne moved, it is a pricing one. The cost-element cut is in this model. Shipped tonnes are in the operations model, not this one: the controller reads them beside the record for the same month and business unit — a comparison a person makes, since no key joins the two models — until the finance model carries tonnes.

The findings this rests on

Finding 1

Revenue–Margin Scissors: Revenue +3.14 % Against Plan While Gross Margin 24.43 % → 21.90 % (−2.53 Points) — Metals Carries the Gap on 49.51 % of Group Revenue

severity highdirection downnovelty newtrust B (one provisional cell: Chemicals)breakdown BUSINESS_UNIT = Metals

August 2026 revenue was 1,842 M ₺ against a plan of 1,786 M ₺ (+3.14 %) and 1,405 M ₺ in August 2025 (+31.10 %, nominal). Gross margin was 403.5 M ₺, or 21.90 % of revenue, against a planned 436.3 M ₺, or 24.43 % — a 2.53-point shortfall, 1.69× the 1.5-point ratio threshold — severity high. In money, the group earned 32.8 M ₺ less margin than planned, and the units did not share it: Metals (912 M ₺ revenue, 49.51 % of the group, +3.64 % against its 880.0 M ₺ plan) delivered 166.0 M ₺ of margin (18.2 %) against a planned 206.8 M ₺ (23.5 %) — a 40.8 M ₺ shortfall, larger than the group's net gap; Packaging (601 M ₺, 32.63 %, +2.21 % against plan) delivered 156.9 M ₺ (26.1 %) against 149.4 M ₺ planned (25.4 %), 7.5 M ₺ ahead; Chemicals (329 M ₺, 17.86 %, +3.46 % against plan) delivered 80.6 M ₺ (24.5 %) against 80.1 M ₺ planned (25.2 %), 0.5 M ₺ ahead — provisional: its intercompany elimination lines were posted after the data edge, so this cell is stamped trust B and the record's tier follows it. Revenue ahead of plan with margin behind it means the group generated more revenue at a lower margin percentage; whether more units were sold cannot be read here, because tonnes are not in this model. This data cannot separate a raw-material price effect from a sales-price effect: the model carries revenue and cost of sales by business unit, not by input, and the purchase-price variance sits in the procurement model.

Recommendation 2

Put the version-to-version forecast bridge by business unit on the monthly watch, and record the assumption that moved with each version

based_on: Finding 3 · owner: head of FP&A

Three consecutive cuts are the pattern the revision rule exists for. A watch by business unit will show whether one unit's forecast is being lowered or all three are; the agent will stamp the topic ongoing rather than raise it as new each month. The assumption behind each revision is not in the model — the FP&A team records it beside the version, or the record will keep saying "the number moved" without saying why.

The findings this rests on

Finding 3

Forecast Drift: Full-Year Revenue Forecast Cut for the Third Consecutive Version, 21,480 → 21,120 M ₺ (−1.68 %) — While the August Forecast Missed Actual by Only +1.77 %

severity mediumdirection downnovelty ongoingtrust Abreakdown FORECAST_VERSION = F-2026-08

The August forecast version puts full-year revenue at 21,120 M ₺, down from 21,480 M ₺ in the July version (−1.68 %); July was down from 21,760 M ₺ in June (−1.29 %), and June from 21,900 M ₺ in May (−0.64 %) — three consecutive downward revisions across four versions. Each revision is below the 5 % threshold; the rule that made it a finding is the third same-direction revision in a row, which publishes at severity medium, and the agent reported the first two revisions in the last two runs. The forecast for August itself, made in July at 1,810 M ₺, was beaten by the actual 1,842 M ₺ (+1.77 %) — the near term is being forecast accurately while the full year is cut. The forecast versions carry no driver commentary in this model; which business unit's forecast moved is in the version, which assumption moved is not.

Also published in this run, with no recommendation resting on it

Finding 2

Opex Overrun Concentrated: Group Opex +6.42 % Against Budget (187.3 vs 176.0 M ₺) While the Personnel Line −0.82 % — Three Cost Centres Hold 94.69 % of the Net Overrun

severity criticaldirection upnovelty newtrust Abreakdown COST_CENTRE = Logistics

Operating expenses were 187.3 M ₺ against a budget of 176.0 M ₺, a net overrun of 11.3 M ₺ (+6.42 %) — 1.28× the 5 % finding threshold, which alone would read medium; the breakdown cell Logistics is +28.51 % against its budget, above the 15 % critical threshold, and the finding takes the cell's severity. Of 62 cost centres, 11 are more than 10 % over budget and 38 are under; the personnel line inside operating expenses, the largest single line, is 0.82 % under budget (60.7 vs 61.2 M ₺) — direct labour sits in cost of sales, not here. Three cost centres account for 10.7 M ₺ of the 11.3 M ₺ net overrun (94.69 %): Logistics 28.4 vs 22.1 M ₺ (+28.51 %), Maintenance 19.7 vs 17.2 (+14.53 %) and IT 14.9 vs 13.0 (+14.62 %). Whether the logistics overrun is volume-driven — more tonnes shipped than the budget assumed — cannot be read from this data; shipped tonnage is in the operations model, not in the finance model.

What this run could not see.

The cash-against-plan sentence was held: the agent wrote a figure it remembered from a conversation, and no query in this run produced it. Chemicals' intercompany eliminations were posted after the data edge, so its margin cell is provisional; Finding 1 carries the stamp and the record's tier is B because of it. A cost-element breakdown of cost of sales is in the model; shipped tonnes and the purchase-price variance are not.

IllustrativeSet 2Working Capital Agent
Persona
Reads the month-end balance sheet of the same industrial group for the treasurer and the credit-control manager: receivables, payables and inventory as days, the overdue book by segment and age, and the cash conversion cycle as the sum of its three parts — so that a flat cycle produced by a longer DSO and a longer DPO is reported as two moves, not as stability. · Audience: treasurer, credit-control manager, CFO. · Tone: plain, number-led. · Output language: en
Signals it watches
(1) DSO drift — receivables growing faster than rolling credit sales. (2) Overdue concentration — the over-60-day balance by customer segment, with the segment's share of the total. (3) Cycle composition — DIO, DSO and DPO side by side; a flat cycle with moving parts is a finding. (4) DPO lengthening on strategic suppliers. (5) Inventory days against plan by plant.
Thresholds it was given
finding 5 % · critical 25 % · ratio metrics (days, shares) 3 % · minimum share 5 % of the receivables book · severity rule: medium when a threshold is crossed, high when a ratio metric moves more than 1.25× its threshold or a count metric more than 1.5× the finding threshold, critical above the critical threshold; a finding with a breakdown cell takes the severity of the cell's own move; an ongoing topic keeps the severity it was given

Run header

  • Scheduled monthly on the 2nd, 06:00, Europe/Istanbul (month-end balances)
  • Period: 31 August 2026 vs 31 July 2026 (month-end balances; rolling 92-day sales and cost of sales as the day bases) and vs 31 August 2025 where the metric exists
  • Data complete through 2026-09-01, measured via max(BALANCE_DATE), 2 hours ago
  • Scope: the four Turkish legal entities
  • Model: the workspace's approved model, written onto the run
  • Cost: recorded on the run
Brief

31 August 2026: DSO 58.40 → 63.10 Days, Over-60-Day Receivables +44.66 % With 79.03 % in Domestic Distributors — Cash Cycle Flat at 55.5 Days Only Because DPO Lengthened Too

Assumptions strip

You did not state a period; the last month-end (31 August 2026) was assumed, compared with the previous month-end. Day measures use rolling 92-day bases as the model defines them. Plant 14 has no posted stock count and is recorded as a data state, not a finding.

Receivables grew 8.91 % in a month in which rolling credit sales grew 0.80 %, taking DSO from 58.40 to 63.10 days. The over-60-day balance rose 44.66 % to 596 M ₺ on 1,214 invoices, and 79.03 % of it sits with domestic distributors, whose overdue balance grew 58.05 % and who carry 94.02 % of the growth; export customers moved 11.48 %. The cash conversion cycle nevertheless reads flat at 55.5 days, because open payables grew 10.43 % on cost of sales that grew 1.20 % and DPO lengthened from 61.19 to 66.77 days — two moves that cancel, reported as two moves. Whether the overdue growth is dispute or delay cannot be read from this model.

covers: Finding 1, Finding 2

— Run: monthly, the workspace's approved model, data complete through 2026-09-01. Guard Ledger: held 0; duplicate 1 — candidate f-04 (DSO by legal entity) merged into Finding 1 on fingerprint dso|2026-08|group; data state 1 — envelope e5 (inventory by plant) returned 0 rows for Plant 14; not_selected 0.

Recommendation 1

Break the domestic distributors' over-60-day balance down by distributor and by invoice month, and put credit-limit utilisation beside it once the credit tool is in the model

based_on: Finding 1 · owner: credit-control manager

Domestic distributors carry 94.02 % of the growth in the over-60-day balance (173 of 184 M ₺); the distributor and invoice-month cuts will show whether it is a few large accounts ageing or the whole segment slowing. Both cuts are in this model. The dispute and credit-limit flags are not — until they are, "late" and "disputed" read the same here, and the credit team reads its own tool beside the record.

The findings this rests on

Finding 1

DSO Drift With Overdue Concentration: DSO 58.40 → 63.10 Days (+4.70 Days, +8.04 %) as Receivables +8.91 % on Rolling Sales +0.80 % — Over-60-Day Balance +44.66 %, 79.03 % of It in Domestic Distributors

severity criticaldirection upnovelty newtrust Abreakdown CUSTOMER_SEGMENT = Domestic distributors

Open receivables stood at 3,790 M ₺ on 31 August against 3,480 M ₺ on 31 July (+8.91 %), while rolling 92-day credit sales moved from 5,482 to 5,526 M ₺ (+0.80 %); DSO therefore rose from 58.40 to 63.10 days, a +8.04 % move, 2.68× the 3 % ratio threshold. The over-60-day balance grew from 412 to 596 M ₺ (+44.66 %, above the 25 % critical threshold — severity critical), from 11.84 % to 15.73 % of the book (596 of 3,790 M ₺), on 843 → 1,214 open invoices. The growth is concentrated: domestic distributors' over-60 balance went from 298 to 471 M ₺ (+58.05 %) — 173 M ₺ of the 184 M ₺ growth (94.02 %) — and now holds 79.03 % of the overdue book (471 of 596); export customers moved from 61 to 68 M ₺ (+11.48 %); other segments from 53 to 57. This data cannot tell a disputed invoice from a late one: dispute and credit-limit flags live in the credit-management tool, which is not in this model.

Recommendation 2

Put DPO by supplier category on the monthly watch, with strategic suppliers as a named cut

based_on: Finding 2 · owner: treasurer, with the head of procurement

A cash cycle held flat by a lengthening DPO is two moves, not stability, and whether the longer payment terms were agreed with suppliers or simply taken is not in this model. The supplier-category cut is; the watch will show whether the lengthening is on strategic suppliers or on the long tail, and the agent will stamp it ongoing rather than alert again.

The findings this rests on

Finding 2

Cycle Held Flat by the Payables Side: Cash Conversion Cycle 55.54 → 55.49 Days While DSO +4.70 Days and DPO 61.19 → 66.77 Days (+5.58 Days) — Payables +10.43 % on Cost of Sales +1.20 %

severity highdirection upnovelty newtrust Ainterpretivebreakdown — (group)

The cash conversion cycle is unchanged at 55.5 days, but its parts are not: DIO moved from 58.33 to 59.16 days (inventory 2,650 → 2,720 M ₺, +2.64 %, below threshold), DSO from 58.40 to 63.10, and DPO from 61.19 to 66.77 days (+9.12 %, 3.04× the 3 % ratio threshold — severity high) as open payables rose from 2,780 to 3,070 M ₺ (+10.43 %) on rolling 92-day cost of sales of 4,180 → 4,230 M ₺ (+1.20 %). The flat headline is produced by a longer DSO and a longer DPO cancelling each other; the sentence "the cycle is being held by paying suppliers later" is interpretive and is badged so. Which suppliers are being paid later — strategic or transactional — is a supplier-category cut this model can produce; it was not opened in this run because the budget was spent on the receivables axis.

Data state

Data state (not a finding): the inventory-by-plant query returned no rows for Plant 14 (new plant; first stock count not yet posted). No severity, no recommendation rests on it; the model owner is notified.

What this run could not see.

Dispute and credit-limit flags are in the credit-management tool, not in this model. Plant 14 has no stock count yet. The supplier-category cut of DPO is in the model but was not opened this run.

IllustrativeSet 3Cost Centre Variance Agent
Persona
Reads cost centres against budget for the controllers and cost-centre owners of the same group; tells a structural overrun (over budget month after month, year to date) from a timing one (a single month against a phased budget), and names the GL account that carries the difference. · Audience: group and plant controllers, cost-centre owners. · Tone: plain and operational; says "timing" and "structural" in the title. · Output language: en
Signals it watches
(1) Structural overrun — a cost centre over budget for three or more consecutive months and year to date. (2) Timing variance — a month overrun with year-to-date inside threshold, with the account that carries it. (3) Account concentration — which GL account holds the year-to-date overrun. (4) Internal versus external labour — internal labour under budget while contractor cost overruns. (5) Headcount cost against the headcount plan by cost centre.
Thresholds it was given
finding 5 % of budget · critical 20 % · month-only variance is timing if year to date is within 3 %, and a timing finding is published at severity low regardless of the month's size, so that the month line is not read as an overrun (this overrides the severity rule) · minimum size 2 M ₺ of budget for a cost centre to be reported · severity rule: medium when a threshold is crossed, high when a ratio metric moves more than 1.25× its threshold or a count metric more than 1.5× the finding threshold, critical above the critical threshold; a finding with a breakdown cell takes the severity of the cell's own move; an ongoing topic keeps the severity it was given

Run header

  • Scheduled monthly on the 6th, 06:30, Europe/Istanbul
  • Period: August 2026 and year to date January–August 2026 vs budget B-2026 (phased by month) — August 2026 has 21 working days, as budgeted
  • Data complete through 2026-09-05, measured via max(POSTING_DATE), 3 hours ago
  • Scope: the four Turkish legal entities, 62 cost centres
  • Model: the workspace's approved model, written onto the run
  • Cost: recorded on the run
Brief

August 2026: Maintenance Over Budget for the Sixth Month (Year to Date +12.61 %, Contractors 92.17 % of It) — Marketing's +38.24 % Is Timing, Year to Date −2.99 %

Assumptions strip

You did not state a period; the last closed month (August 2026) and the year to date were assumed against budget B-2026 as phased by month. Cost centres with a budget below 2 M ₺ are not reported. A draft sentence containing an unaddressed proportion was returned once and rewritten from a query.

Of 62 cost centres, one carries a structural overrun: Maintenance has been over budget every month since March and stands at 148.2 M ₺ year to date against 131.6 budgeted (+12.61 %). The overrun sits 92.17 % in a single account — external contractors, +33.19 %, 15.3 of the 16.6 M ₺ difference — while internal maintenance labour is 2.62 % under budget. Marketing's August overrun of 38.24 % is timing by the agent's rule: the events account posted 3.9 M ₺ in August against 0.4 budgeted and nothing in June against 3.6 budgeted, and the cost centre is 2.99 % under budget year to date. The eleven other cost centres over budget in August are each inside the year-to-date threshold.

covers: Finding 1, Finding 2

— Run: monthly, the workspace's approved model, data complete through 2026-09-05. Guard Ledger: held 0 after one coached rewrite — candidate f-01's draft carried the unaddressed proportion roughly a third of the plants, gate 4 returned it once, the rewrite replaced it with the queried plant cut (nine of fourteen, envelope e3) and passed; structural drop 1 — candidate r-02 dropped at gate 0, no based_on link (it rested on the timing finding, which by the agent's rule carries no recommendation); duplicate 0.

Recommendation 1

Break the Maintenance contractor account down by plant and by month against the phased budget, and ask the maintenance lead which work-order types the contractors covered

based_on: Finding 1 · owner: head of maintenance, with the plant controllers

Six months over budget on one account is structural. The plant (allocation grain) and month cuts are in this model and will show whether the contractor spend is one plant's programme or a network-wide shift from internal labour to contractors — internal labour being under budget makes the second reading possible, and this data does not settle it. The work-order type is in the maintenance system, not here; the maintenance lead reads that beside the record.

The findings this rests on

Finding 1

Structural, Not Timing: Maintenance Over Budget for the Sixth Consecutive Month, Year to Date 148.2 vs 131.6 M ₺ (+12.61 %) — the External Contractor Account Carries 92.17 % of the Overrun While Internal Labour Is −2.62 %

severity highdirection upnovelty ongoingtrust Abreakdown COST_CENTRE = Maintenance

Year to date, the Maintenance cost centre has spent 148.2 M ₺ against a phased budget of 131.6 M ₺ (+12.61 %, 2.52× the 5 % finding threshold — severity high), and it has been over budget in each month since March; the agent reported it in each of the last three runs. The overrun of 16.6 M ₺ sits 92.17 % in one account: external contractors, 61.4 vs 46.1 M ₺ (+33.19 %), 15.3 M ₺ of the 16.6; the remaining 1.3 M ₺ is spread over four smaller accounts, none above threshold. Internal maintenance labour is under budget, 52.0 vs 53.4 M ₺ (−2.62 %), and headcount is one below plan. The finance model holds the contractor postings by plant cost centre — an allocation, not a work-order attribution — and that cut shows the overrun in nine of fourteen plants; which work orders the contractor spend went to cannot be read here, because the work-order system is not bridged to the finance model.

Also published in this run, with no recommendation resting on it

Finding 2

Timing, Not Structural: Marketing +38.24 % in August (9.4 vs 6.8 M ₺) With Year to Date −2.99 % (55.1 vs 56.8 M ₺) — the Events Account Holds 3.9 M ₺ Against 0.4 Budgeted in August and 0 Against 3.6 in June

severity lowdirection upnovelty newtrust Abreakdown COST_CENTRE = Marketing

The Marketing cost centre overran its August budget by 38.24 %, above the critical threshold for a single month — but its year-to-date spend is 2.99 % under budget, so by the agent's rule the variance is timing. The account that carries it is the events account: it posted 3.9 M ₺ in August against a budgeted 0.4, and posted nothing in June against a budgeted 3.6. The two observations stand side by side; the record does not identify them as the same event, because the model carries the account, not the event. Eleven other cost centres are over their August budget by more than the 5 % finding threshold; each is inside the 3 % year-to-date band and is not reported. This is published as a finding so that the August line is not read as an overrun; no recommendation rests on it. The model does not carry the event itself, only the account — which event moved from June to August is a question for the cost-centre owner, not for this data.

What this run could not see.

Work-order types and the work orders behind the contractor spend are in the maintenance system, not in the finance model; the finance model's plant cut of the contractor account is an allocation by cost centre, not a work-order attribution. The event behind the marketing timing shift is not in any model. Headcount is plan versus actual by cost centre only; no person appears.

Every number carries an address

In the product each figure binds to an evidence address — envelope, row, cell, check digit — and a number without one is held, not published. The anatomy of a record →

Derived figures show their operation

A change, a share or a gap is computed by the engine and carries its operands; the model never divides. How every number is proved →

AI governance is the publication layer

Eight deterministic gates, the trust tier, badged interpretation, an assumptions strip that cannot be switched off, and the Guard Ledger. Where the model can and cannot reach →

FAQ

Four questions this page is usually asked

01Does the agent compare partial months against a full-month budget?

No. Plan and budget comparisons are made on closed periods only; a partial month against a full-month plan produces a false shortfall, and the agent's rules forbid it.

02Can it tell timing from structure?

Yes, by rule: a month overrun with year to date inside threshold is labelled timing in the title; a cost centre over budget for three or more consecutive months is labelled structural. The rule is in the agent's instruction, not in the model.

03Does it see our planning tool's versions?

It sees what the imported semantic model carries: budget and forecast versions as measures with a version dimension. Driver commentary is not a measure, so the record says what moved, not why, unless the team records the assumption beside the version.

04What happens when a number the agent writes was not queried in this run?

It is withheld from the body and sits in Held values with its reason. The cash sentence in Set 1 is an example: the agent remembered a figure from a conversation, and the run had not produced it.

Free data discovery study

See which of these signals your own warehouse can carry.

Send us the name of your data platform and the domain you argue about most. We read your semantic model with you and answer in writing: which of the signals on this page your model carries today, which need a change in Axoria Data Studio, and what a four-week pilot would measure. No cost, no sequence — a person replies within two working days.

What the examples assume

The data, the model and the measures behind the three sets

Nothing in a set rests on a source outside the model described here. Open what you want to reconcile.

01Assumed data sources — data the finance function already has

ERP general ledger (journal lines, accounts, cost centres, periods), accounts receivable (customer invoices, receipts, ageing), accounts payable (vendor invoices, payments, purchase-order match), the planning tool's budget and forecast versions, treasury and bank balances, fixed assets, the HR headcount plan, billing (sales orders, invoices), an FX rate table. Typical warehouse grain: one row per journal line or per open item, daily; plan and forecast at cost-centre × account × month.

02Assumed semantic model — the minimum for the three personas
Measures
revenue_actual · revenue_plan · revenue_forecast (by version) · cost_of_sales · gross_margin and gross_margin_pct (engine-derived) · opex_actual · opex_budget · personnel_cost · receivables_open · receivables_overdue_60 · payables_open · inventory_value · credit_sales_rolling_92d · cogs_rolling_92d · dso, dpo, dio (engine-derived ratios) · cash_balance · headcount_actual · headcount_plan.
Dimensions
posting date · fiscal period · legal entity · business unit · plant · cost centre · GL account / cost element · customer segment · supplier category · plan version · forecast version · currency. Marked personal and never broken down by: employee name (payroll lines aggregate to cost centre), customer contact.
Data edge
measured by the engine via max(posting_date) after the close; the model declares whether posting date or document date is the edge.
03Assumed KPIs — what finance leaders track
KPIDefinitionUnitTypical bandUsual breakdown
Revenue vs planactual ÷ budget%no public benchmark foundbusiness unit · product line
Gross margin(revenue − cost of sales) ÷ revenue%US total-market 37.8 % [S101]product line · region
EBITDA marginEBITDA ÷ revenue%US total-market 16.6 %; retail 10.1 %, software 35.9 %, machinery 19.6 % [S101]business unit · legal entity
Opex budget variance(actual − budget) ÷ budget%no public benchmark found; ±5 % tolerance is common practice (unverified)cost centre · GL account
Forecast accuracy|forecast − actual| ÷ actual (MAPE)%no public benchmark; only 14 % of finance teams formally track it [S102]business unit · P&L line
Cash conversion cycleDIO + DSO − DPOdaysmedian 37 (US top-1,000 non-financial) [S103]legal entity
Days sales outstandingreceivables ÷ credit sales × daysdays18-day gap between top quartile and median [S103]customer segment · entity
Days payable outstandingpayables ÷ cost of sales × daysdaysmedian 59 [S103]supplier category · entity
Days inventory outstandinginventory ÷ cost of sales × daysdaysno public cross-industry median foundSKU family · site
Overdue receivables / bad debtoverdue ÷ receivables; write-offs ÷ credit sales%~42 % of B2B invoices paid late, ~4 % written off (North America) [S104]customer · ageing bucket
Monthly close cycle timetrial balance → consolidated statementscalendar daystop quartile ≤ 4.8, median 6.4, bottom ≥ 10 [S105]legal entity
Cost of the finance functionfinance cost ÷ revenue%top ≤ 0.7 %, bottom ≥ 1.8 % [S106]entity
AP cost per invoiceAP process cost ÷ invoicescurrencytop performers $2.82; median ≈ 2×, bottom ≈ 5× [S107]entity · invoice channel
Budget cycle timekick-off → approved budgetdaystop performers ~25–28 days, ~4 versions [S108]—

Related

Where these pages lead