# Adding new decisions to LifeCycleModel35semiz

**URL:** https://discourse.vfitoolkit.com/t/adding-new-decisions-to-lifecyclemodel35semiz/584
**Category:** Uncategorized
**Created:** [February 3, 2026, 1:40am UTC](https://discourse.vfitoolkit.com/t/adding-new-decisions-to-lifecyclemodel35semiz/584 "2026-02-03T01:40:17Z")
**Posts on this page:** 5
**Page:** 2

<div class="post-metadata">

### Author: ![MichaelTiemann](https://discourse.vfitoolkit.com/user_avatar/discourse.vfitoolkit.com/michaeltiemann/32/220_2.png) [@MichaelTiemann](https://discourse.vfitoolkit.com/u/MichaelTiemann)
#### Post date: [February 5, 2026, 8:14pm UTC](https://discourse.vfitoolkit.com/t/adding-new-decisions-to-lifecyclemodel35semiz/584/22 "2026-02-05T20:14:35Z")

</div>

Yes, but it doesn’t let the value of `solarpv` evolve as I expected it to. I.e., `solarpv` for the given house starts to evolve at `j==1`, not at the purchase of the house.

After looking harder at LifeCycleModel41, I understand that `experienceasset` has an implicit age dimension (the prime in hprime is the `+1` of `j+1` after all), and that age dimension scales into `h_accum` from the start. Is there any way to get `experienceasset` to start ticking from an event rather than only from the start of time?

Perhaps when you suggested making `solarpv` an experience asset, it would be an asset with only a single value that did not evolve? That could still be useful, because houses with that asset would still have idiosyncratic evolution of assets and costs, just not in the dimension of `solarpv` itself.

---

<div class="post-metadata">

### Author: ![MichaelTiemann](https://discourse.vfitoolkit.com/user_avatar/discourse.vfitoolkit.com/michaeltiemann/32/220_2.png) [@MichaelTiemann](https://discourse.vfitoolkit.com/u/MichaelTiemann)
#### Post date: [February 7, 2026, 8:55pm UTC](https://discourse.vfitoolkit.com/t/adding-new-decisions-to-lifecyclemodel35semiz/584/23 "2026-02-07T20:55:26Z")

</div>

I have sorted out what I was misunderstanding, and the model I’ve built is now working as expected with a experience asset. Yay!

It took me a while to realize that there’s not much to see in the Value function nor the policy when using the default indexes of 1 for assets (bankrupt), housing (homeless), and solarpv (choosing to not install). I actually took a mental note to fix that yesterday, but got lost chasing other things.

Now that I’m displaying richer parts of the policy (assets near 1.0 and housing at 1) we can see the action.

---

<div class="post-metadata">

### Author: ![MichaelTiemann](https://discourse.vfitoolkit.com/user_avatar/discourse.vfitoolkit.com/michaeltiemann/32/220_2.png) [@MichaelTiemann](https://discourse.vfitoolkit.com/u/MichaelTiemann)
#### Post date: [September 18, 2026, 5:36am UTC](https://discourse.vfitoolkit.com/t/adding-new-decisions-to-lifecyclemodel35semiz/584/24 "2026-09-18T05:36:01Z")

</div>

An update. I spent a week with Gemini to make a few changes to the VFI Toolkit. I can now solve larger models more rapidly:

 ![Figure_6_pv_fairprice](https://discourse.vfitoolkit.com/uploads/default/original/1X/28326ec7d8ac9faeb431b0ea90d8151245a5ec0a.png)  
 ![Figure_5_pv_fairprice](https://discourse.vfitoolkit.com/uploads/default/original/1X/b59e0c9187d5eed1ac0c391f95410a2bcb02f9e0.png)

Here’s the code from the model that generates the `ans` answers below:

```auto
% V is now (a,z,j). This was already true, just that previously z was trivial (a single point) 
% Compare
size(V)
% with
[n_a,n_z,N_j]
% there are the same.
% Policy is
size(Policy)
% which is the same as
[length(n_d)+1,n_a,n_z,N_j]
% The n_a,n_z,N_j represent the state on which the decisions/policys
% depend, and there is one decision for each decision variable 'd' plus one
% more for the standard asset

```

Solve ValueFnIter  
Unpacking Policy tensor to System RAM…  
Elapsed time is 278.996892 seconds.

ans =

```
15 4 5 7 7 30 3 7 60

```

ans =

```
15 4 5 7 60

```

ans =

```
 4 15 4 5 7 7 30 3 7 60

```

ans =

```
 3 15 4 5 7 60

```

We can increase the size and complexity of the model by adding a 3-state energy shock and use Quasi-Hyperbolic discounting with Epstein-Zin preferences:

Solve ValueFnIter  
Elapsed time is 826.439161 seconds.

ans =

```
15 4 5 7 7 30 3 7 3 60

```

ans =

```
15 4 5 7 3 60

```

ans =

```
 4 15 4 5 7 7 30 3 7 3 60

```

ans =

```
 3 15 4 5 7 3 60

```

Epstein-Zin agents are a jittery bunch (or so I am told)!

 ![Figure_6_qhez_zenergy](https://discourse.vfitoolkit.com/uploads/default/original/1X/e52873ebc72a25ae1ff1696db607d40df1989c03.png)  
 ![Figure_5_qhez_zenergy](https://discourse.vfitoolkit.com/uploads/default/original/1X/e1422508f7105d3fcdecee97baff4ce2c1560fce.png)

---

<div class="post-metadata">

### Author: ![robertdkirkby](https://discourse.vfitoolkit.com/user_avatar/discourse.vfitoolkit.com/robertdkirkby/32/287_2.png) [@robertdkirkby](https://discourse.vfitoolkit.com/u/robertdkirkby)
#### Post date: [September 18, 2026, 8:19pm UTC](https://discourse.vfitoolkit.com/t/adding-new-decisions-to-lifecyclemodel35semiz/584/25 "2026-09-18T20:19:33Z")

</div>

That is a big big model!

---

<div class="post-metadata">

### Author: ![MichaelTiemann](https://discourse.vfitoolkit.com/user_avatar/discourse.vfitoolkit.com/michaeltiemann/32/220_2.png) [@MichaelTiemann](https://discourse.vfitoolkit.com/u/MichaelTiemann)
#### Post date: [September 18, 2026, 8:20pm UTC](https://discourse.vfitoolkit.com/t/adding-new-decisions-to-lifecyclemodel35semiz/584/26 "2026-09-18T20:20:45Z")

</div>

It was only possible because of all the goodness that’s been built into the toolkit over the years.

[Previous page](https://discourse.vfitoolkit.com/t/adding-new-decisions-to-lifecyclemodel35semiz/584.md?page=1)
