The controller of a footwear factory in Felgueiras opens the margin report of a women's reference. The ERP says 34%. The CEO says the model doesn't make money. They are both right. The ERP is absorbing the factory's fixed cost per pair produced in a month when production dropped 40% because of the February trade fair — and the pair became artificially expensive. Change the costing method and the same reference shows a contribution margin of 51%. The pillar explained the concept, the sub-pillar explained the impact on the commercial decision. In this article, the architecture that makes the ERP calculate both margins in parallel — and which one serves what purpose — is resolved in technical detail.
The thesis is uncomfortable: most Portuguese factories use absorption costing to decide prices, and that is why they turn down good orders and accept bad ones. The problem is not the method — it is using only one. A serious industrial ERP does not choose between absorption and variable costing. It calculates both, on the same record, over the same production movement, and serves each to whoever needs it: absorption for the accounting close, variable for the negotiating table. Anyone who configures the ERP to give only one number is amputating half the company's decision-making capacity.
There is a hidden cost to this amputation that rarely appears in the management report: the number of orders that never came in because the price came out high, and the number of orders that came in and eroded the margin because the price came out low. Neither failure leaves a trace in the ERP. The first is an email the international buyer never answered. The second is an invoice line that looked healthy. Both arise from the same configuration defect — and both are avoidable.
1: Recommended architecture — two costing axes over the same movement
The starting error is to treat costing as an attribute of the item record. It is not. It is a projection of the same production movement, calculated by two independent axes that share the same data structure: the actual consumption of materials and times.
In practice, the production order (PO) generates three cost layers that the ERP must persist separately:
- Direct material cost — actual consumption of raw material and components, valued at the configured stock method (weighted average, FIFO). The same in both methods.
- Direct labour and machine cost — actual times captured on the shop floor, valued at the work centre's hourly rate. The same in both methods.
- Manufacturing overhead — the layer that separates the methods. In absorption costing, it is allocated to the pair/piece by a driver (machine-hours, man-hours, units). In variable costing, it does not touch the unit cost — it stays as a period cost and is deducted directly from the result.
The fundamental architectural decision: do not calculate overhead on the PO at production time. Calculate the direct cost in real time (material + times) and apply the absorption layer in a parameterisable close valuation step. That way, the contribution margin is available the instant the pair comes off the line, and the absorbed margin is available at month-end close, when you already know the actual volume that serves as the denominator for the allocation.
Anyone who allocates overhead pair-by-pair in real time is lying to the controller with three-decimal precision.
The difference between a persisted cost and a calculated cost
This distinction seems academic until the first reprocessing. A persisted cost — material consumed, hours logged — is a historical fact: it happened, it was recorded, it does not change. A calculated cost — the allocated overhead — is a convention that depends on parameters that can change after the fact: the allocation base, the amount of the period's fixed cost, the chosen denominator. If you mix the two in the same record, you lose the ability to recalculate the absorption without destroying the production history.
In the architecture we advocate, the production table holds only facts. The absorption layer lives in a separate valuation table, rebuildable at any time. This has a practical consequence that the controller appreciates at the end of the first quarter: you can reopen a close, correct a centre's overhead amount, and recalculate all the absorbed margins of the period without touching a single time entry. Anyone who persists everything together reprocesses the entire production run to correct an accounting value — and introduces risk where none was needed.
Why the allocation denominator is the Achilles' heel
The fixed cost per unit is total fixed cost divided by units produced. The numerator is stable; the denominator swings brutally in a seasonal sector. A footwear factory that produces 90,000 pairs in January and 48,000 in February sees the fixed cost per pair almost double in February — without anything changing in efficiency. If the ERP values the February order at that inflated cost and the sales team applies the target margin on top, it loses the order to a competitor that costed in January.
The architecture we recommend uses normal capacity as the allocation denominator, not actual production — aligned with IAS 2, which requires that fixed cost not absorbed under under-activity go to the result, not to stock. This is the difference between an ERP that respects the accounting standard and one that inflates inventory in weak months.
What "normal capacity" is and who defines it
IAS 2 does not leave normal capacity to chance: it defines it as the average production expected over several periods or seasons under normal conditions, deducting the loss of capacity from planned maintenance. In Portuguese practice, this means sitting the production manager and the controller in the same room and agreeing an annual figure per work centre — not the January peak, not the August trough, but the defensible average that serves as a stable denominator for all twelve months.
In footwear, the seasonality of the trade fairs — men's in August, women's in February — forces that figure to be negotiated with knowledge of the cycle. In continuous-production textiles, normal capacity approaches theoretical capacity minus maintenance stoppages, because the volume is stable. Defining normal capacity badly has a perverse and silent effect: if you set it too high, you systematically under-absorb and send fixed cost to the result every month, even in good ones; if you set it too low, you over-absorb and hide inefficiency in stock. The figure has to be reviewed annually, documented, and approved by whoever signs the accounts.
Normal capacity is not a technical parameter that the IT person fills in. It is a management decision that the production manager and the controller sign together — and that the auditor will want to see justified.
Absorption by cost centre vs. single factory rate
There is a temptation, especially in small factories, to use a single overhead rate for the whole factory — a single number that divides all the fixed cost by all the hours. It works as long as the centres have similar cost structures. It stops working the instant one centre is machine-intensive (plastic injection, automatic stitching) and another is labour-intensive (manual finishing, quality control). The single rate subsidises the expensive centre at the cost of the cheap one and distorts the cost of any product that spends more time in one than in the other.
| Approach | When it serves | Risk |
|---|---|---|
| Single factory rate | A single production centre or homogeneous centres; <30 people | Distorts cost when centres diverge in capital/labour intensity |
| Rate by cost centre | Two or more centres with different overhead structures | Requires discipline of logging by centre |
| Rate by centre + multiple driver | Centre where machine and man diverge >30% | Configuration complexity; risk of over-engineering |
2: Parameters, metrics and thresholds
The numbers that separate a defensible configuration from one that generates three-hour arguments at the close:
| Parameter | Reference value | Operational note |
|---|---|---|
| Overhead allocation base | Normal capacity (not actual production) | IAS 2 §13. Under-activity → P&L |
| Frequency of recalculation of the centre's hourly rate | Quarterly (minimum); monthly in energy inflation >8%/year | An outdated rate distorts margin silently |
| Capture of actual times on the shop floor | Latency < 60 s between logging and availability in the ERP | Above this, the controller works with yesterday's data |
| No. of absorption drivers per cost centre | 1 primary; 2 if machine and man diverge >30% | More than this is consultancy selling hours |
| Acceptable deviation standard cost vs. actual cost | ±5% material; ±8% labour before alert | Deviation >15% = wrong PO or technical sheet |
| Minimum contribution margin to accept a marginal order | >0 and idle capacity confirmed | Golden rule of variable costing; see pitfall #4 |
The number most people ignore: the time-capture latency. Without KORA Productivity or equivalent feeding the costing with actual times, variable costing is a theoretical exercise — because the direct labour cost is estimated, not measured. In three real-time production-capture implementations in footwear, the correction of direct labour cost against the value estimated by the technical sheet ranged between 11% and 19%. Nineteen per cent of error in the direct cost contaminates any pricing decision.
Why the centre's hourly rate ages badly
The hourly rate of a work centre is not a fixed number — it is a snapshot of costs that falls out of date at the speed at which those costs change. Since 2021, the cost of energy for Portuguese industry has had variations that made obsolete any rate calculated before the energy shock. A plastic injection factory in the Aveiro-Marinha Grande corridor, intensive in electricity consumption, saw the weight of energy in the machine rate rise materially over two years. Anyone who kept the 2021 rate systematically undervalued the cost of every piece produced — and sold below the real cost without knowing it.
The practical rule: recalculate the rate quarterly as the defensible minimum. If a relevant input — energy, minimum wage, warehouse rent — varies more than 8% a year, switch to monthly recalculation of that component. The minimum wage in Portugal has risen continuously in recent years, and an hourly labour rate that does not keep pace with that rise reports margin that does not exist. Slide-deck margin is always higher than bank margin.
Deviation thresholds: where to draw the line
A deviation threshold that is too tight drowns the controller in alerts; one that is too wide lets through the errors that matter. The reference values — ±5% for material, ±8% for labour — are not universal: they depend on the intrinsic variability of the process. In footwear, leather yield naturally varies by batch and by model, and a material threshold that is too tight generates constant noise. In plastic injection, where the material is homogeneous and waste is predictable, 5% is already wide.
The threshold that is never discussed is the critical one: above 15% deviation, it is not process variability — it is a data error. Wrong technical sheet, badly launched PO, logging on the wrong centre. At that level, the action is not "notify", it is to block the closing of the PO until someone reviews it. Letting a PO with 20% deviation close silently is to contaminate the standard cost of the following period, because many ERPs use the period's actual to recalibrate the standard. The error propagates.
What the INE tells us about the starting point
In 2025, only 53.7% of companies in Portugal with 10 or more people used enterprise management software (ERP), according to the INE. Close to half the business fabric decides margin in a spreadsheet. In that universe, the absorption-vs-variable discussion does not even exist: there is a single number, done by hand, reviewed when there is time. That is where the wrong price is born.
The picture worsens when you look at the size of the companies. The overwhelming majority of the Portuguese business fabric is made up of micro and small companies, and it is precisely in that segment that ERP adoption is lowest. The large Portuguese industrial company has, broadly, already corrected its costing; the family SME of 40 people, which invoices Inditex or Decathlon, often still has not. And it is that SME that suffers most from the error, because it negotiates with an international buyer that has its own costing tuned to the cent.
Half of Portuguese companies with ten or more people decide the selling price in a spreadsheet reviewed when there is spare time. The Asian competitor does not.
Productivity per hour as backdrop
Labour productivity per hour in Portugal remains below the European Union average, according to Eurostat data. This is not an abstract economist's figure — it translates directly into costing. When productivity per hour is lower, each hour of labour incorporates less value produced, and the unit labour cost weighs more heavily in the product's cost structure. Costing labour badly in an economy with productivity below the European average is to err on the component that hurts most. Capturing actual times, instead of estimating from the technical sheet, is the first step to measuring the problem before trying to solve it.
3: Practical configuration
The minimum viable model of a dual costing engine. First, the conceptual schema of a PO's valuation — note the explicit separation between the direct cost (persisted in production) and the absorption layer (calculated at the close):
-- Esquema simplificado: custo por OF com dois métodos em paralelo
-- custo_direto = material_real + (tempos_reais * taxa_centro)
-- custeio VARIAVEL = custo_direto
-- custeio ABSORCAO = custo_direto + overhead_imputado
SELECT
of.id,
of.artigo,
of.qtd_produzida,
mat.custo_material_real AS c_material,
tmp.horas_reais * ctr.taxa_horaria AS c_mo_maquina,
-- margem de contribuicao: disponivel em tempo real
(mat.custo_material_real + tmp.horas_reais * ctr.taxa_horaria)
AS custo_variavel_unit,
-- overhead imputado SOBRE CAPACIDADE NORMAL, nao producao real
(ovh.fixo_periodo / ctr.capacidade_normal_h) * tmp.horas_reais
AS overhead_absorvido
FROM ordem_fabrico of
JOIN consumo_material mat ON mat.of_id = of.id
JOIN apontamento_tempo tmp ON tmp.of_id = of.id
JOIN centro_trabalho ctr ON ctr.id = of.centro_id
JOIN overhead_periodo ovh ON ovh.centro_id = ctr.id
AND ovh.periodo = of.periodo;
The critical line is ovh.fixo_periodo / ctr.capacidade_normal_h. If, instead of capacidade_normal_h, you put horas_reais_periodo, you have just built the engine that inflates the cost in weak months. It is the most common configuration error we see and the hardest to detect, because the ERP keeps giving numbers — only they are wrong.
Where under-absorption comes in and how to record it
The step missing from the schema above — and that IAS 2 requires — is the treatment of the difference between the overhead actually allocated to the POs and the total overhead of the period. When actual production falls below normal capacity, not all the fixed cost is absorbed by the POs. The difference is the under-absorption, and it has to go to the result of the period, not stay in stock.
-- Apuramento de sub/sobre-absorcao no fecho do periodo
-- overhead_imputado = SUM(overhead_absorvido) de todas as OF
-- overhead_real = ovh.fixo_periodo
-- diferenca negativa (subabsorcao) -> custo do periodo (P&L)
-- diferenca positiva (sobreabsorcao) -> credito ao periodo
SELECT
ctr.id AS centro,
ovh.fixo_periodo AS overhead_real,
SUM(absorvido.overhead_absorvido) AS overhead_imputado,
ovh.fixo_periodo
- SUM(absorvido.overhead_absorvido) AS variancia_capacidade
-- variancia_capacidade > 0 => subabsorcao => vai a resultados
FROM centro_trabalho ctr
JOIN overhead_periodo ovh ON ovh.centro_id = ctr.id
JOIN /* OF valorizadas do periodo */ absorvido ON absorvido.centro_id = ctr.id
GROUP BY ctr.id, ovh.fixo_periodo;
Ignoring this capacity variance is the shortcut that inflates inventory. If you do not record it to the result, the unabsorbed fixed cost stays hidden in the stock value, and the company reports an asset worth less than it says. After a few weak months, the distortion accumulates and explodes into an inventory impairment that catches everyone by surprise.
Second, the parameterisation of the deviation alert, which closes the control cycle:
# Regra de alerta de desvio custo-padrao vs real (ilustrativa)
alerta_desvio_custo:
material:
threshold_pct: 5 # desvio acima de 5% gera aviso
accao: notificar_controller
mao_obra:
threshold_pct: 8
accao: notificar_controller
critico:
threshold_pct: 15 # ficha tecnica ou OF suspeita
accao: bloquear_fecho_of + rever_ficha_tecnica
How to expose both margins to whoever decides
Having both numbers in the ERP solves nothing if they reach whoever negotiates in the wrong form. The sales team does not open SQL queries — it opens a dashboard. The visualisation layer has to present, side by side, by reference and by customer, the contribution margin and the absorbed margin, with a clear indication of which to use in which context. In Qlik Sense, this translates into a screen where the contribution margin appears highlighted in the order negotiation view, and the absorbed margin in the reference profitability view at the close.
The golden rule of the interface: never show both numbers without a decision context. A salesperson who sees "margin 34%" and "margin 51%" on the same line, without knowing which is which or when to use each, will always choose the higher to justify a discount — and the company loses money on the right number for the wrong reason.
4: Integrations and dependencies
Dual costing does not live alone. It depends on upstream flows that, if they fail, poison it without warning:
| Source | Feeds | Typical failure if absent |
|---|---|---|
| Time capture (KORA Productivity) | Direct labour cost + OEE | Labour cost estimated from the sheet, 11-19% error |
| Warehouse management (KORA Inventory) | Actual material consumption, stock valuation | Material allocated by theoretical explosion, ignores actual waste |
| Core ERP (ERP MULTI) | Technical sheets, centre rates, close | Without a dual engine, only one method available |
| BI (Qlik Sense) | Contribution vs. absorption margin by customer/reference | Two numbers in the ERP, zero visibility of which to use |
| Accounting / SAF-T | Inventory valuation at the close (absorption) | See pitfalls and SAF-T extraction |
The dependency no one documents: the inventory valuation in the SAF-T has to be the absorption one, not the variable one. If you export variable costing to the accounting file, you undervalue stock and distort the tax result. We have seen this error go unnoticed for months because the ERP calculated both and someone linked the wrong field to the accounting map. The details of this extraction pitfall are in the article on SAF-T errors in industrial production.
The technical sheet as source of truth — and of error
Before any costing can be reliable, the technical sheet has to be right. It is the BOM (bill of materials) and the routing that tell the ERP what should have been consumed and how long it should have taken. When the sheet is out of date — a replaced component that no one updated, a finishing operation that moved centre —, the deviation between standard and actual shoots up, and the controller spends the close chasing ghosts that are, in truth, old documentation.
In footwear, with 800 to 1,200 SKUs in a collection and three axes of variation — colour, size, last —, keeping technical sheets up to date is a discipline that only survives if it is embedded in the product development flow. The sheet cannot be a document filled in at the end; it has to be the artefact that accompanies the model from the sample. Anyone who treats the technical sheet as start-up bureaucracy pays for it in costing the rest of the year.
Private label: when the fixed cost is already someone else's problem
In production on behalf of others — the parent company supplies the model, sometimes the material, and the Portuguese factory manufactures —, the costing structure changes in nature. A good part of the relationship's fixed cost is already negotiated in the per-piece price agreed with the brand, and the relevant decision becomes almost always marginal: do I accept one more order with the capacity I have? The contribution margin stops being the occasional negotiation view and becomes the main view.
Treating an Inditex order like an own-brand model gives the wrong margin in both directions: it overloads the private label with overhead that the contract already covers, or it under-costs the own brand by analogy with the private label. They are two different costing regimes within the same factory, and the ERP has to distinguish them at the order level. The detail of traceability and costing in these cases is in traceability and costing in private label.
SAF-T and the legal obligation behind the valuation
The choice between absorption and variable for inventory is not a management preference when it comes to the accounting file — it is an obligation. Ordinance 195/2020 establishes the monthly communication of the SAF-T, and the inventory value reported has to follow the accounting standard, which imposes absorption costing for the valuation of inventories. Exporting variable costing to the SAF-T is not an aggressive optimisation; it is an error that undervalues the asset and distorts the taxable result.
The real risk we see is not the deliberate decision to export the wrong number — it is configuration carelessness. In an ERP that calculates both costs, it is enough for someone to link the inventory valuation field to the variable cost instead of the absorption cost, and the error runs silently until the first inspection or the first attentive auditor. The dual engine, which is a management advantage, becomes a compliance risk if the accounting mapping is not reviewed.
5: Operational pitfalls
What breaks in production, anonymised:
- Actual production denominator instead of normal capacity. The fixed cost per unit shoots up in weak months. A garment maker in the Vale do Ave was turning down summer subcontracts because the ERP costed them with the August overhead diluted by almost nothing. Correct it to normal capacity; the unabsorbed overhead goes to the result, as IAS 2 requires.
- Centre hourly rate frozen for years. With energy rising, the 2022 rate undervalues the machine-labour in 2025. Recalculate quarterly — monthly if energy varies more than 8% a year.
- Variable costing used for the price list. Selling everything at the contribution margin sinks the company: it never covers the fixed cost. Variable serves marginal orders over idle capacity, not the price list. Confusing the two is the symmetrical error of those who use only absorption.
- Accepting any order with a positive contribution margin. The rule "margin >0 = accept" only holds if there is confirmed idle capacity. If the marginal order displaces full-margin production, the opportunity cost eats the profit. Validate the capacity first, not after.
- Material consumption by theoretical explosion. Allocating material by the BOM and never by actual consumption hides waste. In footwear, leather yield varies by batch and by model. Without actual consumption capture, the material cost is optimistic fiction. Read also the configuration of batches and traceability.
- Private label costed as own production. In production on behalf of others, the cost structure and the margin are different — and traceability is contractual. Treating an Inditex order like an own-brand model gives the wrong margin in both directions. Detail in traceability and costing in private label.
- SAF-T valuing stock at variable cost. Undervalues inventory, distorts the tax result. The inventory valuation field has to point to the absorption cost.
- Two numbers in the ERP, no training for whoever negotiates. The salesperson who does not know when to look at the contribution margin and when to look at the absorbed one will always use the higher — and lose good orders. The dual engine without the right reading is just more noise on the dashboard.
The best-configured dual costing engine in the world is worth nothing if the salesperson, at the negotiating table, always looks at the number that justifies the discount they had already decided to give.
The pitfall of badly modelled seasonality
There is a ninth pitfall that deserves its own section because it is specific to the industrial fabric of the North: seasonality modelled as if it were random noise instead of a predictable cycle. Footwear has its trade fair calendar — international buyers who visit twice a year, men's collection in August, women's in February —, and production organises itself around that rhythm. An ERP that does not recognise the cycle treats the peak and the trough as anomalies, and recalculates costs each month as if the previous one were representative.
The annual normal capacity solves half the problem, but not all of it. The other half is the forecast of capacity consumption over the year, which lets the sales team know, in February, whether accepting a marginal order will or will not collide with the production peak of the following collection. Without that planning view, the "is there idle capacity?" question is answered by eye — and the eye, in a year of many orders, lies to the optimistic side.
The pitfall of changing method without warning the history
The tenth pitfall is temporal. When a company corrects the configuration — switches from actual production to normal capacity, or finally connects the capture of actual times —, the cost history stops being comparable with the future. A controller who compares the absorbed margin of March (old method) with that of April (corrected method) will see a variation that has nothing to do with the business and everything to do with the change of parameterisation. Document the date of the change, mark it in the reports, and avoid drawing trend conclusions that cross the methodological boundary. The intellectual honesty of costing requires knowing when the measuring instrument itself changed.
6: Final technical decision
No hedging. For each dimension and sector, what to configure:
| Profile | Method to serve by default | Why |
|---|---|---|
| Footwear/clothing, strong seasonality, >500 SKUs | Dual mandatory; variable in negotiation, absorption at the close | The allocation denominator swings too much to rely on absorption alone |
| Textiles (spinning/finishing), continuous production | Absorption over normal capacity; variable for spot orders | Stable volume makes absorption reliable month by month |
| Metal/plastic, single piece + series | Dual, with dominant machine driver | Single piece requires precise direct cost; series requires allocation |
| Subcontracting / private label | Variable to decide whether to accept; contribution margin per order | Fixed cost is already a given; the decision is marginal |
| Company <30 people, one cost centre | Simple absorption; variable only if there is structural idle capacity | Dual complexity does not pay off without multiple centres |
If you can only have one method, choose absorption for the accounting and accept that you will negotiate in the dark. If you want to negotiate with light, you need both.
The maturity curve: where to start
Not every company is ready for the dual engine on day one. There is a maturity sequence that respects the reality of the shop floor and prevents the project from dying at the first resistance. The warehouse supervisor who does not want to leave the radio for more than two hours and the foreman who logs times by hand in a notebook do not convert over a weekend.
| Phase | What is installed | Prerequisite |
|---|---|---|
| 1 — Reliable direct cost | Capture of times and actual consumption; end of estimation from the sheet | Shop-floor terminals and logging discipline |
| 2 — Absorption over normal capacity | Correct denominator; capacity variance to the result | Normal capacity agreed by production and control |
| 3 — Contribution margin at negotiation | Commercial view with the variable cost in real time | Phase 1 stable; sales team training |
| 4 — Complete dual engine and BI | Two margins side by side, deviation alerts, correct SAF-T | Phases 1-3 in production; accounting mapping reviewed |
Skipping phases is the recipe for a dual engine that gives two equally wrong numbers. Without phase 1, the variable cost is an estimate; without phase 2, absorption inflates stock; without phase 3, no one uses the right number in negotiation. The order matters.
When the terrain is of extreme complexity
The cross-cutting rule: above two cost centres with different overhead structures, the dual engine stops being a luxury and becomes hygiene. Below that, well-parameterised absorption over normal capacity solves most cases. For extreme configuration complexity — multiple factories, currencies, allocation rules by jurisdiction — the terrain is that of QAD Adaptive ERP. Anyone applying for modernisation funding should first read the eligibility of industrial ERP in PT2030, because the costing engine is eligible expenditure when properly framed in the technical report.
The funding framing that changes the sum
The Companies 4.0 component of the RRP and the PT2030 instruments — COMPETE 2030, Norte 2030 — make a good part of the investment in industrial digitalisation eligible, including management software and production capture systems. The detail that separates the approved application from the one stuck in the technical report is the framing: the costing engine does not apply as an "ERP licence", it applies as decision-making capacity over profitability and competitiveness. The difference is not cosmetic — it is the difference between an assessor who sees current expenditure and one who sees transformation.
7: How INFOS implements
In ERP MULTI we configure costing as a dual engine over the same production movement: the direct cost fed in real time by the time capture of KORA Productivity and by the actual consumption of KORA Inventory Suite, the absorption layer calculated at the close over normal capacity, and the two margins exposed side by side in Qlik Sense by reference, customer and collection. The sales team sees the contribution margin at the table; the controller sees the absorbed one at the close; the tax function receives the inventory valued as the standard requires. One single movement, three correct readings.
We have learned, in implementations that went less well, that the technical part is the easiest. The dual engine is configured in weeks. What takes months — and sometimes does not happen — is the change of habit of whoever negotiates: ceasing to look at a single number that comes from the same old spreadsheet and starting to choose, consciously, which of the two margins serves the decision on the table. The project that treats dual costing as a configuration task fails; the one that treats it as a change in the way of deciding price gets it right.
The point that remains: the question "what is the margin of this reference?" does not have one answer — it has two, and knowing which of them to use in each decision is worth more than any decimal place of precision in the wrong number.
Sources
- INE — Information and Knowledge Society (use of ICT in companies), 2025.
- INE — Companies in Portugal, structure of the non-financial sector, 2025.
- Eurostat — Labour productivity per hour worked, 2022.
- European Commission — Digital Decade Report, 2025.
- IAS 2 — Inventories (International Accounting Standard), treatment of fixed production costs and under-activity.
- Ordinance 195/2020 — monthly communication of the SAF-T.
- Government of Portugal — Recovery and Resilience Plan (RRP), Companies 4.0 component, 2021.
Frequently asked questions
What is the difference between absorption costing and variable costing?
In absorption costing, the factory's fixed cost is allocated to the product per unit produced. In variable costing, the fixed cost does not touch the unit cost — it stays as a period cost and is deducted directly from the result. The same order can have very different margins depending on the method used.
Why do most Portuguese factories turn down good orders?
Because they use only absorption costing to decide prices. When production drops (through seasonality or other reasons), the fixed cost per unit rises artificially, inflating the price. The sales team rejects the order because it appears unprofitable, when in fact it would have a positive contribution margin.
Should an ERP calculate only one costing method or both?
A serious industrial ERP calculates both in parallel, over the same production movement. Absorption serves the accounting close; variable serves the negotiating table. Anyone who configures the ERP to give only one number amputates half the company's decision-making capacity.
What is the starting error in costing configuration?
Treating costing as an attribute of the item record. Costing is a projection of the same production movement, calculated by two independent axes that share the same data structure: actual consumption of materials and times.
When should the ERP apply the manufacturing overhead?
Not at production time. The direct cost (material and times) is calculated in real time. The absorption layer is applied in a parameterisable close valuation step. That way the contribution margin is available when the product comes off the line, and the absorbed margin at the month-end close.
What is the difference between a persisted cost and a calculated cost?
A persisted cost (material consumed, hours logged) is a historical fact that does not change. A calculated cost (allocated overhead) is a convention that depends on parameters that can change afterwards. If you mix the two in the same record, you lose the ability to recalculate the absorption without destroying the history.
What is normal capacity and why does it matter?
Normal capacity is the average production expected over several periods under normal conditions, deducting loss from planned maintenance. It serves as a stable denominator for the allocation of fixed costs, preventing months with low production from artificially inflating the unit cost.
