;examples:

This commit is contained in:
Simon Michael 2025-03-05 16:19:21 -10:00
parent f97954a796
commit a1de9148f2
15 changed files with 462 additions and 0 deletions

View File

@ -0,0 +1,11 @@
alias JS:assets = Assets:JS
alias JS:liabilities = Liabilities:JS
alias JS:equity = Equity:JS
alias JS:revenues = Revenues:JS
alias JS:expenses = Expenses:JS
alias sm:assets = Assets:sm
alias sm:liabilities = Liabilities:sm
alias sm:equity = Equity:sm
alias sm:revenues = Revenues:sm
alias sm:expenses = Expenses:sm

View File

@ -0,0 +1,13 @@
# demote top level accounts to level 2
--alias JS:assets=Assets:JS
--alias JS:liabilities=Liabilities:JS
--alias JS:equity=Equity:JS
--alias JS:revenues=Revenues:JS
--alias JS:expenses=Expenses:JS
--alias sm:assets=Assets:sm
--alias sm:liabilities=Liabilities:sm
--alias sm:equity=Equity:sm
--alias sm:revenues=Revenues:sm
--alias sm:expenses=Expenses:sm

View File

@ -0,0 +1,5 @@
2020-01-01 جاري
حساب جاري $1250 ; (current account)
جاري

View File

@ -0,0 +1,5 @@
--alias actifs=assets
--alias passifs=liabilities
--alias 'capitaux propres=equity'
--alias revenus=income
--alias dépenses=expenses

34
examples/lots/Makefile Normal file
View File

@ -0,0 +1,34 @@
subaccounts.beancount: subaccounts.hledger
sed -E 's/_[^0-9]*([0-9]+)[.,]([0-9]+)/-\1-\2/' $< | hledger print --alias revenues=income -f- -O beancount | bean-format - >$@
lotter.lotter: lotter.hledger
lotter -f $< >$@
hledger-bal-%:
@printf "$$ "
hledger -f $*.hledger bal -YE aaa
ledger-bal-%:
@printf "$$ "
ledger -f $*.hledger bal --flat -E aaa
lotter-bal: lotter.lotter
@printf "$$ "
hledger -f lotter.lotter bal -YE --invert Lot cur:AAA
ledger-lots:
@printf "$$ "
ledger -f ledger.ledger bal --lots --flat -E --no-total aaa
beancount-bal-%:
@printf "$$ "
bean-query subaccounts.beancount "SELECT account, units(sum(position)), cost(sum(position)) WHERE account ~ 'Aaa' GROUP BY 1 ORDER BY account;"
beancount-lots-%:
@printf "$$ "
bean-query $*.beancount "SELECT account, units(sum(position)) as units, cost_number as cost, cost_date as acquisition_date WHERE account ~ 'Aaa' GROUP BY account, cost_date, currency, cost_currency, cost_number, account_sortkey(account) ORDER BY account_sortkey(account), currency, cost_date"
@printf "$$ "
bean-query $*.beancount "SELECT account, units(sum(position)) as units, cost_number as cost, first(getprice(currency, cost_currency)) as price, cost(sum(position)) as book_value, value(sum(position)) as market_value, safediv((abs(sum(number(value(position)))) - abs(sum(number(cost(position))))), sum(number(cost(position)))) * 100 as unrealized_profit_pct, cost_date as acquisition_date WHERE account ~ 'Aaa' GROUP BY account, cost_date, currency, cost_currency, cost_number, account_sortkey(account) ORDER BY account_sortkey(account), currency, cost_date"
bals: hledger-bal-subaccounts ledger-bal-subaccounts beancount-bal-subaccounts beancount-bal-beancount

3
examples/lots/README.md Normal file
View File

@ -0,0 +1,3 @@
Data and scripts for https://joyful.com/Lot+tracking+in+PTA
Keep synced.

View File

@ -0,0 +1,43 @@
option "operating_currency" "USD"
2025-01-01 open Assets:Broker:Aaa AAA "FIFO"
2025-01-01 open Assets:Broker:Usd
2025-01-01 open Income:Gains
2025-01-01 open Income:Gifts
2025-01-01 *
Assets:Broker:Usd
Assets:Broker:Aaa 10 AAA {1.10 USD}
2025-01-01 *
Assets:Broker:Usd
Assets:Broker:Aaa 10 AAA {1.20 USD}
2025-01-01 *
Assets:Broker:Usd
Assets:Broker:Aaa 10 AAA {1.20 USD}
2025-02-01 *
Income:Gifts
Assets:Broker:Aaa 10 AAA {0.40 USD, 2021-01-01}
2025-02-02 *
Income:Gifts
Assets:Broker:Aaa 10 AAA {0.50 USD, 2022-01-01}
2025-03-01 *
Assets:Broker:Aaa -5 AAA {}
Assets:Broker:Usd 6.55 USD
Income:Gains
2025-03-02 *
Assets:Broker:Aaa -24 AAA {}
Assets:Broker:Usd 31.68 USD
Income:Gains
2025-03-03 *
Assets:Broker:Aaa -1 AAA {1.10 USD}
Assets:Broker:Aaa -9 AAA {1.20 USD}
Assets:Broker:Usd 13.30 USD
Income:Gains

View File

@ -0,0 +1,45 @@
option "operating_currency" "USD"
2025-01-01 open Assets:Broker:Aaa
2025-01-01 open Assets:Broker:Usd
2025-01-01 open Income:Gains
2025-01-01 open Income:Gifts
2025-01-01 *
Assets:Broker:Usd
Assets:Broker:Aaa 10 AAA {1.10 USD}
2025-01-01 *
Assets:Broker:Usd
Assets:Broker:Aaa 10 AAA {1.20 USD}
2025-01-01 *
Assets:Broker:Usd
Assets:Broker:Aaa 10 AAA {1.20 USD}
2025-02-01 *
Income:Gifts
Assets:Broker:Aaa 10 AAA {0.40 USD, 2021-01-01}
2025-02-02 *
Income:Gifts
Assets:Broker:Aaa 10 AAA {0.50 USD, 2022-01-01}
2025-03-01 *
Assets:Broker:Aaa -5 AAA {0.40 USD}
Assets:Broker:Usd 6.55 USD
Income:Gains
2025-03-02 *
Assets:Broker:Aaa -5 AAA {0.40 USD}
Assets:Broker:Aaa -10 AAA {0.50 USD}
Assets:Broker:Aaa -9 AAA {1.10 USD}
Assets:Broker:Usd 31.68 USD
Income:Gains
2025-03-03 *
Assets:Broker:Aaa -1 AAA {1.10 USD}
Assets:Broker:Aaa -9 AAA {1.20 USD}
Assets:Broker:Usd 13.30 USD
Income:Gains

View File

@ -0,0 +1,49 @@
#+hledger-lots avg_cost:false, check:true
#+hledger-lots no_desc:
2025-01-01
assets:broker:usd
assets:broker:aaa 10 AAA @ 1.10 USD
2025-01-01
assets:broker:usd
assets:broker:aaa 10 AAA @ 1.20 USD
2025-01-01
assets:broker:usd
assets:broker:aaa 10 AAA @ 1.20 USD
2025-02-01
revenues:gifts
assets:broker:aaa 10 AAA @ 0.40 USD
2025-02-02
revenues:gifts
assets:broker:aaa 10 AAA @ 0.50 USD
2025-03-01 Sold AAA ; cost_method:fifo
; commodity:AAA, qtty:5.00, price:1.31
; avg_cost:1.1000, xirr:1.85% annual percent rate 30/360US
assets:broker:usd 6.55 USD
assets:broker:aaa -5.0 AAA @ 1.1 USD ; buy_date:2025-01-01, base_cur:USD
revenues:gains -1.05 USD
2025-03-02 Sold AAA ; cost_method:fifo
; commodity:AAA, qtty:24.00, price:1.32
; avg_cost:1.1792, xirr:0.95% annual percent rate 30/360US
assets:broker:usd 31.68 USD
assets:broker:aaa -5 AAA @ 1.1 USD ; buy_date:2025-01-01, base_cur:USD
assets:broker:aaa -10 AAA @ 1.2 USD ; buy_date:2025-01-01, base_cur:USD
assets:broker:aaa -9.0 AAA @ 1.2 USD ; buy_date:2025-01-01, base_cur:USD
revenues:gains -3.38 USD
2025-03-03 Sold AAA ; cost_method:fifo
; commodity:AAA, qtty:10.00, price:1.33
; avg_cost:0.4800, xirr:6500.49% annual percent rate 30/360US
assets:broker:usd 13.30 USD
assets:broker:aaa -1 AAA @ 1.2 USD ; buy_date:2025-01-01, base_cur:USD
assets:broker:aaa -9.0 AAA @ 0.4 USD ; buy_date:2025-02-01, base_cur:USD
revenues:gains -8.50 USD

View File

@ -0,0 +1,41 @@
# convert to ledger lot notation
2025-01-01
assets:broker:usd
assets:broker:aaa 10 AAA {$1.10} (1)
2025-01-01
assets:broker:usd
assets:broker:aaa 10 AAA {$1.20} (2)
2025-01-01
assets:broker:usd
assets:broker:aaa 10 AAA {$1.20} (3)
2025-02-01
revenues:gifts
assets:broker:aaa 10 AAA {$0.40} [2021-01-01]
2025-02-02
revenues:gifts
assets:broker:aaa 10 AAA {$0.50} [2022-01-01]
2025-03-01
assets:broker:aaa -5 AAA {$0.40} [2021-01-01]
assets:broker:usd $6.55
revenues:gains
2025-03-02
assets:broker:aaa -5 AAA {$0.40} [2021-01-01]
assets:broker:aaa -10 AAA {$0.50} [2022-01-01]
assets:broker:aaa -9 AAA {$1.10} (1)
assets:broker:usd $31.68
revenues:gains
2025-03-03
assets:broker:aaa -1 AAA {$1.10} (1)
assets:broker:aaa -9 AAA {$1.20} (2)
assets:broker:usd $13.30
revenues:gains
comment

View File

@ -0,0 +1,38 @@
2025-01-01
assets:broker:usd
assets:broker:aaa 10 AAA @ 1.10 USD
2025-01-01
assets:broker:usd
assets:broker:aaa 10 AAA @ 1.20 USD
2025-01-01
assets:broker:usd
assets:broker:aaa 10 AAA @ 1.20 USD
2025-02-01
revenues:gifts
assets:broker:aaa 10 AAA @ 0.40 USD
2025-02-02
revenues:gifts
assets:broker:aaa 10 AAA @ 0.50 USD
2025-03-01
assets:broker:aaa -5 AAA @ 0.40 USD
assets:broker:usd 6.55 USD
revenues:gains
2025-03-02
assets:broker:aaa -5 AAA @ 0.40 USD
assets:broker:aaa -10 AAA @ 0.50 USD
assets:broker:aaa -9 AAA @ 1.10 USD
assets:broker:usd 31.68 USD
revenues:gains
2025-03-03
assets:broker:aaa -1 AAA @ 1.10 USD
assets:broker:aaa -9 AAA @ 1.20 USD
assets:broker:usd 13.30 USD
revenues:gains

View File

@ -0,0 +1,63 @@
2025-01-01
assets:broker:usd
assets:broker:aaa 10 AAA ; @ 1.10 USD
[Lot::2025/01/01:10AAA@1.1USD] -10 AAA ; :BUY: (inventory)
[Lot::2025/01/01:10AAA@1.1USD] 11 USD ; :BUY: (basis)
2025-01-01
assets:broker:usd
assets:broker:aaa 10 AAA ; @ 1.20 USD
[Lot::2025/01/01:10AAA@1.2USD] -10 AAA ; :BUY: (inventory)
[Lot::2025/01/01:10AAA@1.2USD] 12 USD ; :BUY: (basis)
2025-01-01
assets:broker:usd
assets:broker:aaa 10 AAA ; @ 1.20 USD
[Lot::2025/01/01:10AAA@1.2USD] -10 AAA ; :BUY: (inventory)
[Lot::2025/01/01:10AAA@1.2USD] 12 USD ; :BUY: (basis)
2025-02-01
revenues:gifts
assets:broker:aaa 10 AAA ; @ 0.40 USD
[Lot::2025/02/01:10AAA@0.4USD] -10 AAA ; :BUY: (inventory)
[Lot::2025/02/01:10AAA@0.4USD] 4 USD ; :BUY: (basis)
2025-02-02
revenues:gifts
assets:broker:aaa 10 AAA ; @ 0.50 USD
[Lot::2025/02/02:10AAA@0.5USD] -10 AAA ; :BUY: (inventory)
[Lot::2025/02/02:10AAA@0.5USD] 5 USD ; :BUY: (basis)
2025-03-01
assets:broker:aaa -5 AAA ; @ 0.40 USD
assets:broker:usd 6.55 USD
revenues:gains
[Lot::2025/01/01:10AAA@1.1USD] 5 AAA ; :SELL: (inventory consumed)
[Lot::2025/01/01:10AAA@1.1USD] -5.5 USD ; :SELL: (basis consumed)
[Lot:Income:short term gain] 3.5 USD ; :GAIN:SHORTTERM: (loss)
2025-03-02
assets:broker:aaa -5 AAA ; @ 0.40 USD
assets:broker:aaa -10 AAA ; @ 0.50 USD
assets:broker:aaa -9 AAA ; @ 1.10 USD
assets:broker:usd 31.68 USD
revenues:gains
[Lot::2025/01/01:10AAA@1.1USD] 5 AAA ; :SELL: (inventory consumed)
[Lot::2025/01/01:10AAA@1.1USD] -5.5 USD ; :SELL: (basis consumed)
[Lot::2025/01/01:10AAA@1.2USD] 10 AAA ; :SELL: (inventory consumed)
[Lot::2025/01/01:10AAA@1.2USD] -12 USD ; :SELL: (basis consumed)
[Lot::2025/01/01:10AAA@1.2USD] 9 AAA ; :SELL: (inventory consumed)
[Lot::2025/01/01:10AAA@1.2USD] -10.8 USD ; :SELL: (basis consumed)
[Lot:Income:short term gain] 11.4 USD ; :GAIN:SHORTTERM: (loss)
2025-03-03
assets:broker:aaa -1 AAA ; @ 1.10 USD
assets:broker:aaa -9 AAA ; @ 1.20 USD
assets:broker:usd 13.30 USD
revenues:gains
[Lot::2025/01/01:10AAA@1.2USD] 1 AAA ; :SELL: (inventory consumed)
[Lot::2025/01/01:10AAA@1.2USD] -1.2 USD ; :SELL: (basis consumed)
[Lot::2025/02/01:10AAA@0.4USD] 9 AAA ; :SELL: (inventory consumed)
[Lot::2025/02/01:10AAA@0.4USD] -3.6 USD ; :SELL: (basis consumed)
[Lot:Income:short term gain] -7.1 USD ; :GAIN:SHORTTERM: (gain)

View File

@ -0,0 +1,49 @@
option "operating_currency" "USD"
2025-01-01 open Assets:Broker:Aaa:2021-01-01-0-40
2025-01-01 open Assets:Broker:Aaa:2022-01-01-0-50
2025-01-01 open Assets:Broker:Aaa:2025-01-01-1-1-10
2025-01-01 open Assets:Broker:Aaa:2025-01-01-2-1-20
2025-01-01 open Assets:Broker:Aaa:2025-01-01-3-1-20
2025-01-01 open Assets:Broker:Usd
2025-01-01 open Income:Gains
2025-01-01 open Income:Gifts
2025-01-01 *
Assets:Broker:Usd
Assets:Broker:Aaa:2025-01-01-1-1-10 10 AAA @ 1.10 USD
2025-01-01 *
Assets:Broker:Usd
Assets:Broker:Aaa:2025-01-01-2-1-20 10 AAA @ 1.20 USD
2025-01-01 *
Assets:Broker:Usd
Assets:Broker:Aaa:2025-01-01-3-1-20 10 AAA @ 1.20 USD
2025-02-01 *
Income:Gifts
Assets:Broker:Aaa:2021-01-01-0-40 10 AAA @ 0.40 USD
2025-02-02 *
Income:Gifts
Assets:Broker:Aaa:2022-01-01-0-50 10 AAA @ 0.50 USD
2025-03-01 *
Assets:Broker:Aaa:2021-01-01-0-40 -5 AAA @ 0.40 USD
Assets:Broker:Usd 6.55 USD
Income:Gains
2025-03-02 *
Assets:Broker:Aaa:2021-01-01-0-40 -5 AAA @ 0.40 USD
Assets:Broker:Aaa:2022-01-01-0-50 -10 AAA @ 0.50 USD
Assets:Broker:Aaa:2025-01-01-1-1-10 -9 AAA @ 1.10 USD
Assets:Broker:Usd 31.68 USD
Income:Gains
2025-03-03 *
Assets:Broker:Aaa:2025-01-01-1-1-10 -1 AAA @ 1.10 USD
Assets:Broker:Aaa:2025-01-01-2-1-20 -9 AAA @ 1.20 USD
Assets:Broker:Usd 13.30 USD
Income:Gains

View File

@ -0,0 +1,38 @@
2025-01-01
assets:broker:usd
assets:broker:aaa:2025-01-01-1_$1.10 10 AAA @ $1.10
2025-01-01
assets:broker:usd
assets:broker:aaa:2025-01-01-2_$1.20 10 AAA @ $1.20
2025-01-01
assets:broker:usd
assets:broker:aaa:2025-01-01-3_$1.20 10 AAA @ $1.20
2025-02-01
revenues:gifts
assets:broker:aaa:2021-01-01_$0.40 10 AAA @ $0.40
2025-02-02
revenues:gifts
assets:broker:aaa:2022-01-01_$0.50 10 AAA @ $0.50
2025-03-01
assets:broker:aaa:2021-01-01_$0.40 -5 AAA @ $0.40
assets:broker:usd $6.55
revenues:gains
2025-03-02
assets:broker:aaa:2021-01-01_$0.40 -5 AAA @ $0.40
assets:broker:aaa:2022-01-01_$0.50 -10 AAA @ $0.50
assets:broker:aaa:2025-01-01-1_$1.10 -9 AAA @ $1.10
assets:broker:usd $31.68
revenues:gains
2025-03-03
assets:broker:aaa:2025-01-01-1_$1.10 -1 AAA @ $1.10
assets:broker:aaa:2025-01-01-2_$1.20 -9 AAA @ $1.20
assets:broker:usd $13.30
revenues:gains

25
examples/sample2.journal Normal file
View File

@ -0,0 +1,25 @@
2025-01-01 starting balances
assets:cash 100 USD = 100 USD
assets:bank:checking 1000 USD = 1000 USD
assets:broker:usd 1000 USD = 1000 USD
assets:broker:aaa 1 AAA @ 1.20 USD = 1 AAA @ 1.20 USD
liabilities:credit card -400 USD = -400 USD
equity:start
2025-01-01 pay rent
assets:bank:checking
expenses:rent 800 USD
2025-01-02 salary
revenues:salary
assets:bank:checking 1000 USD
2025-01-03 pay off credit card
assets:bank:checking
liabilities:credit card 400 USD = 0 USD
2025-01-04 shopping
assets:bank:checking
expenses:food 200 USD
expenses:supplies 50 USD