diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..d8a95f4 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,14 @@ +# Repository Maintenance Rules + +## Expense synchronization + +Whenever a document is added or changed and it confirms an actual booked or paid expense, update [`expenses.md`](expenses.md) in the same change. + +1. Add or update exactly one ledger row per real expense. Do not duplicate an expense merely because it appears in both a booking file, PDF, email, or itinerary. +2. Do not add shortlist prices, rejected options, refundable deposits, estimated optional fees, or TBC amounts as expenses. +3. Record the payer exactly. **If it is not clear who paid, ask the user before updating the ledger; do not infer the payer.** +4. Preserve the source currency in the ledger. For shared-cost settlement, use the USD amount recorded in Tricount. +5. The accounting couples are **KTVT** (KT + VT) and **LKMS** (LK + MS). Shared expenses are split 50/50 between them unless a source clearly identifies an expense as couple-only. +6. **Couple-only expenses** stay in the ledger for completeness but do not affect the cross-couple settlement. +7. Ignore discrepancies below US$1 when they plausibly result from currency conversion or rounding. +8. After every ledger-row change, recompute the net balance and update the single settlement sentence in `expenses.md`. Show only the final result in the form: **“KTVT owes LKMS US$X.XX.”** (or the reverse). diff --git a/expenses.md b/expenses.md index 342eb8d..4d5343c 100644 --- a/expenses.md +++ b/expenses.md @@ -2,13 +2,27 @@ **Tricount:** (opens in the app) -All amounts in USD (Tricount group default currency). +Tricount's default currency is USD. Shared expenses are split 50/50 between **KTVT** and **LKMS**. Original currencies are preserved for couple-only expenses. + +## Ledger rules + +- Every project document that confirms an actual booked or paid expense must have exactly one corresponding row below; duplicate references to the same expense do not create duplicate rows. +- Candidate prices, TBC amounts, refundable deposits, and optional estimated fees are not expenses. +- If the payer is unclear, ask the user—never infer it. +- Ignore differences below US$1 when they plausibly come from currency conversion or rounding. +- Recalculate the settlement after every table change and keep only the final net result. ## Expenses -| Category | Expense | Amount | Paid by | -|---|---|---:|---| -| Accommodation | Sequoia cabin | US$771.75 | MS | -| Accommodation | Yosemite cabin | US$933.75 | MS | -| Accommodation | SF Airbnb | US$755.01 | MS | -| | **Total** | **US$2,460.51** | | +| Category | Expense | Amount | Paid by | Allocation | Source | +|---|---|---:|---|---|---| +| Accommodation | Sequoia cabin | US$771.75 | MS | Shared 50/50 | [`cabin-sequoia-miramonte.md`](bookings/cabin-sequoia-miramonte.md) | +| Accommodation | Yosemite cabin | US$933.75 | MS | Shared 50/50 | [`cabin-yosemite-wawona.md`](bookings/cabin-yosemite-wawona.md) | +| Accommodation | SF Airbnb | US$755.01 | MS | Shared 50/50 | [`airbnb-sf-daly-city.md`](bookings/airbnb-sf-daly-city.md) | +| Accommodation | Los Angeles — DTLA Airbnb | US$860.00 | KT | Shared 50/50 | [`airbnb-la-dtla.md`](bookings/airbnb-la-dtla.md) | +| Accommodation | Las Vegas — Wyndham Desert Rose | US$630.00 | KT | Shared 50/50 | [`wyndham-desert-rose-las-vegas.md`](bookings/wyndham-desert-rose-las-vegas.md) | +| Flights | MS & LK — YVR ↔ SFO | CA$1,369.76 | MS | Couple-only: LKMS | [`flights-ms.md`](bookings/flights-ms.md) | + +## Settlement + +**KTVT owes LKMS US$485.26.**