Add recurring transactions and transaction templates #44

Open
opened 2026-05-29 13:00:17 +00:00 by andrew · 0 comments
Owner

Add the ability for users to plan ahead with recurring transactions and transaction templates.

Recurring Transactions

Users can add a pre-filled transaction that occurs on a periodic schedule, like once a month, once a year, bi-weekly, etc. Then, every time that this recurring transaction is scheduled to occur, Finnow will prompt you to confirm that the transaction has actually been executed, allowing you to make any last-minute changes, and then saves the transaction to your profile.

It'll introduce the concept of "pending" (or draft) transactions that haven't been added to the official list of journal entries, so that when a recurring transaction happens, it'll just create that pending transaction.

Maybe if you don't actually confirm a recurring transaction, after X days, it'll disappear (maybe not).

Transaction Templates

Often times, you'll record similar transactions, like each time you refuel your car, you enter a credit transaction categorized as "Gas", so it could be convenient to add a "template" where you just need to fill in the amount and vendor and submit. Templates can probably use the same underlying structure as the "drafts" described in Recurring Transactions, but then when viewing a draft, you can click a button to "Make this draft a template".

Technical Details

Both of the above features would be implemented by adding a TRANSACTION_DRAFT database table, with a structure that basically copies the main TRANSACTION table, with an additional IS_TEMPLATE property, and looser constraints around what information must be present.

Then for Recurring Transactions, an additional table named RECURRING_TRANSACTION_SCHEDULE would be added:

CREATE TABLE RECURRING_TRANSACTION_SCHEDULE (
  ID INTEGER PRIMARY KEY,
  DRAFT_ID INTEGER FOREIGN KEY REFERENCES TRANSACTION_DRAFT,
  SCHEDULE_EXPR TEXT NOT NULL
);

It would most likely use a cron-style scheduling expression (or some other text-based approach).

UI Updates

A new page for editing transaction drafts will need to be added, as well as a page for editing recurring transaction schedules. When editing recurring transactions, the user should select a template-enabled draft to use for the recurring transaction.

There should also be some sort of visual indicator on the homepage for viewing all transaction drafts, as well as recurring transactions, and it should be made very obvious to the user when there are pending draft transactions (not templates) which they should finish editing and save as finalized transactions.

Add the ability for users to plan ahead with _recurring transactions_ and _transaction templates_. ## Recurring Transactions Users can add a pre-filled transaction that occurs on a periodic schedule, like once a month, once a year, bi-weekly, etc. Then, every time that this recurring transaction is scheduled to occur, Finnow will prompt you to confirm that the transaction has actually been executed, allowing you to make any last-minute changes, and then saves the transaction to your profile. It'll introduce the concept of "pending" (or draft) transactions that haven't been added to the official list of journal entries, so that when a recurring transaction happens, it'll just create that pending transaction. Maybe if you don't actually confirm a recurring transaction, after X days, it'll disappear (maybe not). ## Transaction Templates Often times, you'll record similar transactions, like each time you refuel your car, you enter a credit transaction categorized as "Gas", so it could be convenient to add a "template" where you just need to fill in the amount and vendor and submit. Templates can probably use the same underlying structure as the "drafts" described in **Recurring Transactions**, but then when viewing a draft, you can click a button to "Make this draft a template". ## Technical Details Both of the above features would be implemented by adding a `TRANSACTION_DRAFT` database table, with a structure that basically copies the main `TRANSACTION` table, with an additional `IS_TEMPLATE` property, and looser constraints around what information must be present. Then for **Recurring Transactions**, an additional table named `RECURRING_TRANSACTION_SCHEDULE` would be added: ```sql CREATE TABLE RECURRING_TRANSACTION_SCHEDULE ( ID INTEGER PRIMARY KEY, DRAFT_ID INTEGER FOREIGN KEY REFERENCES TRANSACTION_DRAFT, SCHEDULE_EXPR TEXT NOT NULL ); ``` It would most likely use a cron-style scheduling expression (or some other text-based approach). ### UI Updates A new page for editing transaction drafts will need to be added, as well as a page for editing recurring transaction schedules. When editing recurring transactions, the user should select a template-enabled draft to use for the recurring transaction. There should also be some sort of visual indicator on the homepage for viewing all transaction drafts, as well as recurring transactions, and it should be made very obvious to the user when there are pending draft transactions (not templates) which they should finish editing and save as finalized transactions.
andrew added this to the Professional-Grade Application milestone 2026-05-29 13:00:17 +00:00
andrew added the
enhancement
label 2026-05-29 13:00:17 +00:00
andrew removed this from the Professional-Grade Application milestone 2026-05-29 13:00:32 +00:00
andrew pinned this 2026-05-29 13:03:04 +00:00
andrew self-assigned this 2026-05-29 13:03:19 +00:00
Sign in to join this conversation.
No Label
bug
enhancement
No Milestone
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: andrew/finnow#44
No description provided.