docs(expenses): define ledger maintenance rules

This commit is contained in:
2026-09-03 14:28:28 -07:00
parent a10f7db5e9
commit 0b37501ba1
2 changed files with 35 additions and 7 deletions

14
AGENTS.md Normal file
View File

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

View File

@@ -2,13 +2,27 @@
**Tricount:** <https://tricount.com/tOMVasoAGxPeQkMAJP> (opens in the app) **Tricount:** <https://tricount.com/tOMVasoAGxPeQkMAJP> (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 ## Expenses
| Category | Expense | Amount | Paid by | | Category | Expense | Amount | Paid by | Allocation | Source |
|---|---|---:|---| |---|---|---:|---|---|---|
| Accommodation | Sequoia cabin | US$771.75 | MS | | 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 | | 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 | | Accommodation | SF Airbnb | US$755.01 | MS | Shared 50/50 | [`airbnb-sf-daly-city.md`](bookings/airbnb-sf-daly-city.md) |
| | **Total** | **US$2,460.51** | | | 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.**