-
-
Notifications
You must be signed in to change notification settings - Fork 368
Feature Request: Align CSV Export with JSON: Add Sorting and Missing 'Paid By' Columns #456
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
|
Thanks a lot for this PR, @Jessica1213 – adding the “Paid By” column makes the CSV export much more useful and it’s great that you started this. While testing this, I realised that the current CSV format is still quite hard to work with in practice. The per‑participant columns don’t really represent a clear, directly usable value (they are more like signed shares), and it’s difficult to answer the usual question “who owes whom how much?” from the export alone. I’d love to take this one step further and make the CSV export express per‑expense saldo per participant instead:
I’ve spiked this approach in my fork in the branch If this direction makes sense to you and the maintainers, I’d be happy to turn this into a proper follow‑up PR (or you can cherry‑pick the change into this one). |
|
Thanks for the link — that thread really convinced me that the current CSV format needs an adjustment. Jessica’s PR addresses the main shortcomings of the current “signed share” export. Together with my proposed patch (https://github.com/Uli-Z/spliit-room/tree/feature/csv-saldo-export) this becomes a very usable solution. I tested the approach by entering the edge cases discussed in #342 into a group and exporting the data as CSV in the new format (Jessica’s PR + my patch). To demonstrate that no information is lost and everything can be reconstructed, I added a tiny Python script that re-analyzes the exported CSV. You can try it yourself in the branch above:
By the way, I made one small change to my suggestion: beyond a reimbursement-related bug, it became clear that the is_reimbursement column is fully redundant once reimbursements use Cost=0 across the board. Script output (evidence the CSV is complete and consistent)2025-05-16 – Altruist payment: Alice paid $20.00
2025-05-17 – By amount: Alice paid $40.00
2025-05-17 – By percentage: Bob paid $40.00
2025-05-17 – By shares: Carol paid $50.00
2025-05-17 – Income: Bob earned $30.00
2025-05-17 – Reimbursement Bob→Carol: Bob paid $10.00
2025-05-17 – Self-payment: Bob paid $100.00
Sum of all balances: $0.00
I believe this also closes your issue #471. |
|
Hi @Uli-Z, Thanks again for the detailed analysis and for sharing your work in the I agree that converting the output to a "per-expense saldo" format would be a valuable functional enhancement that makes aggregation much easier for users. However, to ensure a smooth review process and adhere to the Single Responsibility Principle, I need to keep the scope of this PR #455 strictly focused on the original goal: the essential bug fix for sorting and basic column alignment with JSON export. We should proceed to merge my current PR first independently (the sorting fix and alignment). I strongly recommend your You can base your new branch on the changes from this PR. This approach ensures a cleaner git history and clear accountability for each set of changes. Thanks for your understanding! |
Fixes #455