I’m building Ledgerly, an open-source finance app for personal, family, and office-style workspaces. The basic model sounded straightforward: transaction, account, category, amount. Then a real edge case showed up: someone enters a transaction today, but the purchase happened last month. If the app uses entry time instead of occurrence date, reports become misleading. Once shared workspaces are involved, the same record may also need payer/contact context, permissions, claims/approvals, and an...