[PR #5061] [CLOSED] [WIP] Add Recurring Payments component and card #5737

Closed
opened 2026-02-28 21:17:38 -06:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/actualbudget/actual/pull/5061
Author: @a-huk
Created: 5/25/2025
Status: Closed

Base: masterHead: master


📝 Commits (2)

  • 476c7fe Add Recurring Payments component and card
  • 0df4739 feat: add Recurring Payments component and card

📊 Changes

6 files changed (+1868 additions, -30 deletions)

View changed files

📝 packages/desktop-client/src/components/reports/Overview.tsx (+17 -0)
📝 packages/desktop-client/src/components/reports/ReportRouter.tsx (+3 -0)
packages/desktop-client/src/components/reports/graphs/RecurringPaymentsGraph.tsx (+1169 -0)
packages/desktop-client/src/components/reports/reports/RecurringPayments.tsx (+14 -0)
packages/desktop-client/src/components/reports/reports/RecurringPaymentsCard.tsx (+612 -0)
📝 packages/loot-core/src/types/models/dashboard.ts (+53 -30)

📄 Description

Hello, first PR on this project, so be gentle haha.

I was using Actual Budget and really wanted a way to see my recurring payments at a glance - you know, like subscriptions, monthly bills, that kind of stuff. I couldn't find anything like that, so I thought I'd give it a shot and build it myself.
What this adds:

A new "Recurring Payments" widget for the dashboard that shows a mini bar chart of your top recurring payments
A full report page where you can dive deeper into the analysis with filters and see individual transaction details
Pattern detection that figures out which payments are actually recurring Filters for accounts, payment frequency, amount variation, etc. Currency support as well.

How it works:
The component analyzes your transaction history over the last 12 months and tries to detect patterns - like if you pay Netflix €15.99 every ~30 days, it'll flag that as a monthly recurring payment. You can adjust the confidence threshold and other filters to fine-tune what gets detected.
I built this because I wanted to understand where my money was going every month without manually tracking subscriptions. The dashboard widget gives you a quick overview, and clicking through shows the full breakdown with individual transaction history.
I'm sure there are things I could have done better (this is my first time with this codebase!), so any feedback would be super appreciated. Also not 100% sure I got all the TypeScript types right, but it seems to work on my setup.
Let me know if you need me to change anything! Really excited to contribute to this awesome project


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/actualbudget/actual/pull/5061 **Author:** [@a-huk](https://github.com/a-huk) **Created:** 5/25/2025 **Status:** ❌ Closed **Base:** `master` ← **Head:** `master` --- ### 📝 Commits (2) - [`476c7fe`](https://github.com/actualbudget/actual/commit/476c7fec9f862109c41879c766564cca98664f2a) Add Recurring Payments component and card - [`0df4739`](https://github.com/actualbudget/actual/commit/0df47396dba73d4e3494262e2024900980e76103) feat: add Recurring Payments component and card ### 📊 Changes **6 files changed** (+1868 additions, -30 deletions) <details> <summary>View changed files</summary> 📝 `packages/desktop-client/src/components/reports/Overview.tsx` (+17 -0) 📝 `packages/desktop-client/src/components/reports/ReportRouter.tsx` (+3 -0) ➕ `packages/desktop-client/src/components/reports/graphs/RecurringPaymentsGraph.tsx` (+1169 -0) ➕ `packages/desktop-client/src/components/reports/reports/RecurringPayments.tsx` (+14 -0) ➕ `packages/desktop-client/src/components/reports/reports/RecurringPaymentsCard.tsx` (+612 -0) 📝 `packages/loot-core/src/types/models/dashboard.ts` (+53 -30) </details> ### 📄 Description Hello, first PR on this project, so be gentle haha. I was using Actual Budget and really wanted a way to see my recurring payments at a glance - you know, like subscriptions, monthly bills, that kind of stuff. I couldn't find anything like that, so I thought I'd give it a shot and build it myself. What this adds: A new "Recurring Payments" widget for the dashboard that shows a mini bar chart of your top recurring payments A full report page where you can dive deeper into the analysis with filters and see individual transaction details Pattern detection that figures out which payments are actually recurring Filters for accounts, payment frequency, amount variation, etc. Currency support as well. How it works: The component analyzes your transaction history over the last 12 months and tries to detect patterns - like if you pay Netflix €15.99 every ~30 days, it'll flag that as a monthly recurring payment. You can adjust the confidence threshold and other filters to fine-tune what gets detected. I built this because I wanted to understand where my money was going every month without manually tracking subscriptions. The dashboard widget gives you a quick overview, and clicking through shows the full breakdown with individual transaction history. I'm sure there are things I could have done better (this is my first time with this codebase!), so any feedback would be super appreciated. Also not 100% sure I got all the TypeScript types right, but it seems to work on my setup. Let me know if you need me to change anything! Really excited to contribute to this awesome project --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-02-28 21:17:38 -06:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/actual#5737