Track and manage your personal finances seamlessly.
JAL is tailored for those who want a clear insight into their personal incomes, expenditures, investments, and up-to-date information on account balances and portfolio values.
- Accounting with various currencies for different accounts.
- User-selected base currency totals.
- Account balance indication with or without credit limit.
- Generic income/spending with multi-category split.
- Asset and money transfers, including currency conversion.
- Trading operations: Buy/Sell securities (stocks, ETFs, options, and more).
- Dividends for stocks and bond interest payments (including bond amortization).
- Corporate actions for stocks.
- Term deposits.
- Daily history of account balance.
- Portfolio asset allocation for a given date.
- Monthly income/expenditure by category.
- Investment profit/loss and history of payments for an assets.
- Closed deals summary.
- Stock/ETF/Crypto prices updated for major global exchanges.
- Currency exchange rates from European and Russian central banks.
- Supports various Russian and international brokers.
- Assistance for tax declaration in Russia and Portugal.
- Tax burden estimation for a given asset in the portfolio.
- Electronic slips download for russian and some european shops.
- Category recognition for goods in electronic slips using TensorFlow.
JAL offers cross-platform compatibility and portability. Here's how to get started:
- From GitHub Repository:
- Clone repository locally with
git https://github.com/titov-vv/jal.git
- Ensure you have Python 3.8.1 or later and meet all dependencies in
requirements.txt
. - Tips Windows users: Ensure Python installation from and turn on options
pip installation
andadd Python to environment variables
during the installation. Reboot to apply changes. - Use
run.py
to launch the application.
- Clone repository locally with
- Using pip:
- Install using
pip install jal
. - Launch with the
jal
command or alternativelypython -m jal.jal
.
- Install using
- Hybrid Installation:
- Download source files and use
setup.py
for tailored installation.
- Download source files and use
Database will be initialized automatically with minimal required set of data, and you will be able to start use the program.
You may choose program language in menu Languages.
JAL configuration is stored in jal.sqlite
file together with all other data, that is created by default in jal
folder.
But you may configure location of this file with help of database_path
parameter in jal.ini
located in OS config directory (e.g. $HOME/.config
on most Unix-like systems).
Here is an example of such file:
[main]
database_path=/home/user/some_folder
If you installed jal via pip then you may upgrade it to newer version with help of command pip install jal -U
You can use menu Data->Backup and Data->Restore to save and restore a copy of your data. But you may get the same result by simply saving jal.sqlite file that contains everything. You may see a location of the file that jal uses in menu About.
Tax report can be prepared based on data from any broker if operations are present in JAL. Tax reports are supported for Russia and Portugal.
You can import operations from broker statement with help of menu Import->Statement.
Step-by-step example (in russian language) of Russian tax report preparation for Interactive Brokers can be found on this page.
Use contacts from beginning of this page if you need support regarding statements or reports.
Qt have a better look on Linux out of the box. Here is main program window:
The same window on Windows - the same functions with a bit different look:
Accounts are be arranged in groups (Cash, Cards, Investments, etc), each account holds one currency.
Below is a view of main window where one account is chosen ('Mastercard') and account select/edit window is opened on top:
Example of investment account view with Buy, Sell and Dividend operations recorded (there is an asset select/edit window on top):
'Holdings' tab contains portfolio overview (You display account and portfolio balances for any date).
Holdings are grouped by currencies and then by accounts.
Examples of reports are below:
Monthly incomes/spendings (categories hierarchy is supported with sub-totals calculation)
Profit/Loss for investment account (Assets value to be fixed, Returns include dividends and other payments)
List of all closed deals for investment account
If you want to ask a question, report a bug, provide help or support an author - you may use email [email protected] or Telegram (Issues on GitHub are always welcome also).
I would like to a mention people who helped me in 2022 and 2023 as I got more donations, help and feedback from users this year. And while I can't name every one of them I would like to confirm my appreciation for this help. They did the project better!