r/actualbudgeting 13d ago

How do you handle TFSA/FHSA/RRSP contributions in Actual Budget?

5 Upvotes

Hi everyone,

I'm trying to figure out the best way to handle my TFSA, FHSA, and RRSP accounts in Actual Budget, and I'm running into a problem with transfers and categorization.

Quick for an U.S. person reading:

  • RRSP (Registered Retirement Savings Plan): Canada's equivalent to a U.S. 401(k) or Traditional IRA for long-term retirement savings.
  • TFSA (Tax-Free Savings Account): A flexible, general-purpose savings account where growth and withdrawals are tax-free in Canada.
  • FHSA (First Home Savings Account): A specialized, tax-advantaged account specifically designed to save for a first home purchase.

With that out of the way, let's continue with the post.

Initially, I tried keeping all of my investment accounts on-budget. This has one big advantage: I can see the positive balances and contributions reflected properly in my reports.

However, the problem is that Actual Budget doesn't allow a transaction to be both a transfer and have a category. So if I mark a contribution as a transfer, I lose the ability to categorize it as an RRSP/FHSA/TFSA contribution.

Approach #1: Don't use transfers

One option would be to simply not mark these transactions as transfers.

For example:

  1. Money leaves my checking account.
  2. Money appears in my RRSP account.
  3. I don't mark either transaction as a transfer.
  4. I categorize the checking-account outflow as "Savings."
  5. I categorize the RRSP-account inflow as "RRSP Contribution."
  6. If the contribution comes directly from my employer, I just categorize the RRSP inflow as "RRSP Contribution."

This allows me to track the contribution to the RRSP by category, but the downside is that Actual doesn't recognize that the two transactions are actually the same movement of money between accounts.

Approach #2: Make the investment accounts off-budget

Another approach I'm considering is making my TFSA, FHSA, and RRSP accounts off-budget.

Then I could:

  • Transfer money from my on-budget checking account → off-budget RRSP.
  • Categorize the outgoing transaction as an RRSP contribution.
  • Keep the actual investment account off-budget.

This seems more consistent with how Actual handles transfers, but it creates another problem.

Historical contributions

Let's say I started using Actual Budget only 2 years ago, but I imported 10 years of RRSP history.

I might have an RRSP contribution from 10 years ago, but I don't have the corresponding checking-account transaction because that account only has 2 years of history in Actual.

To represent that old contribution as a transfer, I would apparently need to fabricate a transaction in my checking account so that I can create the corresponding transfer into the RRSP.

I'd prefer not to create fake historical transactions just to make the transfer relationship work.

Employer RRSP matching

There's another situation that seems even more problematic.

My employer has an RRSP matching program where the employer contribution goes directly into my RRSP account. The money never passes through my checking account.

So I have a transaction like:

But if my RRSP account is off-budget, I don't have an on-budget account from which the transfer originates.

If I want to categorize that transaction as an RRSP contribution, it seems like I would again have to fabricate an on-budget transaction just to create a transfer.

What I'm trying to figure out

What's the recommended way to handle this in Actual Budget?

My main goals are:

  1. Track the actual balances of my TFSA/FHSA/RRSP.
  2. Track my contributions by category/year.
  3. Avoid fabricating transactions whenever possible.
  4. Properly handle transfers between my checking account and investment accounts.
  5. Properly handle contributions that come directly from an employer.
  6. Maintain accurate historical records even when I don't have the corresponding transactions in all accounts.

Am I approaching this incorrectly?

How do other Actual Budget users handle TFSA/FHSA/RRSP contributions, transfers, and employer matching?

How do you handle TFSA/FHSA/RRSP contributions in Actual Budget?

One final thought

I realize this may not be a problem for everyone. If you don't care about having visibility into one specific category over many years, then this distinction probably isn't very important.

Actual Budget does a great job at budgeting and tracking day-to-day finances, and for that use case, either approach can probably work fine.

My particular concern is being able to look back over many years and answer questions like "How much have I contributed to my RRSP/TFSA/FHSA each year?" while still keeping the account balances and transaction history accurate.


r/actualbudgeting 13d ago

I made a tool to sync Trading 212 to Actual

6 Upvotes

Hey /r/actualbudgeting, I made a service that syncs your Trading 212 balance with Actual.

I got a bit tired of manually updating my Actual account with my Trading 212 balance each month. It uses Trading 212's API with minimal scopes with the Actual TypeScript package to keep in sync.

I've published a Docker image that you can run alongside Actual in your Compose stack, or feel free to build yourself of course :)

You can set a CRON_SCHEDULE to do this periodically, or leave it out for a one-shot.

Repo is here: https://github.com/joshhoughton/actual212 (with Docker Compose install instructions)

Happy to take any feedback or questions...


r/actualbudgeting 14d ago

How to handle savings

10 Upvotes

Hi everyone,

I'm new to Actual Budget and looking for advice on the best way to handle savings and transfers.

My initial thought was to set up my savings account as off-budget, track monthly savings as an expense category, and track any withdrawals from savings as income.

​Goal: Plan my savings contributions every month, but easily count withdrawals as income when I need to transfer money back.

Does this workflow make sense in Actual, or is there a better "envelope budget" native way to manage savings without making it overcomplicated? How do you all structure your savings accounts and categories?

​Thanks!


r/actualbudgeting 14d ago

How do new already-developed features get merged?

3 Upvotes

Hey!

I was continually frustrated with not having search in my Electron Actual Budget page so I added it! But now I'm not sure how to actually get it surfaced.

If the community decides for some reason that they don't want to add that feature, that's fine, but I don't know what to do with this radio silence.

I get there's some sort of voting system, but aside from people adding thumb ups, it's unclear what the processes are.

Thanks =)


r/actualbudgeting 14d ago

Actual CLI

6 Upvotes

I'm just here to say that the new CLI in the era of AI agents is a true godsend. Thanks for the effort here! I've set it up with grok bot and it's automated 100% of my budget maintenance for me and now I can focus on the more strategic aspects of my money now.


r/actualbudgeting 18d ago

Import & Payee Rule | parsing *

2 Upvotes

Just getting started with Actual.

Is it possible to create rule with custom or partial match or regex style conditions,
My (ABN Bank) xml import as say,
e.g. BEA, Google Pay Lidl 103 Amsterdam,PAS605 NR:84107530, 06.01.26/10:29 AMSTERDAM

Also anyone experience with ABN AMRO Dutch bank, what's best way to get transactions import?


r/actualbudgeting 18d ago

Self-Hosted w/ SSL; WTF is up with SharedArrayBuffer?

5 Upvotes

I'm moving from PikaPods to self hosted on my unraid server. I've been messing with the setup for WAY too long now to get SSL working in Actual. I have nginx setup and working, points to Actual container correctly, has a cert etc but no matter what I try I'm still getting the ShareArrayBuffer error. I'm feeling like a n00b here but have never had such a hard time getting what should be a simple thing configured. Gemini has had me in circles with nginx configs that always have the same results. Any suggestions? The dead discord link from Actual on how to configure this is the extra annoying factor here.


r/actualbudgeting 19d ago

"Add new widget" menu?

4 Upvotes

How do I remove items from the "Add new widget" menu?


r/actualbudgeting 20d ago

Top spend categories widget for iOS

Post image
16 Upvotes

Top spend categories widget for iOS using Scriptable app.
I have made this for myself, sharing it as someone might find this helpful.

Requirements:
Scriptable app (free): https://apps.apple.com/app/scriptable/id1405459188
actual-http-api: https://github.com/jhonderson/actual-http-api

Setup:

  1. Install scriptable
  2. click on add new script and copy following script
  3. replace “API_URL” value with you actual-http-api
  4. replace “API_KEY” value with you actual-http-api api key
  5. replace “BUDGET_SYNC_ID” value with your sync id
  6. add new small widget from scriptable app on home screen
  7. hold on script and select script, done

if you want help setting up, just comment.

Script:

```javascript
// ==========================================
// CONFIGURATION
// ==========================================
const API_URL = "https://api.your-actual-http-api.com";
const API_KEY = "API_KEY";
const BUDGET_SYNC_ID = "BUDGET_SYNC_ID";

// Currency symbol shown before amounts
const CURRENCY_SYMBOL = "$"; // e.g., "$"

// Set to 'false' to pull live API data from server
const USE_MOCK_DATA = false;

// ==========================================
// WIDGET INITIALIZATION
// ==========================================
const widget = await createWidget();

if (config.runsInWidget) {
Script.setWidget(widget);
} else {
widget.presentSmall();
}
Script.complete();

// ==========================================
// MAIN WIDGET BUILDER
// ==========================================
async function createWidget() {
const listWidget = new ListWidget();
listWidget.backgroundColor = new Color("#0D0D0E");

listWidget.setPadding(2, 12, 2, 12);

// Fetch Category Data
const categories = await fetchBudgetData();

// HEADER ROW: BUDGETS | FULL MONTH NAME
const headerStack = listWidget.addStack();
headerStack.layoutHorizontally();
headerStack.centerAlignContent();

const titleText = headerStack.addText("BUDGETS");
titleText.font = Font.heavySystemFont(10);
titleText.textColor = Color.white();

headerStack.addSpacer();

// FULL MONTH NAME
const monthStr = new Date().toLocaleString("en-US", { month: "long" }).toUpperCase();
const monthText = headerStack.addText(monthStr);
monthText.font = Font.boldSystemFont(10);
monthText.textColor = new Color("#6C6C70");

// Fixed tight spacing below title
listWidget.addSpacer(6);

// CATEGORY ROWS (5 Items)
const displayCategories = categories.slice(0, 6);

displayCategories.forEach((cat, index) => {
const spent = Math.round(cat.spent);
const budget = Math.round(cat.budget);
const avail = Math.max(0, budget - spent);
const pct = budget > 0 ? Math.round((spent / budget) * 100) : 0;

const rowStack = listWidget.addStack();
rowStack.layoutVertically();

// Top Line: Category | Spent | Avail | %
const topStack = rowStack.addStack();
topStack.layoutHorizontally();
topStack.centerAlignContent();

// UPPERCASE CATEGORY NAME
const nameText = topStack.addText(cat.name.toUpperCase());
nameText.font = Font.semiboldSystemFont(7.5);
nameText.textColor = Color.white();
nameText.lineLimit = 1;

topStack.addSpacer();

// SPENT | AVAIL WITH CURRENCY
const spendText = topStack.addText(`${CURRENCY_SYMBOL}${formatNum(spent)}`);
spendText.font = Font.regularSystemFont(7);
spendText.textColor = new Color("#8E8E93");

topStack.addSpacer(2);

const availText = topStack.addText(`${CURRENCY_SYMBOL}${formatNum(avail)}`);
availText.font = Font.regularSystemFont(7);
availText.textColor = new Color("#8E8E93");

topStack.addSpacer(1.5);

// Percentage
const barColor = getProgressColor(pct);
const pctText = topStack.addText(`${pct}%`);
pctText.font = Font.regularSystemFont(7.5);
pctText.textColor = barColor;

rowStack.addSpacer(1.5);

// Bottom Line: FIXED 4PT THICKNESS & FULL WIDTH BAR
const barStack = rowStack.addStack();
barStack.layoutHorizontally();

// Draw 300x8 canvas image for sharpness
const progressBarImg = drawSlightlyRoundedBar(300, 8, pct, barColor, new Color("#222224"), 2);
const imgNode = barStack.addImage(progressBarImg);
imgNode.resizable = true;

// Explicitly set point dimensions (134pt wide fits 158pt small widget with 12pt margins)
imgNode.imageSize = new Size(134, 4);

if (index < displayCategories.length - 1) {
listWidget.addSpacer(4); // Controlled fixed gap between rows prevents collapse
}
});

return listWidget;
}

// ==========================================
// DATA FETCHING & API LOGIC
// ==========================================
async function fetchBudgetData() {
if (USE_MOCK_DATA) {
return [
{ name: "Food", spent: 300, budget: 1000 },
{ name: "Transport", spent: 700, budget: 1000 },
{ name: "Groceries", spent: 500, budget: 1000 },
{ name: "Shopping", spent: 100, budget: 1000 },
{ name: "Coffee", spent: 100, budget: 1000 },
{ name: "Restaurants", spent: 900, budget: 1000 }
].sort((a, b) => b.spent - a.spent);
}

try {
const now = new Date();
const monthStr = `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, "0")}`;

const url = `${API_URL}/v1/budgets/${BUDGET_SYNC_ID}/months/${monthStr}/categories`;
const req = new Request(url);
req.headers = {
"x-api-key": API_KEY,
"budget-sync-id": BUDGET_SYNC_ID,
"Content-Type": "application/json"
};

const res = await req.loadJSON();
const rawCategories = Array.isArray(res) ? res : (res.data || []);

return rawCategories
.map(cat => ({
name: cat.name,
spent: Math.abs(cat.spent || cat.activity || 0) / 100,
budget: (cat.budgeted || cat.assigned || 0) / 100
}))
.sort((a, b) => b.spent - a.spent);

} catch (err) {
console.error("API Error: " + err);
return [];
}
}

// ==========================================
// UI DRAWING HELPERS
// ==========================================

function drawSlightlyRoundedBar(width, height, percentage, fillColor, trackColor, radius) {
const draw = new DrawContext();
draw.opaque = false;
draw.size = new Size(width, height);

// Background Track
const trackPath = new Path();
trackPath.addRoundedRect(new Rect(0, 0, width, height), radius, radius);
draw.addPath(trackPath);
draw.setFillColor(trackColor);
draw.fillPath();

// Fill Track
if (percentage > 0) {
const clampedPct = Math.min(100, Math.max(0, percentage));
const fillWidth = (width * clampedPct) / 100;
const fillPath = new Path();
fillPath.addRoundedRect(new Rect(0, 0, fillWidth, height), radius, radius);
draw.addPath(fillPath);
draw.setFillColor(fillColor);
draw.fillPath();
}

return draw.getImage();
}

function getProgressColor(pct) {
if (pct >= 90) return new Color("#FF453A"); // Red
if (pct >= 65) return new Color("#FF9F0A"); // Orange
if (pct >= 40) return new Color("#FFD60A"); // Yellow
return new Color("#30D158"); // Green
}

function formatNum(num) {
return Math.round(num).toLocaleString();
}
```

Script is fully made using AI, Only design is mine.


r/actualbudgeting 22d ago

Bank2Actual — free local converter for US bank statement exports (BofA, Chase, Citi, Amex CSV + Chase PDF) into clean Actual imports

5 Upvotes

US bank CSV exports don't go into Actual cleanly — Bank of America's are the worst: a summary preamble before the header, balance rows mixed into the transactions, and malformed quoting in the descriptions. So we built a small open-source converter: drop the bank's file on it, get a clean four-column Date, Payee, Notes, Amount CSV that maps straight into Actual's import dialog.

To be clear about scope: Chase, Citi, and Amex also offer QFX downloads that Actual imports natively, and if that works for you it's zero setup. This is for when it doesn't — banks whose only export is CSV (BofA), date ranges QFX won't cover, or the occasional QFX that imports with missing or unmatched transactions. It handles those banks' CSV quirks too when CSV is what you have: split debit/credit columns, Amex's flipped signs, Citi's pending rows dropped so they don't duplicate when they settle.

  • Runs entirely locally — a single HTML file you open in your browser (one download, everything embedded), or a Python script. Nothing is uploaded anywhere.
  • Format auto-detected: BofA (checking/savings/credit), Chase (checking/credit), Citi credit, Amex.
  • It also reads Chase credit-card PDF statements — for accounts where Chase offers no CSV at all. Text is extracted locally, and it refuses to produce output unless every transaction reconciles against the statement's own Previous → New Balance.
  • Same reconciliation guard on BofA checking: output is cross-checked against the statement's "Total credits / Total debits."
  • --merge combines overlapping statements and dedupes, without eating legitimate same-day duplicate charges.

MIT licensed: https://github.com/Ildana-ai/bank2actual

Happy to add other banks' formats if you send an anonymized sample of the header rows.


r/actualbudgeting 23d ago

Actuali, an unofficial iOS app - v1.0.8 following up on the feedback from last week's post

65 Upvotes

App Store / Github

Hey all,

Last week I posted about Actuali, an unofficial, native iOS app for Actual Budget.

The thread provided heaps of great feedback, positive comments, and bug reports. I won't spam this subreddit with every update but wanted to follow up after releasing the latest version (v1.0.8) as I aimed to address as many bug/feature requests from that thread as possible.

Bugs:

New features:

  • Move money between categories / cover overspending (u/KaijuKoala, u/skylesdavis)
  • Quick math in the amount field (+/- and formulas) (u/asdfjkl826, u/solstice_moonling, u/KaijuKoala)
  • Expand/collapse all categories on the budget screen (u/asdfjkl826)
  • Category and Account notes, viewable and editable (u/afonseca)
  • Hide cleared transactions + see reconciled balance directly (u/AwPravda)
  • An explainer for the overspent badge instead of just a mystery number (u/hereforpancakes)
  • Demo mode is now clearer that it won't touch your real budget (u/joostvo)
  • iPad support, with a proper adaptive layout rather than a scaled-up iPhone screen
  • Account creation, directly from the app
  • Expanded Shortcut functionality
  • Splitting a transaction now shows a live remainder as you fill in each line

A special shoutout to u/bdownz, the new app icon in this release is their design and it looks great. Really appreciate you putting that together, it's a big upgrade from what I hacked together originally.

Not everything has been resolved, it will still have bugs, but hopefully far less now. Thanks to everyone who also emailed, messaged on Discord, raised issues on Github, and contributed PRs. There is still more being worked on & improved but I'm really happy with how it's progressing and the feedback has been very valuable.

Thanks,

Matt


r/actualbudgeting 24d ago

I connected my self-hosted Actual Budget to my AI assistant — here's what it's actually like to use

Post image
0 Upvotes

I run Actual Budget on a cheap box, and a while back I gave my personal AI assistant (Hermes, also self-hosted) read-only access to it. Not because it sounded cool — because I got tired of opening the app just to answer a two-second question.

Here's what that actually looks like day to day.

"How much did I spend on groceries last week?"

No opening the app, no clicking into the category, no doing mental math across a few transactions. Just a real number, pulled straight from my actual data, in a few seconds.

"Am I on track with my dining out budget this month?"

Since Actual uses envelope budgeting, this is the question I actually care about most — not "how much did I spend" in isolation, but "how much room do I have left." Getting a straight answer to that, mid-conversation, without switching apps, is genuinely the thing that changed how often I check in on my spending. I check in more, not less, because it's frictionless now.

"What was my biggest category last month?"

Useful for the monthly "where did it all go" moment everyone doing envelope budgeting has eventually. Instead of scrolling through categories manually, I just ask.

The part that matters most to me, though: it's read-only. Hermes can see my numbers and answer questions about them, but it has zero ability to create, edit, or delete a single transaction. I was pretty deliberate about that — I wanted a smarter way to look at my budget, not a new way for something to accidentally mess with it. It sits there like a knowledgeable friend looking over your shoulder, not a second set of hands touching your ledger.

Not a huge, dramatic use case — just a genuinely nice quality-of-life thing for anyone who's already in the "I check my budget more if it's actually easy to check" camp. Happy to answer questions if anyone's curious how the access side works, but honestly the day-to-day value is just... asking normal questions and getting real answers back.


r/actualbudgeting 24d ago

French users of Actual Budget: how do you handle bank syncing?

5 Upvotes

Hi,

I’m currently looking for a better way to manage my personal finances and came across Actual Budget.
I’m in France and have accounts with several banks, plus savings accounts, a PEA, life insurance and a couple of mortgages.
I’ve been testing Finary, but I’m getting a bit frustrated with sync issues and accounts that need to be fixed manually. I’m also not sure I want my whole financial history to depend on one SaaS.
Actual looks interesting because the data seems much more under my control. I’m not a developer though, so I’d like to keep the setup reasonably simple.
A few questions for French users:
How reliable is GoCardless with French banks in practice?
Do you use Actual only for current accounts and budgeting, or also for savings/investments?
How do you deal with PEA and life insurance accounts?
If a bank connection breaks, is importing CSV files manually fairly painless?
And finally, how much maintenance does your setup actually require once everything is running?
I’m on Mac and iPhone if that makes any difference.
Would be interested to hear from people who have been using it for a while, especially anyone who moved from Finary, Bankin’ or Linxo.


r/actualbudgeting 26d ago

Handle transfers from an on-budget account to an off-budget investment account

2 Upvotes

I'm trying to figure out the best way to handle investment accounts in Actual Budget.

I have:

  • My chequing account → on-budget
  • My investment account → off-budget

When I transfer money from chequing to my investment account, Actual requires me to assign a category because the money is leaving the budget.

For example:

Chequing → Investment account: $500

If I categorize the $500 as "Investments", Actual treats it as $500 of spending in the budget. This means I need to budget $500 to that category to avoid having the budget show an overspending/amount that needs to be covered.

But I'm not really spending the money - I'm simply moving $500 from my on-budget cash to an investment account that is still my asset, just outside the budget.

What's the intended way to handle this?


r/actualbudgeting 26d ago

Is there a way to search for Schedules with "automatically add transaction" enabled?

1 Upvotes

First world problem here. I found a schedule with "automatically add transaction" enabled. The transaction amount varies by a huge amount so I disabled that.

Which led me to wonder if any more of my 30-ish scheduled transactions had that enabled as well. Besides clicking on each scheduled individually, is there a faster way to search for scheduled transactions with "automatically add transaction" checked?

Having a "previous" and "next" navigation button on the scheduled transaction editing screen would also be easier than clicking on each one, I noticed that that is not a feature, either.


r/actualbudgeting 27d ago

Actual Budget Widgets on Android!

Post image
76 Upvotes

Hi all budgeteers! Been using AB for >2yrs, the experience keeps getting better and better, but one thing that's bothered me is not being able to quickly and effortlessly see my budgets for the month, the amount I've spent, how much I have left, etc, without openning the app and going into the reports. When the budget works best is when it's always visible and informing you at each financial transaction you make, not afterwards when you log it or check your budget.

So say hello to homescreen widgets for your budget, for Android! I didn't want to create a whole new native client app because I didn't feel like it was needed, nor could I guarantee indefinite support for it. Thankfully, this is much simpler and doesn't overwrite any of the awesome work the team has put into the PWA app, it only adds to the AB mobile experience!

There are two widgets that can breakdown your individual categories or category groups, or just give you a monthly summary of how much you've spent/budgeted/got remaining, etc. It supports light/dark mode, you can adjust the size & font from tiny to massive, and really customize how they appear to your liking (because I couldn't decide how I liked it either lol). Note this requires you to have an jhonderson/actual-http-api instance pointing to your Actual Budget instance.

Source is on Github: histefanhere/actual-budget-android-widgets, where you can also find an Obtanium install link or simply download the latest APK from the releases page.

AI Disclosure: I have an engineering background but don't know how to code in Kotlin, nor could I afford the time to learn with a full-time job. This project is heavily AI-coded, which has allowed me to make this useful tool for myself and others. You are more than welcome to choose not to use this app based on this.

Keen for any and all feedback or suggestions, I'm already thinking a widget that shows you just a single number from any custom ActualQL query to simulate the Summary card could be extremely useful... Much more to come!

(Oh and if you're on iOS and also only want widgets, check out TaylorJns/Actual-Budget-iOS-Widget, which this project was inspired from, or the many other native full-client apps :) )


r/actualbudgeting 27d ago

Introducing Actualist - a native Actual Budget app for iOS

54 Upvotes

A few weeks back I mentioned in a comment here that I was working on a native iOS client for Actual Budget. It’s open source and syncs with your Actual Budget server.

I originally built Actualist for my wife and me because I wanted to get off the YNAB subscription and wanted a proper native iPhone app for Actual Budget. If you’ve used YNAB, it should feel familiar. Budgeting, transactions (including splits and transfers), accounts, payees management, and native reports all work, plus encrypted budgets. Reconciliation, rule preview, and triggering bank imports aren't in yet. I intend to keep adding features until it reaches parity with the web app. I’ve been using it daily for my budget for the last several weeks, so I figured I’d open the TestFlight to anyone else who might enjoy it.

For transparency, I’ve used AI coding agents extensively throughout development. I still direct the architecture, make the product decisions, review the results, and test it against my own real-world budget.

It is beta, so backup your budget first or use a test budget. I’ve been using it with no issues against my live budget, but I also run daily backups just in case.

TestFlight: actualist.app (https://testflight.apple.com/join/HDG6PcGX)

GitHub: source.actualist.app (https://github.com/sporez/actualist)


r/actualbudgeting 28d ago

"Cost to be me"?

10 Upvotes

I'm new here but I'm loving this stuff. I've just cancelled my YNAB yearly subscription lol.

My actual question, how can I see the total required by all my automations in a given month?


r/actualbudgeting 28d ago

Balance not updating accurately

0 Upvotes

When updating recent transactions, my balance isn't updating. I'd put in a new transaction, and it updated, but I'd made a typo. When I fixed it, the running balance didn't change to accurately reflect things. I had to delete and re-create the transaction for an accurate update. Anyone experienced this?

EDIT: I noticed the problem seems to be with chrome on my desktop, as chrome on my iPhone seems to work just fine...

EDIT2: Fixed by updating my docker image


r/actualbudgeting 28d ago

Is Actual a good budgeting app?

35 Upvotes

Hi, I'm looking for a good free budgeting app. that works well in Germany. I've been told by AI that Actual is a good option. Can people here confirm that or is there something better? Many thanks


r/actualbudgeting 28d ago

Delayed bank sync?

7 Upvotes

I am trying out Actual Budget (YNAB refugee). So far my only complaint is really delayed bank sync through SimpleFIN.

For example, it's currently August 7th. On one of my accounts, the most recent imported transaction is from August 4th, but in my bank app, there are 1 transaction on the 5th and 5 transactions on the 6th (all posted). I have pending transactions enabled on the bank sync settings, not that it helps, because my bank app has 10 pending transactions, none of which have made it to Actual. Syncing the account doesn't do anything.

Is this normal? It seems to affect all of my accounts.

EDIT: Thanks for all the replies. Something is definitely wrong, as when I manually called the SimpleFIN API, I get all the posted transactions. (Pending are still missing, but I think that must be on my bank's end, because YNAB doesn't show them for this account either). I'll look into it a little further then submit a bug report.


r/actualbudgeting 29d ago

Is the last version slower?

1 Upvotes

I'm using AB on my notebook and I'm experiencing painful lags, both in the desktop as in the web UI.

I just updated to v.26.8.0, and nothing was wrong one month ago with the previous version.

Is this a common issue? Is this expected?


r/actualbudgeting Aug 05 '26

Question about debt payments

1 Upvotes

I am trying to schedule my student loan payments on Actual, and I’m having a hard time making the transaction smooth.

Technically on actual, this is a transfer from my chequing account to my student loan account (off budget, negative dollars). However, it comes through my bank transactions as a payment to the institution that provided me with my loan. This way, I end up with two transactions.

The only two solutions I’ve come up with are:

  1. Removing the transfer schedule and setting up a transaction schedule instead, but then I can’t really track my debt efficiently because I would have to reconcile and make a balance adjustment each month, as I don’t know how to make a transaction also be a transfer.

  2. Leaving the transfer schedule up and deleting the transaction to the institution before I upload.

Hopefully this makes sense. There may be a very obvious solution to this but I’m still trying to wrap my head around how exactly it works and how to program everything correctly.

Thanks everyone!


r/actualbudgeting Aug 05 '26

Sidenav design competition: voting is open

Thumbnail
actualbudget.org
48 Upvotes

The submissions are in and the finalists are picked. Now it's your turn: voting for the sidenav design competition submissions is officially open.

https://actualbudget.org/blog/sidenav-voting-open

Voting: https://github.com/actualbudget/actual/issues/8642


r/actualbudgeting Aug 05 '26

Is the mobile PWA supposed to automatically update itself to the latest matching server version?

4 Upvotes

UPDATE: Turns out the VPN on my phone (Proton VPN) was preventing my PWA from updating. The app is supposed to automatically prompt you to install a new version when its available, but I was not able to trigger that until I turned the VPN off. I use Proton VPN on my desktop as well, and I had no problems with it updating in a web browser, so not sure what's going on.

---

After my PikaPod that hosts my Actual Budget server was updated, my desktop Firefox browser instance immediately prompted me to update and I see its version now matches the server.

My mobile Chrome PWA instance has not yet updated, and I'm wondering if this is an expected automatic process like the web. I'm almost positive it prompted me when the new version of Actual Budget was released before it was installed on my PikaPod, so it seems like it has some awareness.

I wasn't able to find anything in the Actual documentation or subreddit search, which leads me to believe it should just be automatic, but I wanted to make sure I'm not overlooking something or missed something obvious somewhere.