27 desembre
This commit is contained in:
@@ -92,13 +92,14 @@ def get_investment_assets_to_net_worth_ratio(balances, min):
|
||||
return f"{bcolors.FAIL if result < min else bcolors.OKGREEN}{result} %{bcolors.ENDC}"
|
||||
|
||||
|
||||
def get_liquid_assets_to_net_worth_ratio(balances, min):
|
||||
def get_liquid_assets_to_net_worth_ratio(balances, pignorat, min):
|
||||
liquid = 0
|
||||
for account, balance in balances.items():
|
||||
if account.startswith("Assets:Liquid") or account.startswith("Assets:Invest"):
|
||||
liquid = balance if liquid == 0 else liquid + balance
|
||||
total_liquid = Amount(Decimal(0), "EUR") if liquid.get_only_position(
|
||||
) == None else liquid.get_only_position().units
|
||||
total_liquid = sub(total_liquid, Amount(pignorat, 'EUR'))
|
||||
result = round(
|
||||
(total_liquid.number / get_net_worth(balances).number) * 100, 2)
|
||||
return f"{bcolors.FAIL if result < min else bcolors.OKGREEN}{result} %{bcolors.ENDC}"
|
||||
@@ -148,18 +149,18 @@ def get_position_as_str(inventory):
|
||||
return Amount(Decimal(round(position.units.number, 2)), position.units.currency).to_string()
|
||||
|
||||
|
||||
def print_report(date, balances, expenses, net_monthly_income, net_yearly_income, debt_payments, mortgage_payments, savings):
|
||||
def print_report(date, balances, expenses, net_monthly_income, net_yearly_income, debt_payments, mortgage_payments, savings, pignorat):
|
||||
print(f"{bcolors.BOLD}Balance Sheet (date={date}){bcolors.ENDC}")
|
||||
draw_line()
|
||||
print(f"{bcolors.BOLD}Assets{bcolors.ENDC}")
|
||||
print(f"\t{bcolors.BOLD}Liquids{bcolors.ENDC}")
|
||||
print(f"\t{bcolors.BOLD}Comptes bancaris{bcolors.ENDC}")
|
||||
print(tabulate([
|
||||
["Corrent", get_sum_balances(
|
||||
balances, "Assets:Liquid:Caixabank:Corrent")],
|
||||
["Estalvi", get_sum_balances(balances, "Assets:Liquid:Estalvi")],
|
||||
["Compte d'inversió", get_sum_balances(
|
||||
balances, "Assets:Liquid:R4:EUR")],
|
||||
["Total líquids", get_sum_balances(balances, "Assets:Liquid:")],
|
||||
["Total", get_sum_balances(balances, "Assets:Liquid:")],
|
||||
]))
|
||||
print(f"\t{bcolors.BOLD}Inversions{bcolors.ENDC}")
|
||||
print(tabulate([
|
||||
@@ -169,6 +170,10 @@ def print_report(date, balances, expenses, net_monthly_income, net_yearly_income
|
||||
["Renta fixa", get_sum_balances(balances, "Assets:Invest:Fixed:")],
|
||||
["Total inversions", get_sum_balances(balances, "Assets:Invest:")],
|
||||
]))
|
||||
print(tabulate([
|
||||
["Inversions pignorades", Amount(
|
||||
round(pignorat, 2), 'EUR').to_string()],
|
||||
]))
|
||||
print(f"\t{bcolors.BOLD}Propietat personal{bcolors.ENDC}")
|
||||
print(tabulate([
|
||||
["Vivenda principal", get_sum_balances(
|
||||
@@ -241,7 +246,7 @@ def print_report(date, balances, expenses, net_monthly_income, net_yearly_income
|
||||
["Investment Assets to Net Worth Ratio",
|
||||
get_investment_assets_to_net_worth_ratio(balances, 50), "50 %"],
|
||||
["Liquid Assets to Net Worth Ratio",
|
||||
get_liquid_assets_to_net_worth_ratio(balances, 15), "15 %"],
|
||||
get_liquid_assets_to_net_worth_ratio(balances, pignorat, 15), "15 %"],
|
||||
["Savings Ratio", get_savings_ratio(
|
||||
balances, net_yearly_income, savings, 20), "20 %"],
|
||||
["Debt-Service Ratio",
|
||||
@@ -328,6 +333,22 @@ def get_savings(entries, options, date):
|
||||
return result
|
||||
|
||||
|
||||
def get_assets_pignorats(entries, options, date):
|
||||
assets_pignorats = {
|
||||
'R4RF': Decimal(1518.57),
|
||||
'VANEMMK': Decimal(14.99),
|
||||
'VANGL': Decimal(260)
|
||||
}
|
||||
result = Decimal(0)
|
||||
for _, curr in enumerate(assets_pignorats):
|
||||
pignorat_query = f"SELECT DISTINCT GETPRICE('{curr}', 'EUR', {
|
||||
date}) as price"
|
||||
rtypes, rrows = query.run_query(
|
||||
entries, options, pignorat_query)
|
||||
result = result + rrows[0].price * assets_pignorats[curr]
|
||||
return result
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(
|
||||
description='Generate balance sheet report')
|
||||
@@ -350,8 +371,9 @@ def main():
|
||||
debt_payments, mortgage_payments = get_debt_payments(
|
||||
entries, options, date)
|
||||
savings = get_savings(entries, options, date)
|
||||
pignorat = get_assets_pignorats(entries, options, date)
|
||||
print_report(date, balances, expenses, net_monthly_income, net_yearly_income,
|
||||
debt_payments, mortgage_payments, savings)
|
||||
debt_payments, mortgage_payments, savings, pignorat)
|
||||
|
||||
|
||||
main()
|
||||
|
||||
@@ -91,3 +91,4 @@
|
||||
1970-01-01 open Equity:FacturesUtilitatsMiquel EUR
|
||||
1970-01-01 open Equity:VacancesLaura EUR
|
||||
1970-01-01 open Equity:Depreciació EUR
|
||||
1970-01-01 open Equity:AdquisicioPersonalProperty EUR
|
||||
|
||||
6
ledger/trading/2025/12.beancount
Normal file
6
ledger/trading/2025/12.beancount
Normal file
@@ -0,0 +1,6 @@
|
||||
2025-12-26 price IWVL 50.91 EUR
|
||||
2025-12-26 price XDEQ 69.34 EUR
|
||||
2025-12-26 price R4RF 15.666315 EUR
|
||||
2025-12-26 price VANEMMK 243.3848 EUR
|
||||
2025-12-26 price VANSMCAP 383.6598 EUR
|
||||
2025-12-26 price VANGL 55.7455 EUR
|
||||
@@ -194,6 +194,11 @@
|
||||
2025-11-26 * "Zurich" "Nòmina Novembre"
|
||||
Income:Work:Zurich:Salari -3494.66 EUR
|
||||
Assets:Liquid:Caixabank:Corrent
|
||||
2025-11-26 * "DZP" "Aportació promotor"
|
||||
Income:Work:Zurich:DZP -89.43 EUR
|
||||
Assets:Benefits:DZP:PPEZurich 89.43 EUR
|
||||
Income:Invest:DZP:CapitalGains 15.34 EUR
|
||||
Assets:Benefits:DZP:PPEZurich -15.34 EUR
|
||||
2025-11-26 * "Flors Pàdua" "Roses Laura"
|
||||
Expenses:Altres 7 EUR
|
||||
Assets:Liquid:Caixabank:Corrent
|
||||
@@ -259,7 +264,7 @@
|
||||
2025-12-01 balance Assets:Invest:ETF:XDEQ 264 XDEQ
|
||||
2025-12-01 balance Assets:Benefits:Edenred:TicketsRestaurant 9.23 EUR
|
||||
2025-12-01 balance Assets:Benefits:Edenred:TargetaTransport 89.35 EUR
|
||||
2025-12-01 balance Assets:Benefits:DZP:PPEZurich 4048.45 EUR
|
||||
2025-12-01 balance Assets:Benefits:DZP:PPEZurich 4122.54 EUR
|
||||
2025-12-01 balance Assets:PersonalProperty:VivendaPrincipal 0 EUR
|
||||
2025-12-01 balance Assets:PersonalProperty:Cotxe 8174 EUR
|
||||
2025-12-01 balance Assets:PersonalProperty:JoiesArtCollecionables 50 EUR
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
2025-12-01 balance Assets:Invest:ETF:XDEQ 264 XDEQ
|
||||
2025-12-01 balance Assets:Benefits:Edenred:TicketsRestaurant 9.23 EUR
|
||||
2025-12-01 balance Assets:Benefits:Edenred:TargetaTransport 89.35 EUR
|
||||
2025-12-01 balance Assets:Benefits:DZP:PPEZurich 4048.45 EUR
|
||||
2025-12-01 balance Assets:Benefits:DZP:PPEZurich 4122.54 EUR
|
||||
2025-12-01 balance Assets:PersonalProperty:VivendaPrincipal 0 EUR
|
||||
2025-12-01 balance Assets:PersonalProperty:Cotxe 8174 EUR
|
||||
2025-12-01 balance Assets:PersonalProperty:JoiesArtCollecionables 50 EUR
|
||||
@@ -115,7 +115,9 @@
|
||||
Liabilities:Credit:Caixabank:TargetaCredit
|
||||
2025-12-13 * "Ferran Bascompte" "Bizum rellotge"
|
||||
Expenses:Altres 550 EUR
|
||||
Assets:Liquid:Caixabank:Corrent
|
||||
Assets:Liquid:Caixabank:Corrent -550 EUR
|
||||
Assets:PersonalProperty:JoiesArtCollecionables 300 EUR
|
||||
Equity:AdquisicioPersonalProperty -300 EUR
|
||||
2025-12-13 * "Leroy Merlin" "Cargols i cinta adhesiva de montatge"
|
||||
Expenses:Llar 16.58 EUR
|
||||
Assets:Liquid:Caixabank:Corrent
|
||||
@@ -156,8 +158,32 @@
|
||||
2025-12-20 * "Che Argentino" "Sopar asador argentino palma"
|
||||
Expenses:MenjarFora 51.70 EUR
|
||||
Assets:Benefits:Edenred:TicketsRestaurant
|
||||
2025-12-21 * "Santa Chiara" "Dinar Pizzeria Palma"
|
||||
Expenses:MenjarFora 48.50 EUR
|
||||
Assets:Liquid:Caixabank:Corrent
|
||||
2025-12-23 * "Aerobus" "Bitllet anada i tornada"
|
||||
Expenses:Mobilitat 12.85 EUR
|
||||
Assets:Benefits:Edenred:TargetaTransport
|
||||
2025-12-23 * "Rosa Estrella" "Compra"
|
||||
Expenses:Supermercat 14.99 EUR
|
||||
Assets:Liquid:Caixabank:Corrent
|
||||
2025-12-23 * "Udon" "Sopar"
|
||||
Expenses:MenjarFora 43.70 EUR
|
||||
Assets:Liquid:Caixabank:Corrent
|
||||
2025-12-24 * "Zurich" "Nòmina desembre"
|
||||
Income:Work:Zurich:Salari -3723.93 EUR
|
||||
Assets:Liquid:Caixabank:Corrent
|
||||
2025-12-24 * "Renta4" "Transferència diners Renta4"
|
||||
Assets:Liquid:Caixabank:Corrent -1200 EUR
|
||||
Liabilities:Credit:Renta4:PolissaCredit 1200 EUR
|
||||
2025-12-25 * "The City Arms" "Ratafia i cocacola"
|
||||
Expenses:MenjarFora 10 EUR
|
||||
Assets:Liquid:Caixabank:Corrent
|
||||
2025-12-27 * "Aerobus" "Bitllet anada i tornada"
|
||||
Expenses:Mobilitat 12.85 EUR
|
||||
Assets:Benefits:Edenred:TargetaTransport
|
||||
|
||||
2026-01-01 balance Assets:Liquid:Caixabank:Corrent 11866.83 EUR
|
||||
2026-01-01 balance Assets:Liquid:Caixabank:Corrent 14273.57 EUR
|
||||
2026-01-01 balance Assets:Liquid:R4:EUR 0 EUR
|
||||
2026-01-01 balance Assets:Invest:Fund:Vanguard:EMMK 14.99 VANEMMK
|
||||
2026-01-01 balance Assets:Invest:Fund:Vanguard:GL 776.93 VANGL
|
||||
@@ -166,12 +192,12 @@
|
||||
2026-01-01 balance Assets:Invest:Fixed:R4RF 1518.57004 R4RF
|
||||
2026-01-01 balance Assets:Invest:ETF:XDEQ 264 XDEQ
|
||||
2026-01-01 balance Assets:Benefits:Edenred:TicketsRestaurant 45.92 EUR
|
||||
2026-01-01 balance Assets:Benefits:Edenred:TargetaTransport 63.65 EUR
|
||||
2026-01-01 balance Assets:Benefits:DZP:PPEZurich 4048.45 EUR
|
||||
2026-01-01 balance Assets:Benefits:Edenred:TargetaTransport 37.95 EUR
|
||||
2026-01-01 balance Assets:Benefits:DZP:PPEZurich 4122.54 EUR
|
||||
2026-01-01 balance Assets:PersonalProperty:VivendaPrincipal 0 EUR
|
||||
2026-01-01 balance Assets:PersonalProperty:Cotxe 8174 EUR
|
||||
2026-01-01 balance Assets:PersonalProperty:JoiesArtCollecionables 50 EUR
|
||||
2026-01-01 balance Assets:PersonalProperty:JoiesArtCollecionables 350 EUR
|
||||
2026-01-01 balance Assets:PersonalProperty:MetallsPreciosos 0 EUR
|
||||
2026-01-01 balance Assets:PersonalProperty:AltresPropietats 0 EUR
|
||||
2026-01-01 balance Liabilities:Credit:Caixabank:TargetaCredit -445.91 EUR
|
||||
2026-01-01 balance Liabilities:Credit:Renta4:PolissaCredit -19971.26 EUR
|
||||
2026-01-01 balance Liabilities:Credit:Renta4:PolissaCredit -18771.26 EUR
|
||||
|
||||
74
reports/balance-sheet-report-2025-12-27.txt
Normal file
74
reports/balance-sheet-report-2025-12-27.txt
Normal file
@@ -0,0 +1,74 @@
|
||||
[1mBalance Sheet (date=2025-12-27)[0m
|
||||
──────────────────────────────
|
||||
[1mAssets[0m
|
||||
[1mComptes bancaris[0m
|
||||
----------------- ------------
|
||||
Corrent 14273.57 EUR
|
||||
Estalvi 0 EUR
|
||||
Compte d'inversió 0 EUR
|
||||
Total 14273.57 EUR
|
||||
----------------- ------------
|
||||
[1mInversions[0m
|
||||
---------------- -------------
|
||||
Fons d'inversió 70711.07 EUR
|
||||
ETFs 40197.06 EUR
|
||||
Accions 0 EUR
|
||||
Renta fixa 23790.40 EUR
|
||||
Total inversions 134698.52 EUR
|
||||
---------------- -------------
|
||||
--------------------- ------------
|
||||
Inversions pignorades 41932.56 EUR
|
||||
--------------------- ------------
|
||||
[1mPropietat personal[0m
|
||||
---------------------------- -----------
|
||||
Vivenda principal 0 EUR
|
||||
Cotxes 8174.00 EUR
|
||||
Joies, Art, Col·leccionables 350.00 EUR
|
||||
Metalls preciosos 0 EUR
|
||||
Altres propietats 0 EUR
|
||||
Total propietats 8524.00 EUR
|
||||
---------------------------- -----------
|
||||
[1mDeutes[0m
|
||||
----------------- -----
|
||||
Deutes per cobrar
|
||||
Total deutes 0 EUR
|
||||
----------------- -----
|
||||
[1mBeneficis laborals[0m
|
||||
----------------------------- -----------
|
||||
Tickets Restaurant 45.92 EUR
|
||||
Targeta Transport 37.95 EUR
|
||||
Pla Pensions Empleados Zurich 4122.54 EUR
|
||||
Total beneficis 4206.41 EUR
|
||||
----------------------------- -----------
|
||||
------------ -------------
|
||||
[1mTotal Assets 161702.50 EUR
|
||||
------------ -------------
|
||||
──────────────────────────────
|
||||
[1mLiabilites[0m
|
||||
-------------------------------- ------------
|
||||
Hipoteques en vivenda principal
|
||||
Hipoteques en vivenda d'inversió 0 EUR
|
||||
Targetes de crèdit 445.91 EUR
|
||||
Línies de crèdit per inversió 18771.26 EUR
|
||||
Factures impagades
|
||||
Préstecs personals 0 EUR
|
||||
Impostos no pagats
|
||||
Altres passius 0 EUR
|
||||
-------------------------------- ------------
|
||||
------------- -------------
|
||||
[1mTotal passius[0m [1m-19217.17 EUR[0m
|
||||
------------- -------------
|
||||
──────────────────────────────
|
||||
[1mNet Worth 142485.33 EUR[0m
|
||||
──────────────────────────────
|
||||
[1mFinancial Ratios[0m
|
||||
------------------------------------ -------- -------
|
||||
Debt-to-Assets Ratio [92m11.88 %[0m 50 %
|
||||
Emergency Fund [93m5.02 mth[0m 3-6 mth
|
||||
Investment Assets to Net Worth Ratio [92m94.54 %[0m 50 %
|
||||
Liquid Assets to Net Worth Ratio [92m75.12 %[0m 15 %
|
||||
Savings Ratio [92m39.47 %[0m 20 %
|
||||
Debt-Service Ratio [92m0.96 %[0m 35 %
|
||||
Non-Mortgage Debt-Service Ratio [92m0.00 %[0m 15 %
|
||||
Interest Coverage Ratio [92m33.90[0m 1.5
|
||||
------------------------------------ -------- -------
|
||||
Reference in New Issue
Block a user