# Money report: 2026-01, 2026-02, 2026-03

Sources: `2026-01.csv` (27 rows), `2026-02.csv` (29 rows), `2026-03.csv` (29 rows), 85 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.

## Referee

Command run in this folder:

```
python3 money-referee.py categories.csv 2026-01.csv 2026-02.csv 2026-03.csv
```

Real exit status: **0** (captured with `echo $?` right after the command). Its last line was `RESULT: PASS, no mismatches`. It read 85 export rows and 85 categories rows; the exports total 10379.21 and the category totals add up to 10379.21.

## Totals by category per month

Net totals per month, in exact cents.

| Category | 2026-01 | 2026-02 | 2026-03 | All three months |
|---|---:|---:|---:|---:|
| Dining | -63.15 | -68.85 | -72.20 | -204.20 |
| Entertainment | 0.00 | 0.00 | -15.99 | -15.99 |
| Groceries | -277.21 | -283.52 | -289.02 | -849.75 |
| Health | -49.79 | -54.79 | -47.85 | -152.43 |
| Housing | -1450.00 | -1450.00 | -1450.00 | -4350.00 |
| Income | 5680.00 | 5680.00 | 5680.00 | 17040.00 |
| Shopping | -40.47 | -21.02 | -33.28 | -94.77 |
| Transport | -126.95 | -127.10 | -129.55 | -383.60 |
| Utilities | -180.11 | -246.58 | -183.36 | -610.05 |
| **Net total** | **3492.32** | **3428.14** | **3458.75** | **10379.21** |
| Money in (positive rows) | 5680.00 | 5703.48 | 5680.00 | 17063.48 |
| Money out (negative rows) | -2187.68 | -2275.34 | -2221.25 | -6684.27 |

Shopping for 2026-02 includes a positive row: Hollow Hardware, 2026-02-11, 23.48 (`2026-02.csv` row 13). The matching amount appeared as a charge on 2026-01-25, -23.48 (`2026-01.csv` row 24).

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 |

## 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 | monthly (31 and 28 days) |
| Ferncall Mobile | -42.00 | 2026-01-07, 2026-02-07, 2026-03-07 | monthly (31 and 28 days) |
| Granite Peak Fitness | -29.00 | 2026-01-09, 2026-02-09, 2026-03-09 | monthly (31 and 28 days) |
| Lantern Hollow Transit reload | -15.00 | 2026-01-18, 2026-02-18, 2026-03-18 | monthly (31 and 28 days) |
| Lantern Hollow Transit reload | -20.00 | 2026-01-04, 2026-02-04, 2026-03-04 and 2026-01-29, 2026-02-28, 2026-03-30 | two monthly series (31 and 28 days; 30 and 30 days) |
| Mill Road Coffee | -4.75 | 2026-01-05, 2026-01-19, 2026-02-05, 2026-02-19, 2026-03-05, 2026-03-20 | monthly (2026-01-05, 2026-02-05, 2026-03-05 and 2026-01-19, 2026-02-19, 2026-03-20) and every two weeks (14, 14, 14, 15 days) |
| Mill Road Coffee | -5.50 | 2026-01-27, 2026-02-26, 2026-03-27 | monthly (30 and 29 days) |
| Mill Road Coffee | -5.25 | 2026-02-15, 2026-03-17 | monthly (30 days); the same amount on 2026-01-11 is 35 days before 2026-02-15, outside the window |

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 (monthly pairs 28 to 31 days apart; 2026-01-02 to 2026-01-15 and 2026-03-02 to 2026-03-15 are 13 days apart).

Charges that started in the latest month (2026-03) and already repeated: none. Pixelstream, -15.99, appears once, on 2026-03-12.

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 and Lantern Hollow Power and Water on 2026-01-14, 2026-02-14, 2026-03-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.

| Merchant | Earlier charge | Later charge | Change |
|---|---|---|---|
| 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 |
| 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 |
| Cedar Books | 2026-01-17, -16.99 | 2026-02-17, -12.50 | the charge is 4.49 less |

Not flagged under this rule: Cedar Books 2026-02-17, -12.50 to 2026-03-26, -18.99, because the dates are 37 days apart.

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

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

| Merchant | Date | Amount | Source |
|---|---|---:|---|
| Pixelstream | 2026-03-12 | -15.99 | `2026-03.csv` row 12 |

## 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 |

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).
