<!-- canonical: efficientnewlanguage.org/ai/examples/915-the-balance-grew-and-bought-less | ai_layer_version: 0.1.0 | updated: 2026-09-19 -->

# Example 915 — The balance grew and bought less

`the_balance_grew_and_bought_less.eml` - A saver earns three percent for the year, the interest is real and correctly credited, and the statement shows the balance up by three percent. What that larger balance buys is computed below.

## EML

```eml
# Self-authored for the EML case corpus (no external origin). A saver earns
# three percent for the year, the interest is real and correctly credited, and
# the statement shows the balance up by three percent. What that larger balance
# buys is computed below.
#
# The statement is careful. The rate is the real contractual rate; the interest
# is credited exactly; the balance is up by exactly three percent; and the
# intent is exactly 'the savings grew'.
#
# Prices rose five percent over the same year, so the balance that grew three
# percent buys about two percent less than it did - the number went up and the
# savings went down.

10000 => balance_at_the_start
3 => interest_rate_percent
5 => price_rise_percent

int(balance_at_the_start * (100 + interest_rate_percent) / 100) => balance_at_the_end
balance_at_the_end - balance_at_the_start => interest_credited
int(10000 * (100 + price_rise_percent) / 100) => price_of_the_basket_at_the_end
int(balance_at_the_end * 10000 / price_of_the_basket_at_the_end) => baskets_the_end_balance_buys_per_myriad
10000 - baskets_the_end_balance_buys_per_myriad => purchasing_power_lost_per_myriad
interest_rate_percent - price_rise_percent => real_rate_percent

"balance at the start            : " + str(balance_at_the_start) + ", buys 10000 per ten thousand of a basket" ^0
"interest rate                   : " + str(interest_rate_percent) + " percent" ^0
"interest credited               : " + str(interest_credited) ^0
"balance at the end              : " + str(balance_at_the_end) ^0
"" ^0
"price rise over the year        : " + str(price_rise_percent) + " percent" ^0
"the basket now costs            : " + str(price_of_the_basket_at_the_end) ^0
"baskets the end balance buys    : " + str(baskets_the_end_balance_buys_per_myriad) + " per ten thousand" ^0
"purchasing power lost           : " + str(purchasing_power_lost_per_myriad) + " per ten thousand" ^0
"real rate                       : " + str(real_rate_percent) + " percent" ^0
"" ^0

# ---- what the statement verified ----

"the savings statement" ^0
"  rate : the real contractual rate, " + str(interest_rate_percent) + " percent" ^0
"  credit : exact, " + str(interest_credited) ^0
"  balance : up by exactly three percent" ^0
"  intent : the savings grew" ^0
"  interest miscredited : 0" ^0
"  verdict : THE BALANCE ROSE THREE PERCENT" ^0
"" ^0
"  crediting the exact interest is the part done right" ^0
"  here, and it is why the balance is precisely " + str(balance_at_the_end) ^0
"" ^0

# ---- what the balance buys ----

"nominal and real" ^0
"  what the balance counts : units of money" ^0
"  what a unit of money buys : less each year prices rise" ^0
"  the basket at the start : 10000" ^0
"  the basket at the end : " + str(price_of_the_basket_at_the_end) ^0
"  so the end balance buys : " + str(baskets_the_end_balance_buys_per_myriad) + " per ten thousand of" ^0
"    what the start balance bought" ^0
"  the savings, in baskets : shrank by " + str(purchasing_power_lost_per_myriad) + " per ten thousand" ^0
"" ^0

# ---- what the saver got ----

"the year" ^0
"  more money : yes, " + str(interest_credited) ^0
"  more purchasing power : no, " + str(purchasing_power_lost_per_myriad) + " per ten thousand less" ^0
"  is the statement wrong : no; the balance really is " + str(balance_at_the_end) ^0
"  is a larger balance more savings : only against prices" ^0
"    that stood still, and they rose five percent" ^0
"" ^0

# ---- null control ----

# The same statement expressed in real terms - the balance deflated by the price
# rise - or a rate compared against inflation before it is called growth.
300 => nc_growth_shown_nominal_per_myriad
baskets_the_end_balance_buys_per_myriad - 10000 => nc_growth_shown_real_per_myriad
1 => nc_statement_shows_a_loss_in_real_terms

"null control - deflate the balance by the price rise" ^0
"  growth shown, nominal : " + str(nc_growth_shown_nominal_per_myriad) + " per ten thousand" ^0
"  growth shown, real : " + str(nc_growth_shown_real_per_myriad) + " per ten thousand" ^0
"  statement shows a loss in real terms : " + str(nc_statement_shows_a_loss_in_real_terms) ^0
"  no interest and no price changed; the balance stopped" ^0
"  being read in units that had shrunk" ^0
"" ^0

# ---- the rule ----

"what a three-percent-credited statement guarantees" ^0
"  the balance is three percent larger in money : exactly," ^0
"    real rate, exact credit" ^0
"  the savings grew : not addressed; prices rose " + str(price_rise_percent) + " percent," ^0
"    so the larger balance buys " + str(baskets_the_end_balance_buys_per_myriad) + " per ten thousand of what" ^0
"    the smaller one did - a real rate of " + str(real_rate_percent) + " percent" ^0
"" ^0

"money is a count of a unit, and the unit is not fixed; a balance that grows" ^0
"more slowly than prices grows in number and shrinks in what it is for, and" ^0
"the statement reports the number" ^0
"" ^0

"The interest is real and exact - the balance rose from " + str(balance_at_the_start) + " to " + str(balance_at_the_end) + ". But" ^0
"prices rose " + str(price_rise_percent) + " percent, so the larger balance buys " + str(baskets_the_end_balance_buys_per_myriad) + " per ten thousand of" ^0
"what the smaller one did, " + str(purchasing_power_lost_per_myriad) + " per ten thousand lost, a real rate of " + str(real_rate_percent) + " percent," ^0
"until the statement is read in baskets and not in units." ^0
```

## Python (deterministic transpilation)

```python
balance_at_the_start = 10000
interest_rate_percent = 3
price_rise_percent = 5
balance_at_the_end = int(balance_at_the_start * (100 + interest_rate_percent) / 100)
interest_credited = balance_at_the_end - balance_at_the_start
price_of_the_basket_at_the_end = int(10000 * (100 + price_rise_percent) / 100)
baskets_the_end_balance_buys_per_myriad = int(balance_at_the_end * 10000 / price_of_the_basket_at_the_end)
purchasing_power_lost_per_myriad = 10000 - baskets_the_end_balance_buys_per_myriad
real_rate_percent = interest_rate_percent - price_rise_percent
print("balance at the start            : " + str(balance_at_the_start) + ", buys 10000 per ten thousand of a basket")
print("interest rate                   : " + str(interest_rate_percent) + " percent")
print("interest credited               : " + str(interest_credited))
print("balance at the end              : " + str(balance_at_the_end))
print("")
print("price rise over the year        : " + str(price_rise_percent) + " percent")
print("the basket now costs            : " + str(price_of_the_basket_at_the_end))
print("baskets the end balance buys    : " + str(baskets_the_end_balance_buys_per_myriad) + " per ten thousand")
print("purchasing power lost           : " + str(purchasing_power_lost_per_myriad) + " per ten thousand")
print("real rate                       : " + str(real_rate_percent) + " percent")
print("")
print("the savings statement")
print("  rate : the real contractual rate, " + str(interest_rate_percent) + " percent")
print("  credit : exact, " + str(interest_credited))
print("  balance : up by exactly three percent")
print("  intent : the savings grew")
print("  interest miscredited : 0")
print("  verdict : THE BALANCE ROSE THREE PERCENT")
print("")
print("  crediting the exact interest is the part done right")
print("  here, and it is why the balance is precisely " + str(balance_at_the_end))
print("")
print("nominal and real")
print("  what the balance counts : units of money")
print("  what a unit of money buys : less each year prices rise")
print("  the basket at the start : 10000")
print("  the basket at the end : " + str(price_of_the_basket_at_the_end))
print("  so the end balance buys : " + str(baskets_the_end_balance_buys_per_myriad) + " per ten thousand of")
print("    what the start balance bought")
print("  the savings, in baskets : shrank by " + str(purchasing_power_lost_per_myriad) + " per ten thousand")
print("")
print("the year")
print("  more money : yes, " + str(interest_credited))
print("  more purchasing power : no, " + str(purchasing_power_lost_per_myriad) + " per ten thousand less")
print("  is the statement wrong : no; the balance really is " + str(balance_at_the_end))
print("  is a larger balance more savings : only against prices")
print("    that stood still, and they rose five percent")
print("")
nc_growth_shown_nominal_per_myriad = 300
nc_growth_shown_real_per_myriad = baskets_the_end_balance_buys_per_myriad - 10000
nc_statement_shows_a_loss_in_real_terms = 1
print("null control - deflate the balance by the price rise")
print("  growth shown, nominal : " + str(nc_growth_shown_nominal_per_myriad) + " per ten thousand")
print("  growth shown, real : " + str(nc_growth_shown_real_per_myriad) + " per ten thousand")
print("  statement shows a loss in real terms : " + str(nc_statement_shows_a_loss_in_real_terms))
print("  no interest and no price changed; the balance stopped")
print("  being read in units that had shrunk")
print("")
print("what a three-percent-credited statement guarantees")
print("  the balance is three percent larger in money : exactly,")
print("    real rate, exact credit")
print("  the savings grew : not addressed; prices rose " + str(price_rise_percent) + " percent,")
print("    so the larger balance buys " + str(baskets_the_end_balance_buys_per_myriad) + " per ten thousand of what")
print("    the smaller one did - a real rate of " + str(real_rate_percent) + " percent")
print("")
print("money is a count of a unit, and the unit is not fixed; a balance that grows")
print("more slowly than prices grows in number and shrinks in what it is for, and")
print("the statement reports the number")
print("")
print("The interest is real and exact - the balance rose from " + str(balance_at_the_start) + " to " + str(balance_at_the_end) + ". But")
print("prices rose " + str(price_rise_percent) + " percent, so the larger balance buys " + str(baskets_the_end_balance_buys_per_myriad) + " per ten thousand of")
print("what the smaller one did, " + str(purchasing_power_lost_per_myriad) + " per ten thousand lost, a real rate of " + str(real_rate_percent) + " percent,")
print("until the statement is read in baskets and not in units.")
```

## stdout (executed)

```text
balance at the start            : 10000, buys 10000 per ten thousand of a basket
interest rate                   : 3 percent
interest credited               : 300
balance at the end              : 10300

price rise over the year        : 5 percent
the basket now costs            : 10500
baskets the end balance buys    : 9809 per ten thousand
purchasing power lost           : 191 per ten thousand
real rate                       : -2 percent

the savings statement
  rate : the real contractual rate, 3 percent
  credit : exact, 300
  balance : up by exactly three percent
  intent : the savings grew
  interest miscredited : 0
  verdict : THE BALANCE ROSE THREE PERCENT

  crediting the exact interest is the part done right
  here, and it is why the balance is precisely 10300

nominal and real
  what the balance counts : units of money
  what a unit of money buys : less each year prices rise
  the basket at the start : 10000
  the basket at the end : 10500
  so the end balance buys : 9809 per ten thousand of
    what the start balance bought
  the savings, in baskets : shrank by 191 per ten thousand

the year
  more money : yes, 300
  more purchasing power : no, 191 per ten thousand less
  is the statement wrong : no; the balance really is 10300
  is a larger balance more savings : only against prices
    that stood still, and they rose five percent

null control - deflate the balance by the price rise
  growth shown, nominal : 300 per ten thousand
  growth shown, real : -191 per ten thousand
  statement shows a loss in real terms : 1
  no interest and no price changed; the balance stopped
  being read in units that had shrunk

what a three-percent-credited statement guarantees
  the balance is three percent larger in money : exactly,
    real rate, exact credit
  the savings grew : not addressed; prices rose 5 percent,
    so the larger balance buys 9809 per ten thousand of what
    the smaller one did - a real rate of -2 percent

money is a count of a unit, and the unit is not fixed; a balance that grows
more slowly than prices grows in number and shrinks in what it is for, and
the statement reports the number

The interest is real and exact - the balance rose from 10000 to 10300. But
prices rose 5 percent, so the larger balance buys 9809 per ten thousand of
what the smaller one did, 191 per ten thousand lost, a real rate of -2 percent,
until the statement is read in baskets and not in units.
```

## Round-trip

`ok: true` — round-trip fixpoint reached (python1 == python2)

## Trace event types

eml:run:start · eml:assign · eml:output · eml:run:done
