27 desembre

This commit is contained in:
Roger Oriol
2025-12-27 19:34:58 +01:00
parent c0ebdf099a
commit a45cdbd013
6 changed files with 148 additions and 14 deletions

View File

@@ -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()

View File

@@ -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

View 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

View File

@@ -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

View File

@@ -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

View File

@@ -0,0 +1,74 @@
Balance Sheet (date=2025-12-27)
──────────────────────────────
Assets
Comptes bancaris
----------------- ------------
Corrent 14273.57 EUR
Estalvi 0 EUR
Compte d'inversió 0 EUR
Total 14273.57 EUR
----------------- ------------
Inversions
---------------- -------------
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
--------------------- ------------
Propietat personal
---------------------------- -----------
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
---------------------------- -----------
Deutes
----------------- -----
Deutes per cobrar
Total deutes 0 EUR
----------------- -----
Beneficis laborals
----------------------------- -----------
Tickets Restaurant 45.92 EUR
Targeta Transport 37.95 EUR
Pla Pensions Empleados Zurich 4122.54 EUR
Total beneficis 4206.41 EUR
----------------------------- -----------
------------ -------------
Total Assets 161702.50 EUR
------------ -------------
──────────────────────────────
Liabilites
-------------------------------- ------------
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
-------------------------------- ------------
------------- -------------
Total passius -19217.17 EUR
------------- -------------
──────────────────────────────
Net Worth 142485.33 EUR
──────────────────────────────
Financial Ratios
------------------------------------ -------- -------
Debt-to-Assets Ratio 11.88 % 50 %
Emergency Fund 5.02 mth 3-6 mth
Investment Assets to Net Worth Ratio 94.54 % 50 %
Liquid Assets to Net Worth Ratio 75.12 % 15 %
Savings Ratio 39.47 % 20 %
Debt-Service Ratio 0.96 % 35 %
Non-Mortgage Debt-Service Ratio 0.00 % 15 %
Interest Coverage Ratio 33.90 1.5
------------------------------------ -------- -------