This project is not covered by Drupal’s security advisory policy.
Plan a monthly household budget in Drupal. Enter expenses and income as amounts that apply for periods of months, and see each month's balance, the spending per group and what to transfer to each bank account.
Private Budget is for one household that wants to plan its money, not to record every payment. You say what you pay and earn, and how often, and the module works out what an ordinary month looks like. It needs no contributed modules, and it keeps personal financial data behind permissions.
Features
- Expenses and income with periods. Each item has one or more periods: an amount, a number of yearly rates (12 for a monthly bill, 1 for a yearly insurance) and a first and a last month. A new amount from a month onwards is a new period, so earlier months keep the old amount. A period can be left without an end.
- Dashboard. The balance of a month (income minus expenses), with two diagrams that need no charting library and have a table view for every diagram.
- Overview of the expenses per group, with how much to transfer to each bank account, and an overview of the income. Both can be exported as CSV, with the monthly amounts as spreadsheet formulas if you like.
- Amounts typed the way people write them.
85,000.3and85.000,30mean the same, and amounts are shown in the number format of the language of the page. - Settings: the address of the pages, the currency, which month is shown first, the range of the year selector, how old a backup may be, and the CSV format.
- Backup, import and export. Back up the whole budget with a Drush command or a button. Copy it as text from one site to another on the import and export page, without handling files. Imports are checked first and replace everything in one transaction.
- Read-only JSON for the figures of a month, and the expenses and income work with JSON:API and REST, closed to everyone without permission.
- Danish translation is included.
Use it when you want a clear picture of what is left each month and where money has to move between accounts, for example a family that shares a main account and has accounts for savings, children and holidays.
Post-Installation
- Install the module. It creates two vocabularies, Budget groups and Budget accounts, with a few example terms. Rename or replace them under Structure → Taxonomy.
- Give the permissions of the group Private Budget to the roles that should see or edit the budget (People → Permissions). Nothing is given to anyone by default. Whoever may open a page sees everything on it.
- Open Configuration → Private Budget → Settings and choose the currency and the other options.
- Add expenses and income from the lists under Content, or from the tabs of the budget pages. The pages are at
/private-budgetby default, and you can change the address in the settings. - To make backups, set up the private file system outside the web root in
settings.php($settings['file_private_path']). The backup button and the Drush command use it.
The module handles personal financial data. Give the permissions to as few roles as possible, keep backups safe, and only enable JSON:API or REST if you need them.
Additional Requirements
Drupal 11.1 or later and PHP 8.3 or later. The module uses only core modules: Field, Filter, Taxonomy, Text and User. There are no contributed modules or libraries to install.
Recommended modules/libraries
- Drush 13 or later, for the commands
private_budget:backupandprivate_budget:import. - JSON:API or REST (both in core), if you want other programs to read single expenses and income.
- HTTP Basic Authentication (in core) or another authentication module, if scripts should read the JSON of a month.
Similar projects
- Budget is a different idea: a guided questionnaire that sorts a person's finances into income, expenses, debt and savings, with advice and reports. Private Budget has no questionnaire and no advice. It works out the balance of each month from the amounts and periods you enter.
- Expense Tracker records single transactions, with recurring transactions, charts and imports. Private Budget plans instead of recording: an amount is valid for a period of months, and the module shows the balance of a month and what to transfer to each bank account. It needs no contributed modules.
According to their project pages, neither of these is covered by Drupal's security advisory policy.
Supporting this Module
There are no funding links yet. Bug reports, ideas and patches in the issue queue are the best help.
Community Documentation
The README in the repository describes every page, permission and setting, how a budget is calculated, backup and import, the JSON, and how to run the tests. The roadmap lists what could come next. Both are in the project repository.
About this project
Maintained by mikman. Parts of the code, the tests and the documentation were written with the help of an AI assistant (Claude, from Anthropic).
Project information
- Project categories: Administration tools, Content display
- Created by mikman on , updated
This project is not covered by the security advisory policy.
Use at your own risk! It may have publicly disclosed vulnerabilities.
