Case 883
Dropping the loser kept its overhead
dropping_the_loser_kept_its_overhead.eml - A company allocates its fixed overhead across three products in proportion to revenue, finds that product C shows a loss after its share, and drops it. The allocation is the standard method and every figure is real. What leaves with product C, and what stays, is computed below.
ok: true — round-trip fixpoint reached (python1 == python2)updated 2026-09-17
EML
eml# Self-authored for the EML case corpus (no external origin). A company
# allocates its fixed overhead across three products in proportion to revenue,
# finds that product C shows a loss after its share, and drops it. The
# allocation is the standard method and every figure is real. What leaves with
# product C, and what stays, is computed below.
#
# The analysis is careful. Revenues and variable costs are real; the overhead is
# real and is allocated by the standard revenue-share method; C's allocated
# share is computed exactly; and the intent is exactly 'stop making the product
# that loses money'.
#
# Overhead allocated to a product does not leave with the product - only its
# revenue and variable cost do - so dropping C removes C's contribution and
# leaves C's share of the overhead for A and B to carry.
6000 => revenue_a
3000 => revenue_b
1000 => revenue_c
3000 => variable_cost_a
1800 => variable_cost_b
600 => variable_cost_c
4500 => fixed_overhead
revenue_a - variable_cost_a => contribution_a
revenue_b - variable_cost_b => contribution_b
revenue_c - variable_cost_c => contribution_c
contribution_a + contribution_b + contribution_c => contribution_total
revenue_a + revenue_b + revenue_c => revenue_total
int(fixed_overhead * revenue_c / revenue_total) => overhead_allocated_to_c
contribution_c - overhead_allocated_to_c => reported_profit_c
contribution_total - fixed_overhead => company_profit_with_c
contribution_total - contribution_c => contribution_without_c
contribution_without_c - fixed_overhead => company_profit_without_c
company_profit_with_c - company_profit_without_c => profit_lost_by_dropping_c
"revenue A / B / C : " + str(revenue_a) + " / " + str(revenue_b) + " / " + str(revenue_c) ^0
"contribution A / B / C : " + str(contribution_a) + " / " + str(contribution_b) + " / " + str(contribution_c) ^0
"fixed overhead : " + str(fixed_overhead) ^0
"overhead allocated to C : " + str(overhead_allocated_to_c) + " (by revenue share)" ^0
"reported profit of C : " + str(reported_profit_c) + ", a loss" ^0
"" ^0
"company profit with C : " + str(company_profit_with_c) ^0
"company profit after dropping C : " + str(company_profit_without_c) ^0
"profit lost by dropping C : " + str(profit_lost_by_dropping_c) ^0
"" ^0
# ---- what the analysis verified ----
"the product profitability report" ^0
" revenues and variable costs : real" ^0
" overhead : real, allocated by the standard revenue-share" ^0
" method" ^0
" C's share : computed exactly, " + str(overhead_allocated_to_c) ^0
" intent : stop making the product that loses money" ^0
" figures misstated : 0" ^0
" verdict : C LOSES 50 AFTER OVERHEAD, DROP IT" ^0
"" ^0
" allocating the real overhead by the standard method is" ^0
" the part done right here, and it is why C's reported" ^0
" figure is exactly what the method says" ^0
"" ^0
# ---- what leaves with C and what stays ----
"the drop" ^0
" what C brought : " + str(revenue_c) + " of revenue against " + str(variable_cost_c) + " of variable cost," ^0
" a contribution of " + str(contribution_c) ^0
" what was charged to C : " + str(overhead_allocated_to_c) + " of overhead that exists" ^0
" regardless of C" ^0
" when C is dropped : the " + str(contribution_c) + " leaves; the " + str(overhead_allocated_to_c) + " stays" ^0
" so the company : loses C's " + str(contribution_c) + " and saves nothing" ^0
" and next quarter : B, now carrying more overhead, shows a" ^0
" loss too" ^0
"" ^0
# ---- what the company got ----
"the result" ^0
" profit before dropping C : " + str(company_profit_with_c) ^0
" profit after : " + str(company_profit_without_c) ^0
" is C's reported loss miscomputed : no; the allocation is" ^0
" exact" ^0
" was C losing the company money : no; C was covering " + str(contribution_c) ^0
" of overhead that is now uncovered" ^0
"" ^0
# ---- null control ----
# The same decision made on contribution margin: drop a product only if its
# revenue fails to cover its own variable cost.
contribution_c - overhead_allocated_to_c => nc_c_judged_after_allocated_overhead
400 => nc_c_judged_by_contribution
0 => nc_products_dropped_by_contribution
"null control - judge products by contribution, not allocated overhead" ^0
" C after allocated overhead : " + str(nc_c_judged_after_allocated_overhead) ^0
" C by contribution : " + str(nc_c_judged_by_contribution) ^0
" products dropped by contribution : " + str(nc_products_dropped_by_contribution) ^0
" no revenue and no cost changed; the overhead stopped" ^0
" being counted as something a product could take with it" ^0
"" ^0
# ---- the rule ----
"what an allocated-overhead product report guarantees" ^0
" each product's share of overhead is the standard share :" ^0
" exactly, real overhead, revenue-share method" ^0
" a product showing a loss is losing the company money :" ^0
" not addressed; the overhead stays when the product goes," ^0
" so dropping C removes " + str(contribution_c) + " of contribution and no cost," ^0
" taking company profit from " + str(company_profit_with_c) + " to " + str(company_profit_without_c) ^0
"" ^0
"a cost allocated to a thing is not a cost caused by it; when the thing is" ^0
"removed the allocation moves to its neighbours and the cost stays, so the" ^0
"product that looked like a loss was the one paying part of everybody's bill" ^0
"" ^0
"It allocates real overhead by the standard method and C reports " + str(reported_profit_c) + ". But" ^0
"the " + str(overhead_allocated_to_c) + " charged to C stays when C goes and C's " + str(contribution_c) + " of contribution leaves;" ^0
"company profit falls from " + str(company_profit_with_c) + " to " + str(company_profit_without_c) + ", " + str(profit_lost_by_dropping_c) + " lost by dropping the product that" ^0
"was paying part of the bill, until products are judged by contribution." ^0Python (deterministic transpilation)
pythonrevenue_a = 6000
revenue_b = 3000
revenue_c = 1000
variable_cost_a = 3000
variable_cost_b = 1800
variable_cost_c = 600
fixed_overhead = 4500
contribution_a = revenue_a - variable_cost_a
contribution_b = revenue_b - variable_cost_b
contribution_c = revenue_c - variable_cost_c
contribution_total = contribution_a + contribution_b + contribution_c
revenue_total = revenue_a + revenue_b + revenue_c
overhead_allocated_to_c = int(fixed_overhead * revenue_c / revenue_total)
reported_profit_c = contribution_c - overhead_allocated_to_c
company_profit_with_c = contribution_total - fixed_overhead
contribution_without_c = contribution_total - contribution_c
company_profit_without_c = contribution_without_c - fixed_overhead
profit_lost_by_dropping_c = company_profit_with_c - company_profit_without_c
print("revenue A / B / C : " + str(revenue_a) + " / " + str(revenue_b) + " / " + str(revenue_c))
print("contribution A / B / C : " + str(contribution_a) + " / " + str(contribution_b) + " / " + str(contribution_c))
print("fixed overhead : " + str(fixed_overhead))
print("overhead allocated to C : " + str(overhead_allocated_to_c) + " (by revenue share)")
print("reported profit of C : " + str(reported_profit_c) + ", a loss")
print("")
print("company profit with C : " + str(company_profit_with_c))
print("company profit after dropping C : " + str(company_profit_without_c))
print("profit lost by dropping C : " + str(profit_lost_by_dropping_c))
print("")
print("the product profitability report")
print(" revenues and variable costs : real")
print(" overhead : real, allocated by the standard revenue-share")
print(" method")
print(" C's share : computed exactly, " + str(overhead_allocated_to_c))
print(" intent : stop making the product that loses money")
print(" figures misstated : 0")
print(" verdict : C LOSES 50 AFTER OVERHEAD, DROP IT")
print("")
print(" allocating the real overhead by the standard method is")
print(" the part done right here, and it is why C's reported")
print(" figure is exactly what the method says")
print("")
print("the drop")
print(" what C brought : " + str(revenue_c) + " of revenue against " + str(variable_cost_c) + " of variable cost,")
print(" a contribution of " + str(contribution_c))
print(" what was charged to C : " + str(overhead_allocated_to_c) + " of overhead that exists")
print(" regardless of C")
print(" when C is dropped : the " + str(contribution_c) + " leaves; the " + str(overhead_allocated_to_c) + " stays")
print(" so the company : loses C's " + str(contribution_c) + " and saves nothing")
print(" and next quarter : B, now carrying more overhead, shows a")
print(" loss too")
print("")
print("the result")
print(" profit before dropping C : " + str(company_profit_with_c))
print(" profit after : " + str(company_profit_without_c))
print(" is C's reported loss miscomputed : no; the allocation is")
print(" exact")
print(" was C losing the company money : no; C was covering " + str(contribution_c))
print(" of overhead that is now uncovered")
print("")
nc_c_judged_after_allocated_overhead = contribution_c - overhead_allocated_to_c
nc_c_judged_by_contribution = 400
nc_products_dropped_by_contribution = 0
print("null control - judge products by contribution, not allocated overhead")
print(" C after allocated overhead : " + str(nc_c_judged_after_allocated_overhead))
print(" C by contribution : " + str(nc_c_judged_by_contribution))
print(" products dropped by contribution : " + str(nc_products_dropped_by_contribution))
print(" no revenue and no cost changed; the overhead stopped")
print(" being counted as something a product could take with it")
print("")
print("what an allocated-overhead product report guarantees")
print(" each product's share of overhead is the standard share :")
print(" exactly, real overhead, revenue-share method")
print(" a product showing a loss is losing the company money :")
print(" not addressed; the overhead stays when the product goes,")
print(" so dropping C removes " + str(contribution_c) + " of contribution and no cost,")
print(" taking company profit from " + str(company_profit_with_c) + " to " + str(company_profit_without_c))
print("")
print("a cost allocated to a thing is not a cost caused by it; when the thing is")
print("removed the allocation moves to its neighbours and the cost stays, so the")
print("product that looked like a loss was the one paying part of everybody's bill")
print("")
print("It allocates real overhead by the standard method and C reports " + str(reported_profit_c) + ". But")
print("the " + str(overhead_allocated_to_c) + " charged to C stays when C goes and C's " + str(contribution_c) + " of contribution leaves;")
print("company profit falls from " + str(company_profit_with_c) + " to " + str(company_profit_without_c) + ", " + str(profit_lost_by_dropping_c) + " lost by dropping the product that")
print("was paying part of the bill, until products are judged by contribution.")stdout (executed)
textrevenue A / B / C : 6000 / 3000 / 1000
contribution A / B / C : 3000 / 1200 / 400
fixed overhead : 4500
overhead allocated to C : 450 (by revenue share)
reported profit of C : -50, a loss
company profit with C : 100
company profit after dropping C : -300
profit lost by dropping C : 400
the product profitability report
revenues and variable costs : real
overhead : real, allocated by the standard revenue-share
method
C's share : computed exactly, 450
intent : stop making the product that loses money
figures misstated : 0
verdict : C LOSES 50 AFTER OVERHEAD, DROP IT
allocating the real overhead by the standard method is
the part done right here, and it is why C's reported
figure is exactly what the method says
the drop
what C brought : 1000 of revenue against 600 of variable cost,
a contribution of 400
what was charged to C : 450 of overhead that exists
regardless of C
when C is dropped : the 400 leaves; the 450 stays
so the company : loses C's 400 and saves nothing
and next quarter : B, now carrying more overhead, shows a
loss too
the result
profit before dropping C : 100
profit after : -300
is C's reported loss miscomputed : no; the allocation is
exact
was C losing the company money : no; C was covering 400
of overhead that is now uncovered
null control - judge products by contribution, not allocated overhead
C after allocated overhead : -50
C by contribution : 400
products dropped by contribution : 0
no revenue and no cost changed; the overhead stopped
being counted as something a product could take with it
what an allocated-overhead product report guarantees
each product's share of overhead is the standard share :
exactly, real overhead, revenue-share method
a product showing a loss is losing the company money :
not addressed; the overhead stays when the product goes,
so dropping C removes 400 of contribution and no cost,
taking company profit from 100 to -300
a cost allocated to a thing is not a cost caused by it; when the thing is
removed the allocation moves to its neighbours and the cost stays, so the
product that looked like a loss was the one paying part of everybody's bill
It allocates real overhead by the standard method and C reports -50. But
the 450 charged to C stays when C goes and C's 400 of contribution leaves;
company profit falls from 100 to -300, 400 lost by dropping the product that
was paying part of the bill, until products are judged by contribution.Trace event types
eml:run:starteml:assigneml:outputeml:run:done