Riddy21 / Riddy21/Friday_Budgeting_Pro
feat(savings): Excel export — dedicated Savings tab with rate, goals, and timeline
Open
Nobody has claimed this yet.
blocked
- Dominant language
- Python
- Stars
- 1
- Forks
- 1
- PR merge metrics
- No merged PRs in 30d
Description
Summary
Add a dedicated Savings tab to the Excel export, separate from the per-ledger tabs. This gives a clean summary of savings health for the period.
Tab layout
Section 1 — Savings Rate Summary
| This Month | YTD | Last 12 months | |
|---|---|---|---|
| Income | 4,476 | 26,856 | 53,712 |
| Savings | 750 | 4,500 | 9,600 |
| Savings Rate | 16.8% | 16.7% | 17.9% |
Section 2 — Monthly Savings Timeline
| Month | Saved | Savings Rate | Cumulative |
|---|---|---|---|
| Jun 2025 | 750 | 16.8% | 750 |
| Jul 2025 | 500 | 11.2% | 1,250 |
| … |
With a simple sparkline-style column chart if openpyxl supports it.
Section 3 — Savings Goals (if any set)
| Goal | Target | Saved | Progress | Deadline | On Track |
|---|---|---|---|---|---|
| Emergency Fund | 10,000 | 4,200 | 42% | Dec 2026 | ✅ |
Section 4 — By Category
| Savings Line Item | YTD | % of total savings |
|---|---|---|
| Wealthsimple TFSA | 3,000 | 66.7% |
| Emergency Fund | 1,500 | 33.3% |
Acceptance criteria
- Tab present in all exports (not just single-ledger)
- Graceful empty state when no savings transactions
- Goals section omitted when no goals set
- Unit tests for tab structure
Part of Epic #247
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the existing Excel export entry point and inspect how the per-ledger tabs are assembled. Add the Savings tab, including the empty-state and optional goals behavior, then add unit tests for its structure. Done means all exports include the tab and the acceptance criteria are covered.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- data
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100