I am still trying to find the way to calculate the net worth at a certain 
date using *balance *field (I am not sure it will give me any advantage)

But somehow it does not quire work as I expect

E.g.

ledger_text = """

2020-01-01 open Assets:Bank1
2020-01-01 open Assets:Bank2
2020-01-01 open Income:Salary

2020-01-01 * "Salary 1"
  Income:Salary
  Assets:Bank1 1000 EUR

2020-01-20 * "Salary 2"
  Income:Salary
  Assets:Bank2 1000 EUR

2021-01-20 * "Salary 3"
  Income:Salary
  Assets:Bank2 1000 EUR
"""

date_iso = datetime.date(2020,12,31).isoformat()

query=f"""
select account, SUM(position) as amount
where date <= {date_iso} AND account ~ 'Assets|Liabilities'
"""

result:

account amount (EUR)
Assets:Bank1 1000.0
Assets:Bank2 1000.0


This is correct!! 
Now using balance field 
query=f"""
select account, LAST(balance) as amount
where date <= {date_iso} AND account ~ 'Assets|Liabilities'
"""
account amount (EUR)
Assets:Bank1 1000.0
Assets:Bank2 2000.0 <==== This is incorrect! 
So, what am I doing wrong?

On Sunday, April 28, 2024 at 4:17:36 PM UTC+2 Chary Chary wrote:

> Dear all,
>
> I just want to double check, that the beanquery I am using to get my net 
> wort at certain date is an optimal one
>
> I use the following:
>
>     query = f"""
>     SELECT account, convert(SUM(position),'{currency}',{date_iso}) as 
> amount
>     where date <= {date_iso} AND account ~ 'Assets|Liabilities'
>     """
>
> As you can see, I convert everything to one currency with the exchange 
> rate at the date of the report.
>
> it works fine, but I am just wondering whether there is more conical way? 
> E.g. using 
>
> BALANCES [AT <function>] [FROM …]
>  
>

-- 
You received this message because you are subscribed to the Google Groups 
"Beancount" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beancount/1dc7bdb9-f9ea-4527-93a3-310d385b466fn%40googlegroups.com.

Reply via email to