Payday 💸
A local-first cashflow planning app. Model your household income, bills, and transfers as recurring events, then project balances and guilt-free spending buffers weeks into the future.
Runs in your browser via a local server — launch it with payday, close the tab when you're done. Your data stays on your machine.
Install
pip install payday-planner
Or with uv:
uv tool install payday-planner
Then run it from anywhere:
payday
The app opens at http://localhost:8501. On first launch it loads a demo setup — your data auto-saves between sessions once you configure your own blueprint.
Features
- Dashboard — Net worth snapshot, per-person guilt-free spending buffers, account balances, 90-day cashflow projection chart, and a 14-day upcoming events checklist
- Accounts — Track chequing, savings, debt, investment, and liability accounts with balances and ownership
- Events — Define recurring or one-time money movements (inflows, outflows, transfers) with flexible frequencies and optional end dates
- Timeline — Browse all upcoming events in a calendar view, filterable by owner
- Flow Diagram — Auto-generated Mermaid diagram showing how money moves between accounts
- Oracle — AI assistant (Gemini or Ollama) with full context of your setup; can answer questions and propose blueprint updates
- Export / Import — JSON blueprint for full backup/restore, plus CSV export and Mermaid diagram download
Your Data
Your financial blueprint is stored locally at:
- macOS:
~/Library/Application Support/payday/blueprint.json - Linux:
~/.local/share/payday/blueprint.json - Windows:
%APPDATA%\payday\blueprint.json
It auto-saves on every page render and auto-loads on startup. To point at a different file:
PAYDAY_BLUEPRINT=~/Documents/finances.json payday
Concepts
Accounts
Each account has a type and an owner:
| Type | Description |
|---|---|
chequing |
Day-to-day spending account |
savings |
Savings or emergency fund |
investment |
RRSP, TFSA, brokerage, etc. |
debt |
Line of credit, credit card |
liability |
Mortgage or other long-term liability |
| Owner | Description |
|---|---|
A |
Person A |
B |
Person B |
Joint |
Shared account |
Events
Events are the engine of the app. Each event is a recurring or one-time money movement:
| Field | Description |
|---|---|
| Type | inflow (money in), outflow (money out), transfer (between accounts) |
| Frequency | one-time, weekly, biweekly, monthly, quarterly |
| Anchor Date | The first occurrence — all future dates are derived from this |
| End Date | Optional — set for temporary events like a debt payoff installment |
| Tier | Priority order (1 = income, 2 = fixed bills, 3 = hub transfers, 4 = joint expenses, 5 = goals) |
Guilt-Free Buffer
The guilt-free buffer is the monthly amount left in each person's chequing account after all committed recurring spending — bills, transfers to the hub, and debt payments. It represents discretionary money that can be spent freely or added to savings without guilt.
Calculated as:
buffer = (recurring inflows into your chequing) − (recurring outflows + transfers out of your chequing)
One-time events are excluded — only true recurring commitments count.
Cashflow Projection
The Dashboard projects all account balances day-by-day for up to 365 days. The Net Worth tab shows total assets minus liabilities over time. The By Account tab lets you compare individual account trajectories.
Transfers to debt or liability accounts correctly reduce what is owed (e.g. a LOC payment lowers the LOC balance, keeping net worth flat).
Oracle (AI Assistant)
The Oracle has full context of your blueprint and can:
- Answer questions about your cash flow ("When does the LOC get paid off?")
- Generate payday checklists ("What do I do on Jan 10th?")
- Propose blueprint updates ("Add a $200/month car fund transfer from Hub to Savings")
When the Oracle suggests a blueprint change, a preview banner appears at the top of the page. Review the JSON diff and click Apply Update to accept it.
Backends
| Backend | Setup |
|---|---|
| Gemini | Get a free API key at aistudio.google.com, paste it into the sidebar |
| Ollama | Install Ollama, run ollama pull qwen2.5:7b, select it in the sidebar |
Development
git clone https://github.com/your-username/payday
cd payday
uv sync
uv tool install .
Run tests:
uv run pytest tests/ -v
Project Structure
src/payday/
app.py # Streamlit UI
engine.py # Calendar, projection, serialization, guilt-free buffer logic
models.py # Data models (Member, Account, Event, AllocationRule, Goal)
cli.py # Entry point
tests/
test_payday.py
pyproject.toml
Metadata
Release files for payday-planner 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| payday_planner-0.1.0.tar.gz | 94.4 kB | With provenance | Details for payday_planner-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| payday_planner-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for payday_planner-0.1.0-py3-none-any.whl |
Total release size: 117.4 kB
Release files / payday_planner-0.1.0.tar.gz
| Download URL | payday_planner-0.1.0.tar.gz |
|---|---|
| Size | 94.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2656f8db19efc7dca19b341b015e8ee2dafc996b1369f705308f1c54fc2e5f62
|
|
BLAKE2b-256 checksum How to use checksums |
b3202d92481e1d9647820bd11ac1820cf8c4f7d442ee4edf32f6d212381f6578
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 2, 2026.
Transparency logRelease files / payday_planner-0.1.0-py3-none-any.whl
| Download URL | payday_planner-0.1.0-py3-none-any.whl |
|---|---|
| Size | 22.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
59294aed7892e4826fd8b38f65180b14d5b5bd17e60489c591bfb0f082555419
|
|
BLAKE2b-256 checksum How to use checksums |
4a458a1e667dc63cb294aa1e7f354ce1b8a6d3c776b8cbebe274847196045936
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 2, 2026.
Transparency logSecurity for payday-planner 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for payday_planner-0.1.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 2, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.