I personally consider my car as a commodity like my investments. See below 
a reproducible example:

~~~
option "operating_currency" "EUR"
option "title" "test-depreciation"

2021-07-01 commodity VAN
  name: "Renault Master Van"
  asset-class: "car"
  current_price_origin: "depreciation"
  yearly_rate: 10
  initial_price: 49900.00
  purchase_date: "2021-07-15"

2021-01-01 open Assets:Car:Van
2021-01-01 open Assets:Checking

2021-07-15 * "Ahorn Camp GmbH" "Purchase Renault Master"
  note: "depreciated using the declining balance depreciation at 10% per 
year [[https://www.investopedia.com/terms/d/decliningbalancemethod.asp]]";
  Assets:Car:Van                                          1 VAN   {49900.00 
EUR}
  Assets:Checking                                 -49900.00 EUR

2021-07-15 price VAN                               49900.00 EUR
2021-12-31 price VAN                               47524.13 EUR
2022-07-15 price VAN                               44910.00 EUR
2022-12-31 price VAN                               42771.72 EUR
2023-07-15 price VAN                               40419.00 EUR

~~~

I wrote a script that fetch current prices for all my commodities from 
either Google Finance (almost all my ETFs and currencies), iShares (some 
ETFs not in Google Finance), OECD API <https://data.oecd.org/api/> 
(inflation rate, for beangrow calculation of real CAGR). I added a function 
that appends the current price of my car by applying a approx straight line 
depreciation (see below).

This allows me to look at my current assets and get the price I estimate I 
can convert my car if I would sell today; lot of assumptions, acknowledged, 
but good enough for me. If I was using this for official reporting, e.g. 
taxes declaration, I would likely use your method of a yearly transaction 
to a 'Expenses:Depreciation' account.[image: Screenshot 2023-03-04 
202023.png]

I don't own an house, but if I were I would be interested of the present 
value. I would likely write a webscraper that gets the current price index 
of the properties in my region and estimate the present value, getting 
additional parameters such as closure costs, moving costs etc. Beancount is 
awesomely scalable for these plugins.

*Depreciation function*
~~~
def present_value(initial_value: float,
                  yearly_rate: float,
                  start_date_iso: str,
                  current_date_iso: str = None) -> float:
    """Return present value calculated with straight line depreciation.
    Args:
      initial_value: purchase price
      yearly_rate: rate in % (e.g. for 10% enter 10)
      start_date: in iso format; e.g. for 2021/07/15 enter '2021-07-15'
      current_date: iso of present date. If omitted, will take today
    Return:
      current value, rounded 0.2f.
    """
    start_value = float(initial_value)
    start_date = dt.fromisoformat(start_date_iso).date()
    if current_date_iso:
        current_date = dt.fromisoformat(current_date_iso).date()
    else:
        current_date = dt.today().date()
    delta = current_date - start_date
    years = delta.days / 365  # approx, without considering leap years
    present_value = start_value * pow((1 - yearly_rate / 100), years)
    return round(present_value, 2)

~~~
On Sunday, February 26, 2023 at 7:38:52 PM UTC+1 char...@gmail.com wrote:

> Robert,
>
> OK, thanks, understood. 
>
> On Friday, February 24, 2023 at 6:48:41 PM UTC+1 Robert S wrote:
>
>> No plugins are necessary; this is all computed on the Balance Sheet view 
>> in Fava. You use the selector in the upper-right to switch between "At 
>> Cost", "At Market Value", and "Units". Using the example car transactions 
>> above, prior to the sale, the Balance Sheet would show:
>>
>> - At Cost: 16,000 EUR (the original cost of the car plus -4,000 EUR of 
>> accumulated depreciation).
>> - At Market Value: the same (16,000 EUR) *unless* you also had price 
>> entries for CAR.MAKEMODEL, which would then be the most recent price plus 
>> -4,000 EUR of accumulated depreciation. Above the current value, it would 
>> show in green or red the gain/loss from the current value (cost plus 
>> accumulated depreciation).
>> - Units: 1 CAR.MAKEMODEL *and* -4,000 EUR of accumulated depreciation 
>> (the mixed commodities).
>>
>> - Robert
>> On Monday, February 20, 2023 at 10:02:05 AM UTC-5 char...@gmail.com 
>> wrote:
>>
>>> Robert,
>>>
>>> RE:  *Fava's unrealized gain/loss report will show the PnL from the 
>>> balance sheet value (i.e. the cost plus accumulated depreciation or capital 
>>> improvements).*
>>>
>>> Can you please can you please point me to this *Fava's unrealized 
>>> gain/loss report. *I did some looking around, but could not find it.
>>>
>>> I can see, that there is a normal unrealized gains plugin 
>>> <https://github.com/beancount/beancount/blob/v2/beancount/plugins/unrealized.py>,
>>>  
>>> but I understand you meant something else
>>>
>>> Regards.
>>>
>>>
>>> On Saturday, February 11, 2023 at 6:18:28 PM UTC+1 Robert S wrote:
>>> You would track a house the same way. Except most people do not 
>>> depreciate their homes, but instead spend money on capital improvements:
>>>
>>> 2022-01-01 * "House" "Purchase"
>>>   Assets:Bank:MyBank -500,000 EUR
>>>   Expenses:Property:AcquisitionFees 50,000 EUR
>>>   Assets:Property:Address 1 HOUSE.ADDRESS {450,000 EUR}
>>> 2022-06-01 * "House" "New Roof"
>>>   Assets:Bank:MyBank -30,000 EUR
>>>   Assets:Property:Address 30,000 EUR
>>>
>>> The price of the house and the car both depend on the market; that's 
>>> what I mentioned at the bottom of my previous message. Any time you receive 
>>> market information about the current price of an asset, you can insert a 
>>> price directive for it:
>>>
>>> 2021-06-01 price CAR.MAKEMODEL 17,500 EUR
>>> 2022-07-01 price HOUSE.ADDRESS 465,000 EUR
>>>
>>> Fava's unrealized gain/loss report will show the PnL from the balance 
>>> sheet value (i.e. the cost plus accumulated depreciation or capital 
>>> improvements).
>>>
>>> - Robert
>>>
>>> P.S. I also use a plugin to automate inserting the adjusting entries for 
>>> depreciation and amortization. I just wanted to illustrate the manual 
>>> process in my first reply.
>>>
>>> On Saturday, February 11, 2023 at 4:26:05 AM UTC-5 char wrote:
>>> Ok,
>>>
>>> thank you very much for all your comments!
>>>
>>> But what about for instance buying a house?
>>>
>>> House can go up in price and it does depend on the market.
>>>
>>> How would you track buying the house?
>>>
>>> On Saturday, February 11, 2023 at 3:44:26 AM UTC+1 Red S wrote:
>>> On Friday, February 10, 2023 at 4:48:15 PM UTC-8 Robert S wrote:
>>> The transactions would look like:
>>>
>>> 2020-01-01 * "Car" "Purchase"
>>>   Assets:Bank:MyBank -20,000 EUR
>>>   Assets:Equipment:Vehicles 1 CAR.MAKEMODEL {20,000 EUR}
>>> 2020-12-31 * "Car" "Depreciation Expense"
>>>   Assets:Equipment:Vehicles
>>>   Expenses:AccumulatedDepreciation 2,000 EUR
>>> 2021-12-31 * "Car" "Depreciation Expense"
>>>   Assets:Equipment:Vehicles
>>>   Expenses:AccumulatedDepreciation 2,000 EUR
>>>
>>> Above is how I do it as well. I use the effective_date plugin 
>>> <https://github.com/redstreet/beancount_reds_plugins/tree/main/beancount_reds_plugins/effective_date>
>>>  to 
>>> automate the above.
>>>
>>

-- 
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 beancount+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beancount/b2be039f-80f6-4a20-b83c-ce637fab4b72n%40googlegroups.com.

Reply via email to