Case 916

The company was profitable and could not pay its staff

the_company_was_profitable_and_could_not_pay_its_staff.eml - A company delivers work worth 1000 a month at a cost of 800, books a profit of 200 every month, and in month three cannot make payroll. Every entry is real and the profit is correctly computed. When the money the profit is made of actually arrives is computed below.

ok: true — round-trip fixpoint reached (python1 == python2)updated 2026-09-19

EML

eml
# Self-authored for the EML case corpus (no external origin). A company
# delivers work worth 1000 a month at a cost of 800, books a profit of 200 every
# month, and in month three cannot make payroll. Every entry is real and the
# profit is correctly computed. When the money the profit is made of actually
# arrives is computed below.
#
# The books are careful. Revenue is recognised when the work is delivered; the
# costs are real and recognised when incurred; the monthly profit of 200 is
# exact; and the intent is exactly 'is the company making money'.
#
# Customers pay ninety days after delivery and staff are paid the same month, so
# for three months the company pays 800 a month out and receives nothing in -
# it is 600 in profit and 2400 short of cash.

1000 => revenue_recognised_per_month
800 => costs_paid_per_month
90 => customer_payment_terms_days
3 => months_elapsed

revenue_recognised_per_month - costs_paid_per_month => profit_per_month
profit_per_month * months_elapsed => profit_booked_so_far
0 => cash_received_so_far
costs_paid_per_month * months_elapsed => cash_paid_out_so_far
cash_received_so_far - cash_paid_out_so_far => cash_position
profit_booked_so_far - cash_position => gap_between_profit_and_cash
revenue_recognised_per_month * months_elapsed => receivables_owed_by_customers

"work delivered each month       : " + str(revenue_recognised_per_month) + ", recognised on delivery" ^0
"costs each month                : " + str(costs_paid_per_month) + ", paid in the month" ^0
"profit each month               : " + str(profit_per_month) ^0
"customers pay after             : " + str(customer_payment_terms_days) + " days" ^0
"" ^0
"after " + str(months_elapsed) + " months" ^0
"  profit booked                 : " + str(profit_booked_so_far) ^0
"  cash received                 : " + str(cash_received_so_far) ^0
"  cash paid out                 : " + str(cash_paid_out_so_far) ^0
"  cash position                 : " + str(cash_position) ^0
"  owed by customers             : " + str(receivables_owed_by_customers) ^0
"  gap between profit and cash   : " + str(gap_between_profit_and_cash) ^0
"" ^0

# ---- what the books verified ----

"the profit and loss" ^0
"  revenue : recognised when the work is delivered" ^0
"  costs : real, recognised when incurred" ^0
"  profit : exact, " + str(profit_per_month) + " a month" ^0
"  intent : is the company making money" ^0
"  entries misrecognised : 0" ^0
"  verdict : PROFITABLE EVERY MONTH" ^0
"" ^0
"  recognising revenue on delivery and costs when incurred" ^0
"  is the part done right here, and it is why the profit" ^0
"  measures the business the company is doing" ^0
"" ^0

# ---- when the money arrives ----

"accrual and cash" ^0
"  what the profit counts : work done and costs owed, when" ^0
"    they happen" ^0
"  what the bank counts : money in and money out, when it" ^0
"    moves" ^0
"  money out : " + str(costs_paid_per_month) + " a month, from month one" ^0
"  money in : nothing until day " + str(customer_payment_terms_days) ^0
"  so by month three : " + str(profit_booked_so_far) + " of profit and " + str(cash_position) + " of cash" ^0
"  the " + str(receivables_owed_by_customers) + " the customers owe : is real, and not in the bank" ^0
"" ^0

# ---- what the company got ----

"month three payroll" ^0
"  profit to date : " + str(profit_booked_so_far) ^0
"  cash to date : " + str(cash_position) ^0
"  is the profit wrong : no; the work was done and the" ^0
"    customers owe the money" ^0
"  can profit pay staff : no; only cash can, and the cash is" ^0
"    " + str(customer_payment_terms_days) + " days behind the profit" ^0
"" ^0

# ---- null control ----

# The same company watching a cash forecast beside the profit (or financing the
# receivables), so the timing gap is seen before payroll.
600 => nc_position_the_profit_view_shows
cash_received_so_far - cash_paid_out_so_far => nc_position_the_cash_view_shows
1 => nc_payroll_gap_visible_in_advance

"null control - forecast the cash beside the profit" ^0
"  position the profit view shows : " + str(nc_position_the_profit_view_shows) ^0
"  position the cash view shows : " + str(nc_position_the_cash_view_shows) ^0
"  payroll gap visible in advance : " + str(nc_payroll_gap_visible_in_advance) ^0
"  no sale and no cost changed; the timing of the money" ^0
"  stopped being invisible to the number being watched" ^0
"" ^0

# ---- the rule ----

"what an exact monthly profit guarantees" ^0
"  the work done exceeded the costs incurred : exactly," ^0
"    revenue on delivery, costs as incurred" ^0
"  the company can pay its bills : not addressed; customers" ^0
"    pay " + str(customer_payment_terms_days) + " days after delivery and staff are paid now, so " + str(profit_booked_so_far) ^0
"    of profit sits beside " + str(cash_position) + " of cash" ^0
"" ^0

"profit is a claim about what was earned and cash is a fact about what is in" ^0
"the bank, and they agree only when the money moves as fast as the work; a" ^0
"profitable company with slow customers is solvent on paper and insolvent on" ^0
"payday" ^0
"" ^0

"Profit of " + str(profit_per_month) + " every month, exactly computed - the company is making money." ^0
"But customers pay " + str(customer_payment_terms_days) + " days after delivery and costs are paid now, so after " + str(months_elapsed) ^0
"months it has " + str(profit_booked_so_far) + " of profit and " + str(cash_position) + " of cash, with " + str(receivables_owed_by_customers) + " owed and not arrived," ^0
"until the cash is forecast beside the profit." ^0

Python (deterministic transpilation)

python
revenue_recognised_per_month = 1000
costs_paid_per_month = 800
customer_payment_terms_days = 90
months_elapsed = 3
profit_per_month = revenue_recognised_per_month - costs_paid_per_month
profit_booked_so_far = profit_per_month * months_elapsed
cash_received_so_far = 0
cash_paid_out_so_far = costs_paid_per_month * months_elapsed
cash_position = cash_received_so_far - cash_paid_out_so_far
gap_between_profit_and_cash = profit_booked_so_far - cash_position
receivables_owed_by_customers = revenue_recognised_per_month * months_elapsed
print("work delivered each month       : " + str(revenue_recognised_per_month) + ", recognised on delivery")
print("costs each month                : " + str(costs_paid_per_month) + ", paid in the month")
print("profit each month               : " + str(profit_per_month))
print("customers pay after             : " + str(customer_payment_terms_days) + " days")
print("")
print("after " + str(months_elapsed) + " months")
print("  profit booked                 : " + str(profit_booked_so_far))
print("  cash received                 : " + str(cash_received_so_far))
print("  cash paid out                 : " + str(cash_paid_out_so_far))
print("  cash position                 : " + str(cash_position))
print("  owed by customers             : " + str(receivables_owed_by_customers))
print("  gap between profit and cash   : " + str(gap_between_profit_and_cash))
print("")
print("the profit and loss")
print("  revenue : recognised when the work is delivered")
print("  costs : real, recognised when incurred")
print("  profit : exact, " + str(profit_per_month) + " a month")
print("  intent : is the company making money")
print("  entries misrecognised : 0")
print("  verdict : PROFITABLE EVERY MONTH")
print("")
print("  recognising revenue on delivery and costs when incurred")
print("  is the part done right here, and it is why the profit")
print("  measures the business the company is doing")
print("")
print("accrual and cash")
print("  what the profit counts : work done and costs owed, when")
print("    they happen")
print("  what the bank counts : money in and money out, when it")
print("    moves")
print("  money out : " + str(costs_paid_per_month) + " a month, from month one")
print("  money in : nothing until day " + str(customer_payment_terms_days))
print("  so by month three : " + str(profit_booked_so_far) + " of profit and " + str(cash_position) + " of cash")
print("  the " + str(receivables_owed_by_customers) + " the customers owe : is real, and not in the bank")
print("")
print("month three payroll")
print("  profit to date : " + str(profit_booked_so_far))
print("  cash to date : " + str(cash_position))
print("  is the profit wrong : no; the work was done and the")
print("    customers owe the money")
print("  can profit pay staff : no; only cash can, and the cash is")
print("    " + str(customer_payment_terms_days) + " days behind the profit")
print("")
nc_position_the_profit_view_shows = 600
nc_position_the_cash_view_shows = cash_received_so_far - cash_paid_out_so_far
nc_payroll_gap_visible_in_advance = 1
print("null control - forecast the cash beside the profit")
print("  position the profit view shows : " + str(nc_position_the_profit_view_shows))
print("  position the cash view shows : " + str(nc_position_the_cash_view_shows))
print("  payroll gap visible in advance : " + str(nc_payroll_gap_visible_in_advance))
print("  no sale and no cost changed; the timing of the money")
print("  stopped being invisible to the number being watched")
print("")
print("what an exact monthly profit guarantees")
print("  the work done exceeded the costs incurred : exactly,")
print("    revenue on delivery, costs as incurred")
print("  the company can pay its bills : not addressed; customers")
print("    pay " + str(customer_payment_terms_days) + " days after delivery and staff are paid now, so " + str(profit_booked_so_far))
print("    of profit sits beside " + str(cash_position) + " of cash")
print("")
print("profit is a claim about what was earned and cash is a fact about what is in")
print("the bank, and they agree only when the money moves as fast as the work; a")
print("profitable company with slow customers is solvent on paper and insolvent on")
print("payday")
print("")
print("Profit of " + str(profit_per_month) + " every month, exactly computed - the company is making money.")
print("But customers pay " + str(customer_payment_terms_days) + " days after delivery and costs are paid now, so after " + str(months_elapsed))
print("months it has " + str(profit_booked_so_far) + " of profit and " + str(cash_position) + " of cash, with " + str(receivables_owed_by_customers) + " owed and not arrived,")
print("until the cash is forecast beside the profit.")

stdout (executed)

text
work delivered each month       : 1000, recognised on delivery
costs each month                : 800, paid in the month
profit each month               : 200
customers pay after             : 90 days

after 3 months
  profit booked                 : 600
  cash received                 : 0
  cash paid out                 : 2400
  cash position                 : -2400
  owed by customers             : 3000
  gap between profit and cash   : 3000

the profit and loss
  revenue : recognised when the work is delivered
  costs : real, recognised when incurred
  profit : exact, 200 a month
  intent : is the company making money
  entries misrecognised : 0
  verdict : PROFITABLE EVERY MONTH

  recognising revenue on delivery and costs when incurred
  is the part done right here, and it is why the profit
  measures the business the company is doing

accrual and cash
  what the profit counts : work done and costs owed, when
    they happen
  what the bank counts : money in and money out, when it
    moves
  money out : 800 a month, from month one
  money in : nothing until day 90
  so by month three : 600 of profit and -2400 of cash
  the 3000 the customers owe : is real, and not in the bank

month three payroll
  profit to date : 600
  cash to date : -2400
  is the profit wrong : no; the work was done and the
    customers owe the money
  can profit pay staff : no; only cash can, and the cash is
    90 days behind the profit

null control - forecast the cash beside the profit
  position the profit view shows : 600
  position the cash view shows : -2400
  payroll gap visible in advance : 1
  no sale and no cost changed; the timing of the money
  stopped being invisible to the number being watched

what an exact monthly profit guarantees
  the work done exceeded the costs incurred : exactly,
    revenue on delivery, costs as incurred
  the company can pay its bills : not addressed; customers
    pay 90 days after delivery and staff are paid now, so 600
    of profit sits beside -2400 of cash

profit is a claim about what was earned and cash is a fact about what is in
the bank, and they agree only when the money moves as fast as the work; a
profitable company with slow customers is solvent on paper and insolvent on
payday

Profit of 200 every month, exactly computed - the company is making money.
But customers pay 90 days after delivery and costs are paid now, so after 3
months it has 600 of profit and -2400 of cash, with 3000 owed and not arrived,
until the cash is forecast beside the profit.

Trace event types

eml:run:starteml:assigneml:outputeml:run:done