Self-Hosting

Personal Finance Workflow: A Weekly and Monthly Routine

A personal finance workflow to copy: what runs on its own, a 10-minute weekly review, a monthly close, and what stays manual. Built on Open Net Worth.

Personal Finance Workflow: A Weekly and Monthly Routine, over the assets screen and its net worth breakdown, on demo data.

A personal finance workflow is the boring part of money: getting transactions in, checking them, and looking at the result often enough to act on it. This guide lays out one routine you can copy with Open Net Worth, an open-source personal wealth agent you host yourself. It covers where it runs, what runs on its own, a short weekly review, a monthly close, and what you keep doing by hand.

The household in the examples is invented: the demo book’s fictional profile, which you can open at demo.opennetworth.ai.

Short answer: Let Automations log transactions from your email and send you a weekly report. Spend about 10 minutes each Monday reading it and approving what was logged. Once a month, import statements, reconcile each account and set next month’s targets.

Note: Open Net Worth is software, not a financial advisor. This post shows how the app works. It is not financial, investment, tax or legal advice.

What the routine automates, and what it doesn’t

A routine survives when it is short. People who keep one tend to describe the same shape: a quick weekly sitting, a monthly balance check, and no backlog. The r/ynab thread on daily, weekly and monthly routines is full of it, and so are the stories of quitting after months of statements piled up.

So the routine below follows three rules:

  • Automate the logging and the reports. They are the repetitive part.
  • Keep one short weekly sitting. Reading a summary is what changes behavior, more than a perfectly categorized ledger.
  • Keep approvals, reconciling and decisions with you. Some people also enter every purchase by hand on purpose, because it keeps them aware of spending, as in this r/ynab post. If that is you, skip the email logging and keep the rest.

The example household

The demo book belongs to Alex Morgan, a fictional 35-year-old in the US with a partner, Sam. In the demo data their net worth is $958,600, spread over 14 accounts.

GroupAccounts
Everyday cashChecking, joint household, cash wallet
SavingsEmergency fund, travel fund
Foreign cashEuro account, SGD savings
InvestingBrokerage, Roth IRA, 401(k), crypto
DebtCredit card, mortgage, student loan

Alex also owns an apartment, a car, and some watches and art, tracked as assets. That mix is why one bank sync would not cover everything: two foreign currencies, retirement accounts, an exchange, and things with no price feed at all.

Where it runs

Open Net Worth installs three ways, and all three keep your data in one folder outside the app. For a routine built on Automations, one rule decides the choice: the app has to be running, and the computer awake, for a scheduled run to happen.

RouteFits whenWatch for
Desktop appYou use one computer dailyRuns stop when it sleeps
Server with onwA machine that stays onSet a password for other devices
DockerA NAS or home server with DockerPassword required; no Keep awake

The desktop app can keep running in the tray after you close the window, and its Keep computer awake switch stops idle sleep. A closed laptop lid still sleeps, though. Desktop also has Statement folders: folders the app watches, so a statement you save there shows up for review.

For this routine, run the onw server on a small always-on machine and start it with onw start --autostart, so it comes back after a reboot. On macOS and Windows the same Keep awake switch appears on the Automations page. Under Docker the Compose file pins the image to the release it came with, which suits a machine you don’t watch. The self-hosting guide walks through all three routes, and the installation docs list every onw command.

For the phone, use Telegram (setup and privacy). You create your own bot, and Lucius, the agent inside Open Net Worth, answers there: questions, a photo of a receipt, approving a change with a tap. The app connects out to Telegram, so nothing has to be exposed to the internet. If you also want the full app on the phone, a private network such as Tailscale is the simplest route; the multi-device docs cover it.

Which model to use where

Open Net Worth asks for an AI model at first run. Providers include Anthropic, OpenAI, Google Gemini, OpenRouter and Ollama for a local model. A sensible split:

  • A capable default model for chat, where the questions vary.
  • A cheaper, faster model on each Automation, in its own Model field. A report that follows the same playbook every week doesn’t need the strongest model.
  • A vision-capable model for statement import, under Settings > AI > Task models, because a scanned PDF is a picture.

Each Automation shows what it has spent under Cost & usage, and the list sorts by Cost this month, so a schedule that costs more than it’s worth is easy to spot. If you’d rather keep statements on your own machine, a local model through Ollama does that. Our post on where your financial data goes covers the trade-offs.

How money gets in

This routine uses no bank sync. Each account gets the cheapest feed that keeps it right:

AccountsDuring the monthAt month end
Checking, joint, cardAlert emails, loggedStatement import
Savings, foreign cashNothingStatement import
Brokerage, IRA, 401(k)Trade confirmation emailsStatement import
CryptoNothingCSV export
Mortgage, student loanPayment from checkingStatement import
Cash walletA Telegram messageNothing
Apartment, car, watchesNothingUpdate value if changed

The email feed is the Email connector: your mailbox, an app password, about five minutes of setup. Then the Email finance digest Automation reads new bank, card and trade confirmation emails and logs them, with nothing booked twice. It also sends one short message about anything else in your mail that touches your money, such as a failed payment, a bill due or a new login to a finance account. If there is nothing to log and nothing to say, it sends nothing. If you only want logging with no message, use Auto-log transactions from email instead, but not both: two runs would read the same mail.

At month end the statement is the record of truth. Open Net Worth reads PDF, CSV, Excel, OFX, QIF, MT940 and CAMT.053 files, and rows already logged from email are linked rather than booked again. Our statement import guide has the detail.

If your bank is covered and you’re comfortable with an aggregator, the bank connectors fit the same routine; they are in beta. SimpleFIN and Plaid cover US and Canadian banks, and Enable Banking covers the EU and UK. Each has a Sync template that runs every 6 hours. The connector docs say which one fits your bank.

The Automations that run

An Automation is a job Lucius repeats on a schedule or when something happens. A skill is the playbook it follows. The Recommended section of the Automations page holds the four starting templates, and the other two below come from Start from a template.

AutomationWhenDoes
Email finance digest00:00 and 12:00 dailyLogs mail, flags what needs you
Budget pacingFridays at 17:00Names the envelopes running hot
Large charge alertAn expense over 500 postsChecks payee, account, duplicates
Weekly reportMondays at 8:30Last week’s spending, bills, net worth
Monthly reportThe 5th at 9:30The closed month, in full

Two choices differ from the defaults. The Monthly report template runs on the 1st at 9:30. Move it to the 5th, so it reports on a month whose statements are already in. And leave the Daily briefing off. The weekly report is the note this routine is built around, and a daily one is easy to stop reading.

The Recommended templates start in Automatically approve, since nobody is at the screen at 8:30 to tap a card. That does not hand over your ledger. Rows an Automation logs land in your review queue, N to review in Accounts, and only you can approve them. A failed run shows under Needs attention on the Lucius home screen, with the reason and Try again.

Budget pacing and Large charge alert start in Manually approve, because they come from Start from a template, not Recommended. They only read your book, so their results sit in the run’s conversation under Automation runs. To get them on Telegram, add a line to their instructions the way the report templates do, and switch them to Automatically approve too. In Manual, sending the Telegram message is itself a change, so the run stops on a confirm card marked Needs you until you tap it.

Beyond these, you can ask for a skill in chat with a /: catch-up, budget-review, subscription-audit, investment-checkup, on-track, can-i-afford-it and balance-mismatch-tracer. The skills docs list them all, and our guide to an AI agent for personal finance explains skills and approvals in more depth.

The weekly 10-minute review

The weekly report lands on Telegram at 8:30 on Monday. The review is whenever you have coffee after that:

  1. Read the report (2 minutes). Last week’s spending, bills, income, net worth, investments and anything unusual.
  2. Clear the review queue (4 minutes). Open Accounts and go through N to review: the rows logged from email since last week. Approve them, and fix a payee or category where Lucius guessed wrong.
  3. Check for failed runs (30 seconds). Look under Needs attention on the Lucius home screen.
  4. Log what no email covers (1 minute). Cash, mostly. One Telegram message per spend, such as “Spent 12 at the market, cash”, if you didn’t send it at the time.
  5. Fix one envelope (2 minutes). If Friday’s budget pacing named an envelope running hot, move money to it, or ask /budget-review whether the target still fits.

The weekly sitting gives you one thing: you know on Monday what last week did, while you can still change this week.

The monthly close

Statements arrive in the first days of the month. Allow under an hour:

  1. Import each statement. Download it from the bank and drop it on the account’s Import screen. Rows logged from email during the month get Link; anything the emails missed gets Import. Each statement shows Balance matches or Balance off by an amount.
  2. Reconcile each account. Reconcile asks whether the cleared balance is the real one; Yes, it matches marks it reconciled. An account not reconciled in 30 days shows Needs reconciling in the accounts list, so none slips through.
  3. Run /catch-up. It merges duplicates, labels uncategorized rows, checks balances and, on a Zero-Based budget, offers to cover overspending before the month rolls. It proposes changes in batches and asks before applying them.
  4. Update asset values that moved. Asset values never change on their own. If the car or the apartment is worth something different, use Update value and set the date. Our guide to what counts in net worth explains how each asset enters the total.
  5. Read the monthly report and set next month. It arrives on the 5th. Then /budget-review compares your targets with what you spend. The budgeting docs explain Zero-Based envelopes and the 50/30/20 split.

Once a quarter, add /subscription-audit and /investment-checkup.

The routine as a timeline: the email digest, Friday budget pacing and a Monday report run on their own; you review weekly, close the month and read the monthly report Runs on its own You do it EVERY WEEK 00:00, 12:00 Digest logs card and bank mail Fri 17:00 Budget pacing flags hot envelopes Mon 08:30 Weekly report sent to Telegram Mon, 10 min Read the report, approve logged rows, fix one envelope EVERY MONTH 1st to 4th Import statements, reconcile, run /catch-up 5th 09:30 Monthly report on the closed month 5th, 15 min Read it, then /budget-review for next month's targets
Figure 1 · The routine at a glanceWhat runs on its own and what you do, each week and each month.

What stays manual

Plenty, and on purpose:

  • Downloading statements. Bank logins and two-factor codes stay with you. Desktop Statement folders save a step after the download, not the download.
  • Approving logged rows. No Automation approves its own transactions, in any approval mode.
  • Saying the balance matches. Reconcile is a click you make with the bank’s number in front of you.
  • Splitting a mixed purchase. A supermarket or online order that is part groceries, part household gets split by you, with Split into multiple categories.
  • Moving money. Lucius can’t pay anyone, transfer money or place an order at your bank. Paying the card and topping up savings stay with you.
  • Decisions. Whether to cut a subscription, rebalance or buy the car is yours. The skills give you the numbers.

How to copy this setup

  1. Install it where it can stay on. Pick desktop, onw server or Docker from the self-hosting guide. For the wider picture first, read our self-hosted personal finance overview.
  2. Add your accounts and a model. Start with opening balances from your last statements. Coming from YNAB? The migration guide and the YNAB comparison cover what carries over.
  3. Connect email and Telegram. Both take about five minutes. Then turn on the Email finance digest from the Email connector’s Automate button.
  4. Add the reports. Weekly report from Recommended; Monthly report with its day moved to after your statements arrive; Budget pacing and Large charge alert from Start from a template. The Automations docs cover triggers and approval modes.
  5. Run each one by hand first. Use Run now on every Automation and read the run in its History tab before you trust the schedule.

Prefer to drive the same book from Claude Desktop or another AI app? The personal finance MCP server exposes it, and the Claude Desktop and Claude Code setup guide shows how to connect Claude. If net worth is the main thing you track, the open-source net worth tracker comparison sets Open Net Worth next to the alternatives.

Frequently asked questions

How long does a weekly personal finance review take?

Plan on about 10 minutes: read the weekly report, approve the rows logged from email, fix one envelope. The monthly close takes under an hour for a household with around 14 accounts. A household with more cards or more cash spending will need longer.

Do I need bank sync for this routine?

No. The routine uses card and bank alert emails during the month and statement files at month end. Bank connectors such as SimpleFIN, Plaid and Enable Banking are in beta and fit into the same routine if you want them.

Does the app have to stay on for Automations to run?

Yes. Open Net Worth has to be running and the computer awake for a scheduled run to happen. That is why the routine runs it as a server on a machine that stays on.

Can an Automation approve the transactions it logs?

No. Rows an Automation logs land in your review queue, shown as N to review in Accounts, and only you can approve them, whatever the Automation's approval mode.

Sources

  1. Automations (Open Net Worth docs)official
  2. Skills (Open Net Worth docs)official
  3. Automation templates, automationTemplates.ts (Open Net Worth source)official
  4. Starter skills, backend/starter_skills (Open Net Worth source)official
  5. Accounts and reconciling (Open Net Worth docs)official
  6. Installing Open Net Worth (Open Net Worth docs)official
  7. Email connector (Open Net Worth docs)official
  8. Bank and brokerage connectors (Open Net Worth docs)official
  9. Getting in the habit! Daily, weekly and monthly YNAB routines (r/ynab)
  10. Does anyone enter everything manually? (r/ynab)

Share