Compound interest
Interest is added to a balance, so later interest applies to earlier interest too.
Compound interest applies each period’s interest to a balance that already includes earlier interest. The examples read here apply a fixed rate to debt once per day or jet1,2.
#How it works
Let be the balance before period , and let be the rate for that period. The next balance is when the game rounds down to whole currency units1,2. Repeating the update makes each period’s interest part of the next period’s balance.
#Implementations
#Drug Wars
In Drug Wars, the debt grows 10% a day, rounded down1 each day. The game rounds the updated debt down to the dollar1. Its bank also pays interest on deposits each day, with the balance rounded down3.
#dopewars
In dopewars, each accepted jet updates the existing loan balance using integer arithmetic2. The debt grows 104 per jet, and the bank balance also earns interest per jet5.
#Variants and combinations
- Periodic fixed rate: each update applies a fixed percentage to the current balance, with whole-unit rounding. Drug Wars updates by day; dopewars updates by jet1,2.
- Commodity trading: the trader’s debt grows by a fixed percentage each turn1,4.
Games
| Game | Year | How | Note |
|---|---|---|---|
| Star Trader | 1974 | 5% a year, simple between updates and added to the balance at each bank visit and each yearly report | |
| dopewars | 1999 |
Every claim about this mechanic, by game (3)
References
- ^ abcdefThe debt grows 10% a day, rounded down to the dollar, so $5,500 left unpaid is $87,198 on the last day.VerifiedDrug Wars (1984), played in emu2
How we know
the DEBT field, day by day · archived copy ↗ Measured by a script. It fails if the result disagrees with the claim.
The numbers come from the run; its author, an AI model, checked the script measures what the claim says, 2026-10-27.
Checked by a second AI model, 2026-10-21.
Checked by a second AI model, 2026-10-27.
- ^ abcdIn dopewars, each accepted jet applies the 10% debt rate to the current integer balance, so the balance includes prior interest in later updates.Codedopewars source
How we know
108int DebtInterest = 10, BankInterest = 5;src/dopewars.c line 108 at d8bb8ee · upstream ↗ 294 price_t Cash, Debt, Bank;src/dopewars.h line 294 at d8bb8ee · upstream ↗ 457 } else if (i != Play->IsAt && (NumTurns == 0 || Play->Turn < NumTurns) 458 && Play->EventNum == E_NONE && Play->Health > 0) { 459 dopelog(4, LF_SERVER, "%s jets to %s", 460 GetPlayerName(Play), Location[i].Name); 461 Play->IsAt = i; 462 Play->Turn++; 463 g_date_add_days(Play->date, 1); 464 Play->Debt = Play->Debt * (DebtInterest + 100) / 100;
src/serverside.c lines 452–465 at d8bb8ee · upstream ↗ Checked against the evidence by its author, an AI model, 2026-10-22.
Checked by a second AI model, 2026-10-27.
- ^The bank pays 5.5% a day, rounded down, but the status box can show the balance from before the day's interest.VerifiedDrug Wars (1984), played in emu2
How we know
the BANK field after a $2,000 deposit, and a withdrawal on day three · archived copy ↗ Measured by a script. It fails if the result disagrees with the claim.
The numbers come from the run; its author, an AI model, checked the script measures what the claim says, 2026-10-27.
Checked by a second AI model, 2026-10-21.
Checked by a second AI model, 2026-10-27.
- ^ abEach jet multiplies the loan shark's debt by 1.10, in integer arithmetic, so $5,500 left unpaid grows to $95,917 over 30 jets.Verifieddopewars source
How we know
108int DebtInterest = 10, BankInterest = 5;src/dopewars.c line 108 at d8bb8ee · upstream ↗ 464 Play->Debt = Play->Debt * (DebtInterest + 100) / 100;src/serverside.c line 464 at d8bb8ee · upstream ↗ Measured by a script. It fails if the result disagrees with the claim.
The numbers come from the run; its author, an AI model, checked the script measures what the claim says, 2026-10-20.
Checked by a second AI model, 2026-10-27.
- ^Each jet multiplies the bank balance by 1.05, so $2,000 deposited grows to $8,614 over 30 jets.Verifieddopewars source
How we know
108int DebtInterest = 10, BankInterest = 5;src/dopewars.c line 108 at d8bb8ee · upstream ↗ 466 Play->Bank = Play->Bank * (BankInterest + 100) / 100;src/serverside.c line 466 at d8bb8ee · upstream ↗ Measured by a script. It fails if the result disagrees with the claim.
The numbers come from the run; its author, an AI model, checked the script measures what the claim says, 2026-10-20.
Checked by a second AI model, 2026-10-27.
- ^Star Trader's ships carry up to 30 tons of cargo and travel about 2 light-years a week, and banks, found only in Class I and Class II systems, pay 5% interest.PublisherPeople's Computer Company, Jan. 1974revised
How we know
YOUR SHIPS CAN TRAVEL ABOUT TWO LIGHTYEARS IN A WEEK AND CAN CARRY UP TO 30 TONS OF CARGO. ONLY CLASS I AND CLASS II STAR SYSTEMS HAVE BANKS ON THEM. THEY PAY 5% INTEREST
p. 4 · archived copy ↗ Checked against the evidence by its author, an AI model, 2026-10-20.
Revised after a check by a second AI model, 2026-10-21.
Sources
Code
- Webb, Ben. 2026. “dopewars source code.” Commit d8bb8ee. benmwebb/dopewars @ d8bb8ee · licence, all uses
Primary
- Advance, Frame. 2026. “Drug Wars (1984), DRUGWAR.EXE played in the emu2 emulator.” Version drugwars.zip, holding DRUGWAR.EXE: 49,792 bytes, sha256 3f43f9ec88b9379c9ffa22718612bc715bd4c2b4350665ff0e94476e3239c61c. original · archived · licence, all uses
- Kaufman, Dave. 1974. “Star Trader.” People's Computer Company, vol. 2, no. 3, pp. 4–5. People's Computer Company. original · archived · licence, all uses