top of page

Yearly Inventory

Updated: Aug 7, 2023

Yearly inventory I'm defining here is where a separate inventory is made and maintained over the span of a single year. At the end of the year, a copy is made for the new year and maintenance continues anew.

This has advantages like an archive of prior years and freedom to change stands as needed during the current year without fear of messing up prior year archives.

There are a few necessary features to accomplish this though and they can get a bit obscure. And like any process, there are the nice to haves that are usually works in progress.

I'm hoping to discuss and explain how Assisi accomplished these here.

The Assisi Library is "open blog space" where you are encouraged to comment and even edit the blog itself. Posts are not fixed in time so the blog itself will get updated as we go.

Cruise Data and Inventory Units

It is typical for cruise data to be stored in a single unit, separate from units made for inventory years. The cruise data unit is not an inventory: it is simply a repository of all cruises for all time. The cruise data unit is filled with stands (or strata) and the actual cruise data performed in the field. The inventory units are filled with stands that exist during a given inventory year and use the expansion process to copy cruise results from the cruise stands to the inventory stands.

Inventory units often use the year of inventory for their name. Each new inventory year a new unit is made. Over time, the database stores inventories for prior years in a convenient archive.


To give the inventory units an actual inventory (trees, volumes etc.) the cruise data are compiled and then results copied over to inventory stands. This process is called Expansion in Assisi.

Each stand in an inventory unit gets an expansion record that determines the cruise data source inventory will be copied from. A single cruise data stand can be mapped to any number of inventory stands for example in a stratified inventory. The source cruise data stand and the destination inventory stand end up having the same content: trees, species, cover, etc.


Cruise data are often many years old. Assisi's growth process estimates growth to give a more accurate up to date estimate of inventory. During growth processing, Assisi can simulate a number of actions such as stand establishment, planting, fertilization, thinning, clear-cutting and stand disposal. These historical actions are defined in Assisi's history tables. A typical stand history might be:

9/15/2000 Establish - The first date the stands polygon began to be tracked.

10/15/2000 Plant - Stand was planted. Assisi records species and density of seedlings.

2/15/2003 Fertilization - Assisi can simulate an application of nitrogen.

10/15/2015 Precommercial Thin - Simulate removal of under performing trees.

10/15/2035 Commercial Thin - Selective harvest of marketable trees.

10/15/2050 Clearcut - Final cut of stand.

10/15/2050 Disposal - Stand polygon and name are no longer being tracked.

Each of these history records allows Assisi to more accurately estimate the inventory as the years progress. The effect of some actions, such as fertilization, depends on the growth model being used.

Where to Store History

History can be stored on either the cruised stands or the inventory stands. The choice depends on what stands you are growing to obtain the current year inventory.

When history is stored on cruise data, cruise data should be grown first before expansion run. If a cruised stand was thinned or modified, you will want that history simulated during growth and the results copied over to inventory stands. Storing history on cruise data has the advantage that history occupies a single location for all inventories: on the cruised stand records.

When history is stored on inventory stands, expansion should be performed first then growth run on the expanded inventory. Growth will simulate the stand history to create a current inventory.

Storing history on the inventory stands rather than the cruised stands has the advantage of being able to process partial harvests and stand splitting. Cruise data reflects a stand as it existed at the time of cruise. If a stand has been partially harvested or split, a history record for the split can be stored on the inventory stand and the split simulated when the inventory stand is grown.

Processing Expansions

The process of Expansion in Assisi starts with adding Expansion records to stands. Expansion records are kind of like Cruise records in that both specify what the source of an inventory is. For a Cruise, the source is a cruise. For an Expansion, the source is another stand's inventory.

Define Expansions as you would Cruises using the Field Data Editor.

Note that each Expansion defines the source unit and stand as well as overrides for the stand's growth year, total and breast height age. After the expansion is processed,the destination stand will have the same inventory but different growth year and age if the overrides are set.

Processing Expansions

Expansions are processed like growth is processed: select stands (shift click) and press the Expand button:

Expansion does not compile cruise data so selected plots are ignored. Each source stand should already have an inventory. Whether cruised or grown, whatever the source stand's inventory is, it will be copied to the destination stand.

65 views6 comments

Recent Posts

See All

Tree Volume Defects

How Assisi Forest records, compiles and grows timber volume defect.


Comment: On importing expansions from expansion sheet I found where my default setting on calibration was populating expansion on import. The point of expansion is to have the source stand set your calibration and market. I never would have expected for expansion that I would even have to consider this. Rich, can you confirm if we leave calibration blank on import that the expansion will validate appropriately or do we have to set calibration/market on every stand on the cruise/stand sheet separately.

Rich Howard
Rich Howard
Feb 21, 2023
Replying to

Yes. In version 2023.1.2, calibration (and market) can be left blank on the Cruise Sheet Import.

For perspective, the calibration that is used on expanded stands could be different when expansion is from a stratified source. In a stratified sample, stands are strata and are often compiled to create scaled models by type. These "calibrated" models are stored in a different calibration than the one used to process the scaling. Expanded stands then use the "scaled" calibration. Ie. there are two calibrations in this case: the one used to compile the source stands and the one used to compile the expanded stands.


Rich Howard
Rich Howard
Jul 07, 2022

If you are wanting to create a harvest unit layer where new stands are composed of portions of existing stands, this can be done using the Stratify Wizard.

The Stratify Wizard takes a list of plot and weights, applies the weights to tree TPA and copies the resulting tree list to new stands and units. Although it weights by plot, it can also weight by stand by making the weights the same for all plots in source stands. In this case the weights would be the fraction of the total harvest unit area that comes from each stand. The weights should add to 1 for each harvest unit.

The Wizard uses a spreadsheet to define the harvest unit Unit name,…


Rich Howard
Rich Howard
Jul 06, 2022

Yes, the process in Assisi is one source stand to one destination stand. But it is inventory rather than field data that is copied. In other words, it is the compiled results from the source stand that are copied to the destination stand. This includes not only processed tree records, but all the rest: stand tables, species summaries, grade summaries, logs, etc. These are of course already "average" results because they are the results of compiling.

In Assisi if you are after "expanding" strata to stands, then you should create a unit where each stand is a stratum. Combine plots into a cruise in the stratum using plot type. Each "stand" in the unit becomes a stratum with a ty…


Thanks for the information.

My experience with expansion is that it is done with averages of tree records by strata or "Type". Am I correct in assuming that this process limits the expansion to a [Source > Destination] logic? in, there are no averages, just populating one stand's trees with another's?

is there a way to expand from multiple sources into one or more stands?

In my CSV files would it make sense to add a IsSelected bool/bit column?

Rich Howard
Rich Howard
Sep 13, 2022
Replying to

Yes, its one to one. But... if you create a stratified unit first, you can expand from that. A stratified unit is a different grouping of plots based on forest typing. Check out the stratified units (and Calibrations!) in the sample database.

bottom of page