Tutorial¶
This tutorial will introduce all the concepts necessary to get started. Paisa builds on top of the ledger1, a command line tool that follows the principles of plain text accounting. ledger primarily focuses on command line users and doesn't provide any graphical user interface. Paisa aims to create a low-friction graphical user interface on top of ledger, thereby making it accessible to a wider range of users.
As an end user, you should be familiar with the terms and concepts used by ledger, which we will cover below. Paisa comes with an embedded ledger and you are not required to use ledger via command line unless you want to.
Tip
Even though the tutorial focuses on Indian users, Paisa is capable of handling any currency. You can change the default currency, locale and financial year starting month etc. Check the configuration reference for more details.
Journal¶
A journal file captures all your financial transactions. A transaction
may represent a mutual fund purchase, retirement contribution, grocery
purchase and so on. Paisa creates a journal named main.ledger
, Let's
add our first transaction there. To open the editor, go to Ledger
Editor
2022/01/01/*(1)!*/ Salary/*(2)!*/
Income:Salary:Acme/*(3)!*/ -100,000 INR/*(6)!*/
Assets:Checking/*(4)!*/ /*(5)!*/100,000 INR
- Transaction
Date
- Transaction description, also called as
Payee
- Debit
Account
- Credit
Account
Amount
Currency
ledger follows the double-entry accounting system. In simple terms, it
tracks the movement of money from debit account to credit
account. Here Income:Salary:Acme
is the debit account and
Assets:Checking
is the credit account. The date at which the
transaction took place and a description of the transaction is written
in the first line followed by the list of credit or debit
entry. Account naming conventions are explained later. The :
in the account name
represents hierarchy.
2022/01/01 Salary
Income:Salary:Acme -100,000 INR
Assets:Checking 100,000 INR
2022/02/01 Salary
Income:Salary:Acme -100,000 INR
Assets:Checking 100,000 INR
2022/03/01 Salary
Income:Salary:Acme -100,000 INR
Assets:Checking 100,000 INR
Let's add few more transactions. As you edit your journal file, the balance of the journal will be shown on the right hand side.
You would notice zero balance and a checking account with 3 lakhs and an income account with -3 lakhs. Double-entry accounting will always results in 0 balance since you have to always enter both the credit and debit side.
Let's say your company deducts 12,000 INR
and contributes it to EPF,
we could represent it as follows
2022/01/01 Salary
Income:Salary:Acme -100,000 INR
Assets:Checking 88,000 INR
Assets:Debt:EPF 12,000 INR
2022/02/01 Salary
Income:Salary:Acme -100,000 INR
Assets:Checking 88,000 INR
Assets:Debt:EPF 12,000 INR
2022/03/01 Salary
Income:Salary:Acme -100,000 INR
Assets:Checking 88,000 INR
Assets:Debt:EPF 12,000 INR
You can now see the use of :
hierarchy in the account name.
300,000 INR Assets
264,000 INR Checking
36,000 INR Debt:EPF
-300,000 INR Income:Salary:Acme
--------------------
0
Commodity¶
So far we have only dealt with INR. ledger can handle commodity as
well. Let's say you are also investing 10,000 INR
in UTI Nifty Index
Fund and 10,000 INR
in ICICI Nifty Next 50 Index Fund every
month.
2018/01/01 Investment
Assets:Checking -20,000 INR
Assets:Equity:NIFTY 148.0865 NIFTY @ 67.5281 INR
Assets:Equity:NIFTY_JR 358.6659 NIFTY_JR @ 27.8811 INR
2018/02/01 Investment
Assets:Checking -20,000 INR
Assets:Equity:NIFTY 140.2870 NIFTY @ 71.2824 INR
Assets:Equity:NIFTY_JR 363.2242 NIFTY_JR @ 27.5312 INR
2018/03/01 Withdrawal
Assets:Checking 6775.49 INR
Income:CapitalGains:Equity:NIFTY -22.68 INR
Assets:Equity:NIFTY -100 NIFTY {67.5281 INR} [2018/01/01] @ 67.7549 INR
Let's consider 148.0865 NIFTY @ 67.5281 INR
. Here NIFTY
is the name of the commodity and we have bought 148.0865
units at 67.5281 INR
per unit.
The withdrawal transaction is bit more involved. When you buy a
commodity, you buy them at a specific price on a specific date called
lot. When you sell, you usually need to record which lot you are
selling for taxation purpose, usually FIFO. -100 NIFTY {67.5281 INR} [2018/01/01] @ 67.7549 INR
means you are selling
NIFTY
at price 67.7549 INR
that was bought on
2018/01/01
at 67.5281 INR
. The gain or loss
amount comes from the capital gains account Income:CapitalGains:Equity:NIFTY
Paisa has support for fetching commodity price history from few
providers. Go to Configuration
page and expand the Commodities
section. You can click the icon to
add a new one. Edit the name to NIFTY
. Click the
icon near Price section and select
the price provider details. Once done, save the configuration and click the
Update Prices
from the top right hand side menu. If you had done
everything correctly, you would see the latest price of the commodity
under Assets
Balance
Interest¶
There are many instruments like EPF, FD, etc that pay interest at
regular intervals. We can treat it as just another transaction. Any
income account that has a prefix Income:Interest:
can be
used as the debit account. It's not mandatory to specify the amount at
bot side. If you leave one side, ledger will deduct it.
Configuration¶
All the configuration related to paisa is stored in a yaml file named
paisa.yaml
. The configuration can be edited via the web interface. The
sequence in which it looks for the file is described below
PAISA_CONFIG
environment variable- via
--config
flag - Current working directory
paisa/paisa.yaml
file inside User Documents folder.
If it can't find the configuration file, it will create a default
configuration file named paisa/paisa.yaml
inside User Documents
folder. The default configuration is tuned for Indians, users from
other countries would have to change the default_currency
and
locale
. Check the configuration reference for details.
Update¶
Paisa fetches the latest price of the commodities only when
update command is used. Make sure to run paisa update
command
after you make any changes to your journal file or you want to fetch
the latest value of the commodities. The update can be performed from
the UI as well via the dropdown in the top right hand side corner.
-
hledger and beancount are also supported, refer Ledger CLI for more information. ↩