# Replication: Huggett, Ventura & Yaron (2006) & (2011)

**URL:** https://discourse.vfitoolkit.com/t/replication-huggett-ventura-yaron-2006-2011/725
**Category:** Uncategorized
**Created:** [October 22, 2026, 10:27pm UTC](https://discourse.vfitoolkit.com/t/replication-huggett-ventura-yaron-2006-2011/725 "2026-10-22T22:27:59Z")
**Posts on this page:** 2
**Page:** 1

<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: [October 22, 2026, 10:27pm UTC](https://discourse.vfitoolkit.com/t/replication-huggett-ventura-yaron-2006-2011/725/1 "2026-10-22T22:27:59Z")

</div>

Two replications:

Huggett, Ventura & Yaron (2006) - Human Capital and Earnings Distribution Dynamics ([original paper](https://doi.org/10.1016/j.jmoneco.2005.10.013), [replication repo](https://github.com/vfitoolkit/vfitoolkit-matlab-replication/tree/master/HuggettVenturaYaron2006))

Huggett, Ventura & Yaron (2011) - Sources of Lifetime Inequality ([original paper](https://doi.org/10.1257/aer.101.7.2923), [replication repo](https://github.com/vfitoolkit/vfitoolkit-matlab-replication/tree/master/HuggettVenturaYaron2011))

HVY2006 has one endogenous state, human capital. HVY2011 has two, assets and human capital, along with permanent types (learning ability) and general equilibrium. In both, a key part of the exercise is calibrating the initial distribution so the model matches the age profiles of the earnings distribution. These replications use the VFI Toolkit commands CalibrateLifeCycleModel and CalibrateOLGModel (with permanent types) to do this.

Both originals exploit a trick: the parameters of the initial distribution do not enter the value function problem, only the agent distribution. So the value function is solved once (in HVY2011, once for each value of the elasticity α on a grid), and each step of the calibration only updates the agent distribution. Calibration needs hundreds of model solutions, and the value function is by far the most expensive part, so this greatly reduces the cost. The VFI Toolkit commands are generic and do not use this structure: they re-solve the value function at every step. That costs more computing time, but it means α can be calibrated together with the initial distribution, which in HVY2011 turns up a better calibration than the original.

---

<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: [October 23, 2026, 2:58am UTC](https://discourse.vfitoolkit.com/t/replication-huggett-ventura-yaron-2006-2011/725/2 "2026-10-23T02:58:28Z")

</div>

For anyone wondering about the ‘CalibrateLifeCycleModel’ and ‘CalibrateOLGModel’ commands (and their PType variants, as well as the InfHorz variants like CalibrateBIHAModel):

You list the parameters to calibrate: just give names, like {‘beta’,‘gamma’,‘sigma’}.

You list the targets: just build a TargetMoments structure with the data values that you want to hit, and use the standard toolkit naming (same as the GMM estimation).

Done. Toolkit handles all the rest.

If model is general eqm you also need to include the GeneralEqmEqns, and you can choose between joint- and nested-optimization.

Toolkit automatically handles all sorts of target moments (mean, quantiles, variance, Gini, age-conditional, conditional-restrictions, auto-correlation, cross-sectional covariances, and many more). If you want to target something really complex you can always use ‘CustomModelStats’ to define how to calculate it in the model.
