No project description provided
Project description
Hledger-lots
This package helps hledger users to add and manage transactions involving buying and selling commodities like stock, currency, etc.
Features
Add transaction
Instead of editing the journal file directly to add a commodity purchase or sale, answer some interactive prompts with the following benefits:
- Validation of allowed values for each field
- Fuzzy search completion using previous transaction data in the journal
- Select the answer between possible values or autocomplete when only one answer is allowed.
Automatic Lots
The most convoluted aspect of using hledger for investment is to manage lots because when selling a commodity, you need to use its cost, which is buried deep down in your journal, instead of the sale price, which is more easily available to add the correct profit/loss of the trade.
To calculate the cost, there are some methods you can apply and hledger doesn't provide tools to do it, so you are on your own. Hledger-lots calculate the cost without the need to alocate each purchase to a specific subaccount or tag. When you use hledger-lots sell
, it traverse the journal and arrive to the correct cost without additional information.
You can choose between two diferrent methods to calculate the cost of selling lots:
- FIFO: First In First Out
- AVERAGE COST: Average Cost of all previous purchase. It is as if selling a proportional part of each previous sale.
Automatic Price Download
One simple command to automatically download market price from Yahoo Finance for choosen commodities as explained here.
Reports
To get information about the commodities, there is more 2 commands:
command | description |
---|---|
view | Get the lots and indicators for a specific commodity |
list | Get the indicators for all commodities as a table |
The indicators provided by these command are explained here.
Documentation
Documentation with usage information can be found here
Setup
Requirements
Install
pip install --upgrade hledger-lots
Config
Instead of using command options, which is hard to remember and makes the command long, environment variables, which demands tweaking the .bashrc file or a configuration file, this app add configuration options directly in the journal using a custom directives specification explained here
You can still use LEDGER_FILE environment variable by adding
export LEDGER_FILE=your_data.journal
or prepend to the command:LEDGER_FILE=your_data.journal hledger-lots ...
Workflow
- Add a commodity purchase using the command buy or edit the journal as usual using "@" notation. Don't bother creating subaccounts or tags with unique lot name. See some examples here
- Download market price history from Yahoo Finance as price directive using the command prices
- View financial indicators for a specific commodity using view or a summary of all commodities using list.
- When you sell, use the command sell instead of adding the transactions manually. Hledger-lots will generate the correct transaction and append to the selected journal if you confirm the transaction is correct. See transaction tags with interesting indicators about the current trade
Indicators
Basic Indicators
- Commodity Name
- Total Quantity Purchased
- Total Amount Purchased
- Average Cost
Market Indicators
For commodities with price directives on a date after the last purchase, you will have also the following indicators:
- Last Market Price
- Market Amount: Quantitty Purchased * Last Market Price
- Market Profit: Market Amount - Amount Purchased
- Last Market Date
- XIRR
XIRR
The sale transaction gives you the calculated xirr as tag, which is the internal rate of return of an investment based on a specified series of irregularly spaced cash flows. This value is annual percentage rate following the 30/360US day count convention. It is a good metric to compare the investment return with a benchmark like the S&P or the T-Bill, for example.
Note the benchmark can use another day count convention, so this comparison may not be 100% precise. This app may in the future offer others day count convention for xirr calculation.
Checks
It is recommended to set the option check to true to ensure you past selling transaction has the correct cost according to the choosen cost method. See how to set it up here
Limitations
- No short-selling
- Each commodity can have only one base currency. For example, it is not possible to buy AAPL with USD and later with EUR.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file hledger_lots-0.4.2.tar.gz
.
File metadata
- Download URL: hledger_lots-0.4.2.tar.gz
- Upload date:
- Size: 26.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 81dbe70e0075732d112a33691728055026bcc2e807d36d13df900bb4b5e3dd02 |
|
MD5 | ac832cc5edf83b99a84afb28d7133876 |
|
BLAKE2b-256 | 9e51a24a935d39159cd686274a5a937702ce519b28dacc14df2d608f45091927 |
File details
Details for the file hledger_lots-0.4.2-py3-none-any.whl
.
File metadata
- Download URL: hledger_lots-0.4.2-py3-none-any.whl
- Upload date:
- Size: 40.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 608feae1a38177e815d09cd08d683161c489208a1bf6aeae1f785ec23f5ea68a |
|
MD5 | 8e33a557ca83a79fa103431cbb8bb9de |
|
BLAKE2b-256 | a444ce6dadf4c2f2d8e8feb3e3188813657e868a5550f5e6a3e99adbfc454bfb |