# Money report: 2026-04

Sources: `2026-01.csv` (27 rows), `2026-02.csv` (29 rows), `2026-03.csv` (29 rows), `2026-04.csv` (31 rows), 116 rows in total, all listed once in `categories.csv`. Amounts are quoted exactly as they appear in the exports; spending is negative, money in is positive. This report covers 2026-01 to 2026-04 and compares 2026-04 against the earlier months.

## Referee

Command run in this folder:

```
python3 money-referee.py categories.csv [0-9][0-9][0-9][0-9]-[0-9][0-9].csv; echo "EXIT_STATUS=$?"
```

The glob expanded to `2026-01.csv 2026-02.csv 2026-03.csv 2026-04.csv`.

Real exit status: **0** (printed as `EXIT_STATUS=0` by this run). Its result line was `RESULT: PASS, no mismatches`. It printed `Export rows read: 116; categories rows read: 116`. The exports total 13851.29 (`2026-01.csv` 3492.32, `2026-02.csv` 3428.14, `2026-03.csv` 3458.75, `2026-04.csv` 3472.08) and the category totals add up to 13851.29.

## Totals by category per month

Net totals per month, in exact cents.

| Category | 2026-01 | 2026-02 | 2026-03 | 2026-04 | All months |
|---|---:|---:|---:|---:|---:|
| Dining | -63.15 | -68.85 | -72.20 | -43.30 | -247.50 |
| Entertainment | 0.00 | 0.00 | -15.99 | -23.95 | -39.94 |
| Groceries | -277.21 | -283.52 | -289.02 | -287.15 | -1136.90 |
| Health | -49.79 | -54.79 | -47.85 | -49.25 | -201.68 |
| Housing | -1450.00 | -1450.00 | -1450.00 | -1450.00 | -5800.00 |
| Income | 5680.00 | 5680.00 | 5680.00 | 5680.00 | 22720.00 |
| Shopping | -40.47 | -21.02 | -33.28 | -42.49 | -137.26 |
| Transport | -126.95 | -127.10 | -129.55 | -127.95 | -511.55 |
| Utilities | -180.11 | -246.58 | -183.36 | -183.83 | -793.88 |
| **Net total** | **3492.32** | **3428.14** | **3458.75** | **3472.08** | **13851.29** |
| Money in (positive rows) | 5680.00 | 5703.48 | 5680.00 | 5680.00 | 22743.48 |
| Money out (negative rows) | -2187.68 | -2275.34 | -2221.25 | -2207.92 | -8892.19 |

Positive rows inside spending categories: Shopping for 2026-02 includes Hollow Hardware, 2026-02-11, 23.48 (`2026-02.csv` row 13). No positive rows inside spending categories in 2026-04.

Categories used, one per merchant:

| Category | Merchants |
|---|---|
| Income | Lanternworks Studio payroll |
| Housing | Brightwater Property Management rent |
| Utilities | Hearth Internet, Ferncall Mobile, Lantern Hollow Power and Water |
| Groceries | Tallow & Pine Grocers |
| Transport | Lantern Hollow Transit reload, Northfield Gas and Go |
| Dining | Mill Road Coffee, Corner Diner |
| Health | Willow Street Pharmacy, Granite Peak Fitness |
| Shopping | Cedar Books, Hollow Hardware, Harbor Street Florist |
| Entertainment | Pixelstream, Sparkline Games (new in 2026-04) |

No new category name was created. Sparkline Games, first seen in 2026-04, was placed in the existing Entertainment category.

## Recurring charges

Rule used: a charge is recurring when the same merchant (exact description) with the exact same amount comes back at a regular interval, meaning at least two of its dates are 27 to 33 days apart (monthly), 13 to 16 days apart (every two weeks) or 6 to 8 days apart (weekly). Two rows on the same date do not count as an interval; they are checked under possible duplicates. A charge whose first date falls in the latest month counts as soon as it has repeated at one of those intervals inside that month. A merchant whose amount changes every month does not meet the same-amount part of the rule and is covered under price changes instead.

| Merchant | Amount | Dates | Interval found |
|---|---:|---|---|
| Brightwater Property Management rent | -1450.00 | 2026-01-02, 2026-02-02, 2026-03-02, 2026-04-02 | monthly (31, 28 and 31 days) |
| Ferncall Mobile | -42.00 | 2026-01-07, 2026-02-07, 2026-03-07, 2026-04-07 | monthly (31, 28 and 31 days) |
| Granite Peak Fitness | -29.00 | 2026-01-09, 2026-02-09, 2026-03-09, 2026-04-09 | monthly (31, 28 and 31 days) |
| Lantern Hollow Transit reload | -15.00 | 2026-01-18, 2026-02-18, 2026-03-18, 2026-04-18 | monthly (31, 28 and 31 days) |
| Lantern Hollow Transit reload | -20.00 | 2026-01-04, 2026-02-04, 2026-03-04, 2026-04-04 and 2026-01-29, 2026-02-28, 2026-03-30, 2026-04-29 | two monthly series (31, 28 and 31 days; 30, 30 and 30 days); also weekly 2026-01-29 to 2026-02-04 (6 days) |
| Mill Road Coffee | -4.75 | 2026-01-05, 2026-01-19, 2026-02-05, 2026-02-19, 2026-03-05, 2026-03-20, 2026-04-05, 2026-04-20 | monthly (2026-01-05, 2026-02-05, 2026-03-05, 2026-04-05 and 2026-01-19, 2026-02-19, 2026-03-20, 2026-04-20) and every two weeks (14, 14, 14, 15, 16, 15 days) |
| Mill Road Coffee | -5.50 | 2026-01-27, 2026-02-26, 2026-03-27, 2026-04-27 | monthly (30, 29 and 31 days) |
| Mill Road Coffee | -5.25 | 2026-02-15, 2026-03-17, 2026-04-17 | monthly (30 and 31 days); the same amount on 2026-01-11 is 35 days before 2026-02-15, outside the window |
| Pixelstream | -15.99 | 2026-03-12, 2026-04-12 | monthly (31 days) |
| Sparkline Games | -1.99 | 2026-04-04, 2026-04-11, 2026-04-18, 2026-04-25 | weekly (7, 7 and 7 days) and every two weeks (2026-04-04 to 2026-04-18, 2026-04-11 to 2026-04-25, 14 days each); STARTED IN 2026-04 AND ALREADY REPEATED |

Recurring deposit (money in, same rule): Lanternworks Studio payroll, 2840.00, on 2026-01-02, 2026-01-15, 2026-02-02, 2026-02-13, 2026-03-02, 2026-03-15, 2026-04-02, 2026-04-15 (monthly pairs 28 to 31 days apart; 2026-01-02 to 2026-01-15, 2026-03-02 to 2026-03-15 and 2026-04-02 to 2026-04-15 are 13 days apart).

Charges that started in the latest month (2026-04) and already repeated: Sparkline Games, -1.99, four times in `2026-04.csv` (rows 5, 13, 20, 27), weekly. No other merchant started in 2026-04, so no charge that started in 2026-04 was seen only once.

Pixelstream, -15.99, which appeared once in 2026-03, repeated on 2026-04-12 and now meets the monthly rule.

Same merchant at a monthly interval with a different amount each month (not recurring under the same-amount rule): Hearth Internet on 2026-01-03, 2026-02-03, 2026-03-03, 2026-04-03 and Lantern Hollow Power and Water on 2026-01-14, 2026-02-14, 2026-03-13, 2026-04-13. Both appear under price changes.

## Price changes

Rule used: a merchant has exactly one charge in each of two consecutive months (two identical rows on the same date count once), the two dates are 27 to 33 days apart, and the amounts differ. The change compares the size of the charge, ignoring the minus sign.

| Merchant | Earlier charge | Later charge | Change | Into 2026-04 |
|---|---|---|---|---|
| Hearth Internet | 2026-01-03, -49.99 | 2026-02-03, -54.99 | the charge is 5.00 more | |
| Hearth Internet | 2026-02-03, -54.99 | 2026-03-03, -59.99 | the charge is 5.00 more | |
| Hearth Internet | 2026-03-03, -59.99 | 2026-04-03, -64.99 | the charge is 5.00 more | **yes** |
| Lantern Hollow Power and Water | 2026-01-14, -88.12 | 2026-02-14, -94.60 | the charge is 6.48 more | |
| Lantern Hollow Power and Water | 2026-02-14, -94.60 | 2026-03-13, -81.37 | the charge is 13.23 less | |
| Lantern Hollow Power and Water | 2026-03-13, -81.37 | 2026-04-13, -76.84 | the charge is 4.53 less | **yes** |
| Cedar Books | 2026-01-17, -16.99 | 2026-02-17, -12.50 | the charge is 4.49 less | |

Not flagged under this rule because the dates fall outside the 27 to 33 day window: Cedar Books 2026-02-17, -12.50 to 2026-03-26, -18.99 (37 days apart), and Cedar Books 2026-03-26, -18.99 to 2026-04-21, -14.99 (26 days apart).

## New merchants in the latest month (2026-04)

Merchants in `2026-04.csv` whose description does not appear in `2026-01.csv`, `2026-02.csv` or `2026-03.csv`:

| Merchant | Date | Amount | Source |
|---|---|---:|---|
| Sparkline Games | 2026-04-04 | -1.99 | `2026-04.csv` row 5 |
| Sparkline Games | 2026-04-11 | -1.99 | `2026-04.csv` row 13 |
| Sparkline Games | 2026-04-18 | -1.99 | `2026-04.csv` row 20 |
| Sparkline Games | 2026-04-25 | -1.99 | `2026-04.csv` row 27 |

## Possible duplicate charges

Rule used: two or more rows with the same merchant, the same date and the same amount.

| Merchant | Date | Amount | Rows |
|---|---|---:|---|
| Hearth Internet | 2026-02-03 | -54.99 | `2026-02.csv` rows 3 and 4 |

None of the possible duplicates fall in 2026-04; the one listed is in 2026-02.

Not flagged under this rule: Corner Diner has two rows on 2026-03-14 with different amounts, -22.40 (`2026-03.csv` row 15) and -9.75 (`2026-03.csv` row 16).
