Sequential — Original PRCalc algorithm. Greedy largest-to-smallest allocation.
Map Columns to Fields
Select which column maps to each field. Tree ID must be unique per plot. Plot ID and scaling are optional.
Map Species
Map each unique species from your data. Select a stand typing protocol below for finer species resolution.
Your Data
Count
Species
PRCalc (auto)
Height Estimation
Product Specifications
#
Species Group
Top DIB(cm)
Log Length(m)
Product Name
Value
Dest.
Color
Sequential — Original PRCalc algorithm. Greedy largest-to-smallest allocation.
Results
Plot
TreeID
Species
DBH
Ht
Vol(m³)
TPH
Product
Ratio%
ProdVol
ProdVol/ha
Logs
Product Breakdown
Size Class Distribution
cm
Stem Profile Viewer
m
Honer et al. (1983) — volume equations + merchantable volume ratiosKershaw, Richards & Larusic (2006) — product ratio allocation algorithm
PRCalc v.2026.4 — Help & Documentation
About PRCalc v.2026.4
PRCalc is a web-based product ratio calculator for northeastern North American tree species. It estimates the proportion of total stem volume allocated to defined timber products (sawlogs, studwood, pulpwood, etc.) using the merchantable volume ratio approach of Honer et al. (1983), as implemented by Kershaw, Richards & Larusic (2006).
This version extends the original PRCalc with a canonical 28-species resolution framework (mapping all input to Acadian typing species, with Honer 14-group and Kozak 27-species taper codes derived downstream), a Kozak Model 02 taper engine (Li & Weiskittel 2010; Li, Weiskittel & Kershaw 2012) for species-specific stem volume and taper profiles, species-specific regional H–D defaults from Rijal, Weiskittel & Kershaw (2012), Excel-based input/output, hierarchical data support (time, stand, plot, tree), per-hectare scaling for variable-radius and fixed-area plot designs, multi-level aggregation with standard errors, interactive SVG visualizations, stand typing with five regional classification protocols, species-cued colour palettes, and three optimization modes that go beyond the original greedy allocation.
How It Works
For each tree, PRCalc performs three calculations:
1. Total Stem Volume — PRCalc offers two volume engines, selectable from the Volume toggle in the header toolbar:
Kozak taper engine (default) — A variable-exponent taper equation (Kozak Model 02) fitted to FIA data for northeastern species (Li & Weiskittel 2010; Li, Weiskittel & Kershaw 2012; coefficients from Smith’s inventoryfunctions R package). The equation predicts outside-bark diameter at any stem height:
d(h) = (a0 · DBHa1 · HTa2) · Ξf(z, Ξ, DBH, HT)
where Ξ = (1 − (h/HT)1/3) / (1 − (1.3/HT)1/3) and the exponent is a variable function of relative height, tree dimensions, and seven species-specific coefficients (b1–b7). Total stem volume is computed via 100-section Smalian integration from near-ground (0.001 m) to tip. Species-specific DOB→DIB bark conversion follows Li & Weiskittel (2010), using either a power equation (DIB = b0 · DOBb1) or a percentage deduction depending on species. The Kozak engine provides species-specific coefficients for 20+ northeastern species (including red maple, sugar maple, red oak, white ash, and other species that the Honer engine groups together), and draws anatomically accurate taper curves in the stem profile viewer.
Honer engine — The Kershaw et al. (2006) metric adaptation of Honer et al.’s (1967) total volume equation:
V = a2 · DBH² / (a0 + a1 / HT)
where V is total volume (m³), DBH is diameter at breast height (cm at 1.3 m), and HT is total height (m). Species-specific coefficients a0, a1, a2 incorporate the Honer (1967) imperial coefficients, the ft³→m³ conversion, and a taper correction between the 1.3 m and 1.37 m (4.5 ft) measurement points.
Product allocation — In Kozak and Honer modes, the product ratio engine (VR polynomials, merchantable height, product placement) always uses Honer volumes internally, because the ratio polynomials were calibrated against them. The volume engine affects the displayed gross total volume, stem profile shape, and summary card values; it does not change how products are placed on the stem.
In Kozak (Full) mode, the VR polynomial indirection is eliminated entirely. Merchantable heights are found by bisecting the Kozak taper curve to the exact height where stem diameter equals the product’s minimum DIB. Product volumes are computed as Smalian-integrated taper sections between log boundaries — the same integration method used for gross volume, applied to each product zone individually. All four allocation modes (Sequential, Remainder, Sacrifice, Optimized) are reimplemented against these Kozak primitives. This means the product volumes shown in the ratio table are physically consistent with the stem profile curve: what you see drawn on the stem is what you get in the numbers. This mode is experimental — it produces different product ratios than the VR engine because it uses a different (arguably more physically direct) calculation path.
2. Merchantable Volume Ratios — The proportion of total volume merchantable to a given top diameter inside bark (DIB) is computed from volume ratio polynomials:
VR(MR) = b0 + b1 · MR + b2 · MR²
where MR is the merchantable ratio (either a height ratio ht/HT or a squared-diameter ratio (dib/DBH)²). The algorithm iterates between diameter-based and height-based ratios to determine how many logs of each product fit in the merchantable bole, working from the largest product down.
Types of Merchantable Volume
PRCalc reports two distinct measures of merchantable volume. Understanding the difference is important for interpreting results:
Standard Merchantable Volume — The total stem volume between a 0.3 m (1 ft) stump and the point where the stem tapers to the standard utilization limit: 10 cm DIB in metric, 4″ DIB in imperial. This is computed directly from Honer’s merchantable volume ratio equations and represents the biological maximum — all wood on the stem that is physically large enough to be utilized, regardless of what products are defined. It is always reported in volume-only mode and appears as a reference value (“Std Merch”) in product mode.
Product Merchantable Volume — The sum of volumes allocated to defined product specifications. This is always ≤ standard merchantable volume because products typically have larger DIB thresholds (e.g., 20 cm for sawlog), fixed log lengths create inter-product gaps, and the allocation algorithm may leave sections of the bole unassigned between products. The difference between standard and product merchantable volume represents recoverable wood that your product specifications do not capture.
Utilization Efficiency — Shown in product mode as a summary card and in the DBH class ratio table. This is product merchantable volume ÷ standard merchantable volume × 100%. A value of 85% means your product specs capture 85% of the biologically available merchantable wood. Low values (below ~80%) suggest that adding products with smaller DIB thresholds or shorter log lengths could recover more volume. This metric varies by diameter class — the ratio table reveals where losses concentrate.
Unutilized Volume — PRCalc splits unutilized volume into two categories to help identify where losses occur:
Product Gaps (amber) — Merchantable wood above the standard utilization limit (10 cm / 4″ DIB) that is not captured by any product specification. This includes inter-product gaps on the stem (sections between log breaks where no product fits) and bole sections where the tree meets the utilization threshold but not any product’s minimum DIB. This volume is recoverable — adding products with smaller DIB thresholds or shorter log lengths can reduce it.
Sub-merchantable (grey) — Stem volume below the standard utilization limit: the stump (below 0.3 m / 1 ft) and the tip (above the point where the stem tapers below 10 cm / 4″ DIB). This is biological waste that cannot be recovered regardless of product specifications. For small trees near the utilization threshold, the sub-merchantable fraction can be substantial.
3. Product Allocation — Products are allocated to stem sections using one of four algorithms (see Allocation Modes below). Each product’s volume is computed as the difference in volume ratios between the bottom and top of its allocated section(s).
Allocation Modes
Four allocation algorithms are available, selectable from the header toolbar. The choice of mode affects the stem profile visualization, product allocation table, DBH class ratio table, and all downstream results.
Sequential — The original PRCalc algorithm. Products are sorted from largest to smallest minimum top diameter. For each product, the algorithm calculates the merchantable height to that diameter, then packs as many fixed-length logs as will fit. Remaining bole above the last log is not utilized by that product class. This is a greedy, bottom-up approach.
Remainder — Runs the sequential allocation first, then examines the gap between each product’s last log and its merchantable height. If a smaller product’s log fits in that gap, it is inserted. Also extends the allocation beyond the last sequential product if smaller products can fit. This “fills the cracks” without changing large-product log counts.
Sacrifice — Tests whether removing one log of a larger product frees enough bole length for additional smaller-product logs that increase total utilized volume (or total value, if $/m³ is provided). Compares both options and keeps whichever scores higher. Also applies remainder fills to each trial allocation.
Optimized (DP) — Discretizes the merchantable bole into height slices (10 cm for metric, 0.5 ft for imperial) and applies dynamic programming to find the product assignment that maximizes total utilized volume or total value. Adapted from the log bucking optimization literature (Pnevmaticos & Mann 1972; Faaland & Briggs 1984). Full log lengths are enforced. When product values are provided, the DP maximizes total dollar value; otherwise it maximizes total merchantable volume ratio. This mode may produce interleaved product placements (e.g., smaller products at the base and larger products higher up) when that arrangement is globally optimal.
Note: For well-packed stems where the sequential allocation is already efficient, all four modes may produce identical results. Differences emerge when there are gaps to fill (Remainder), when sacrificing a log creates higher value (Sacrifice), or when non-sequential placements are globally superior (Optimized).
Input Modes
PRCalc offers two ways to enter data:
Manual Entry — Add individual trees directly in the browser. Select a species, enter DBH and height, then click Calculate. Good for quick single-tree calculations or classroom demonstrations.
Excel Import — Drag and drop (or browse) a .xlsx, .xls, or .csv file. PRCalc auto-detects column headers and guides you through field mapping, species mapping, and product configuration. Supports datasets from NB DNRED PSPs, FIA plots, FVS exports, OSM TreeList projections, and bilingual French/English inventories.
Sample Datasets
Two built-in sample datasets illustrate the main use cases. Each loads realistic Acadian mixedwood data with regional species codes that exercise the auto-detection mapping.
Manual Entry — 16 mixed softwood/hardwood trees with measured DBH and height, plus species-grouped products with values and mill destinations. Loads directly into the manual entry tables. Exercises basic product ratio calculation and stem profile exploration.
Inventory Plot — 2 NB stands (408 and 412), 3 survey plots, 40 trees across 6 species (JP, BS, BF, WB, QA, RM). 26 of 40 trees have measured heights (subsample from the same inventory underlying Sample 3); 14 are blank, triggering the height estimation step with H–D model fitting. JP (7/12), BF (7/13), and RM (5/8) have enough measured heights for local species-level model fitting; BS (2), QA (4), and WB (1) fall back to group or regional models. Additional columns include crown base height and crown ratio where available. Raw tree tally without pre-computed TPH — pre-selects BAF-2 variable-radius scaling so the tool computes stems/ha from DBH. Exercises the full Excel import pipeline including height estimation at multiple model tiers.
Stand Forecast — 2 NB stands (408 and 412), 3 survey plots, 10 forecast periods (2018–2108, 10-year steps). Growth paths generated by the Open Stand Model with per-path stem expansion factors. Each input tree may have multiple growth paths (rows) with different DBH/height trajectories, each carrying its own fraction of the original stems/ha — all rows are valid and should be processed independently. Pre-selects expansion factor scaling. Exercises time series visualization, period scrubbing, diameter class migration, and rotation analysis.
Sample datasets are accessible from both the manual mode (buttons below the tables) and the Excel import mode (buttons below the drop zone). The Forest Inventory and Stand Forecast samples can also be downloaded as CSV files for use as templates.
Sample Product Specifications
The Load Sample: Product Specs button populates a region-relevant set of product specs covering 28 Acadian species: SPF group (Sawlog, Studwood, Pulp), Pine group (Sawlog, Pulp), Hardwood group (Sawlog, Pulp), Poplar Pulp, and Cedar. Each includes representative NB gate prices. The Load Sample: Specs + Destinations button loads the same specs with mill destinations (e.g., JDI Sussex, Arbec Miramichi), enabling destination-grouped charts and summaries. These are provided as a starting point — users should verify specifications against their local mill requirements and current pricing.
Load / Save — Product specifications can be saved to a JSON file (Save) and loaded back later (Load). This allows reuse of mill contracts and pricing across sessions and datasets. When loading into a table that already has products, a dialog offers three options: Replace All (clear and load), Merge (add new products, keep existing), or Update (add new and overwrite matching names). If the saved file uses different units (metric/imperial), DIB and log length values are automatically converted.
Data Hierarchy
PRCalc supports a hierarchical data structure with up to four grouping levels:
Time / Period → Stand → Plot → Tree → Product
Only Tree ID, Species, DBH, and Height are required. All grouping fields are optional, and the tool adapts its outputs based on what is available:
Tree only — Per-tree volumes and ratios (no per-hectare expansion).
+ Plot ID + scaling — Per-hectare volumes, plot-level summaries with BA, TPH, QMD, and product breakdown.
+ Stand ID — Stand-level means ± 95% CI from plot estimates.
+ Time / Period — Time series charts, period slider, and temporal tracking of individual stems.
Species
PRCalc maps all input species to 28 canonical species codes at the finest resolution supported by the Acadian forest region. These 28 species serve as the single point of truth for all downstream calculations — volume, taper, stand typing, product allocation, and height estimation all derive from this mapping.
Softwoods (12): Balsam Fir (bF), Red Spruce (rS), Black Spruce (bS), White Spruce (wS), Red Pine (rP), White Pine (wP), Jack Pine (jP), Eastern Hemlock (eH), Eastern Cedar (eC), Tamarack/Larch (tL), Norway Spruce (nS), Other Softwood (oSW).
Hardwoods (16): Sugar Maple (sM), Red Maple (rM), Yellow Birch (yB), White Birch (wB), American Beech (bE), Red Oak (rO), White Ash (wA), Black Ash (bA), Trembling Aspen (tA), Largetooth Aspen (lA), Pin Cherry (pC), Ironwood (iW), Butternut (bW), Basswood (bH), Gray Birch (gB), Other Hardwood (oHW).
Each species carries three derived codes: a PRCalc group (one of Honer et al.’s 14 volume groups for VR polynomial lookups), a Kozak species (one of 27 FIA-refitted taper coefficient sets), and SW/HW type with shade tolerance class (for stand typing). The PRCalc group and Kozak species are aggregations — the 28-species code is always the finest resolution.
Auto-detection — The species mapping step automatically suggests species codes using a multi-strategy cascading resolution: direct typing codes → PRCalc codes → NB PSP/French codes → OSM Acadian 2- and 4-letter codes → FVS-NE codes → USDA PLANTS codes → FIA numeric codes → English and French common name keyword matching → genus-level fallback. Every suggestion can be overridden manually.
Input Requirements
Field auto-detection — When a file is imported, PRCalc scans column headers and suggests field mappings based on common naming conventions (English and French).
Required fields: Tree ID, Species, DBH, Total Height.
Optional grouping fields: Plot ID, Stand ID, Time / Period.
Sampling design: Variable radius (BAF), Fixed area (plot size), Expansion factor (TPH/TPA column), or No scaling.
Height Estimation
When missing heights are detected, PRCalc inserts an additional step between field mapping and species mapping. It fits regression models at the finest resolution supported by sample sizes:
Species × Plot (if ≥5 trees with measured heights)
Species × Stand (if ≥8 trees)
Species-level (if ≥10 trees)
Regional (Rijal et al. 2012 published coefficients — species-specific for 15 Acadian species)
Model forms: Curtis (1967), Näslund, Weibull, and Acadian Regional. Diagnostics include R², RMSE, and CV%, colour-coded by quality.
The regional fallback uses species-specific Chapman–Richards coefficients from Rijal, Weiskittel & Kershaw (2012), fitted from an extensive database covering Maine, the Canadian Maritimes, and southern Québec. The base model form is HT = 1.37 + c0 × (1 − exp(−c1 × DBH))c2. Species-specific coefficients are available for balsam fir, black spruce, red spruce, white spruce, white pine, eastern hemlock, white cedar, sugar maple, red maple, American beech, red oak, yellow birch, paper birch, quaking aspen, and gray birch. Species without published coefficients (e.g., black ash, ironwood, basswood) fall back to the closest published match.
Product Specifications
Products are defined by mill specifications. Each product requires: a minimum top DIB, a standard log length (0 for whole-tree), and a product name. Optional fields include species group (to restrict a product to specific species), a unit value ($/m³ or other unit with automatic conversion), a destination (mill or buyer name), and a colour for visualizations.
When product values are provided, the Sacrifice and Optimized modes maximize total dollar value instead of total volume. The value conversion system supports $/m³, $/MBF, $/GMT, $/cord, and $/tonne using species-specific green wood densities.
Destination — An optional text field identifying where each product is delivered (e.g., “JDI Sussex”, “Arbec Miramichi”). When any product has a destination, a “Volume by Destination” summary chart appears on the Charts tab showing stacked bars by product for each mill. Products without a destination are grouped as “Unassigned.” The destination field autocompletes from values already entered in the session. Destination is also included in the Excel export when present.
A warning banner appears if two or more products share the same species and top DIB — the higher-priority product (larger DIB or earlier in the list) will consume available logs first.
Value Unit Conversions
PRCalc converts all price units to $/m³ (metric) or $/MBF (imperial) using species-specific green wood densities. The following reference tables show the density values and conversion formulas used.
Green Wood Density by Species (from USDA FPL Wood Handbook GTR-282 Table 4-1; Miles & Smith 2009):
Standard equivalences: 1 cord = 128 ft³ stacked ≈ 2.55 m³ solid. 1 MBF ≈ 83.3 ft³ (International ¼″ log rule). 1 GMT = 1,000 kg. 1 short ton = 907.2 kg.
Output Tabs
All output tabs are available in both Excel import and manual entry modes.
Tree-Level — One row per tree per product. Columns include all mapped grouping fields, tree attributes, product ratios, volumes, and log counts. The Ht Src column indicates how each tree’s height was obtained (measured, estimated at various model levels, or manual).
Plot-Level — Per-plot summary with plot attributes (BA, TPH, QMD, gross total and merchantable volume) and product breakdown (volume/ha, logs/ha, % of merchantable). Includes Unutilized row. Available when Plot ID is mapped with scaling.
Stand-Level — Mean ± 95% CI computed from plot-level estimates using Student’s t-distribution. Same structure as Plot-Level but with confidence intervals. Available when both Plot ID and Stand ID are mapped with scaling.
Summary dashboard cards (tree count, plot count, mean BA, TPH, product volumes, unutilized volume). Cards update when scrubbing the period slider.
Product breakdown stacked bar chart with metric selector (ratio / volume / value). When tree count exceeds 60, automatically groups by species and shows means.
Size class distribution histogram with five view modes (DBH and height frequency by species or product, DBH BA-weighted by species). Configurable bin width, intelligent gap collapsing, and a Lock range toggle (available when time data is present) that fixes the size class axis to the full extent across all periods so the distribution visibly migrates as you scrub. Lock range and Skip blanks are mutually exclusive.
Plot-level volume comparison chart with mean reference line. Includes a sort toggle (input order vs descending by value) and a Lock range toggle (when time data is present) that fixes the y-axis across all periods to make growth/decline between periods visually apparent. Multiple metrics available: product volumes, species volumes, TPH, basal area, and value.
Value breakdown bars (when product values are provided).
Destination summary chart (when any product has a destination) — horizontal stacked bars by mill/destination showing volume or value with product breakdown. Products without a destination appear as “Unassigned.”
Time Series — Stacked area chart with eight metric options:
Product Merch. Volume — merchantable volume by product class over time.
Species Total Volume — gross total stem volume by species over time.
Species Merch. Volume — merchantable volume by species over time.
Species Basal Area — basal area (m²/ha) by species over time.
Species Density (TPH) — stems per hectare by species over time.
Lorey’s Mean Height — basal-area-weighted mean height over time. Single line (not stacked). Lorey’s height weights larger trees proportionally to their BA, making it a more stable measure of canopy height than arithmetic mean height and the standard input for site index assessment.
Top Height (H100) — mean height of the 100 largest-diameter stems per hectare over time. Single line (not stacked). H100 is thinning-independent and is the standard site productivity indicator in Canadian forestry. When in Age mode, the chart includes a site index (SI) overlay showing the interpolated H100 at a selectable reference age (25, 50, or 100 years) for comparison with regional yield tables.
Species Composition (% BA) — relative basal area share by species over time. Stacked to 100%, showing how species dominance shifts across periods. Useful for visualizing successional dynamics in multi-cohort stands.
An optional Unutilized checkbox (available for Product Merch. Volume and Species Merch. Volume modes) adds a band showing the gap between gross total volume and merchantable volume. All species modes respect the “Original species codes” toggle. An amber dashed indicator line marks the currently selected period. Below the chart, summary cards show per-category values for the selected period, with a Total card followed by Unutilized (when enabled). The unified Period slider controls the selected period across all tabs.
Stem Profile — Interactive SVG taper diagram for any selected tree. Features include:
Full symmetric stem outline derived from Honer VR equations, with coloured product zones and individual log boundary lines (dashed lines across the stem width at each log break). Product labels with leader lines identify each contiguous product run and its log count.
Stem form annotations identifying the three classical geometric zones: neiloid (butt swell), paraboloid (main bole), and cone (upper crown), with transition points detected numerically.
Reference lines at stump height, breast height (BH), and a dashed centre pith line.
Tree stepper (< >) buttons, tree picker dropdown, and position counter.
Stem filter — Filter button opens a floating panel with field selector (Species, Plot, Stand, Product) and checklist. When “Original species codes” is on, the filter shows original codes; when off, it shows mapped PRCalc species with display names (e.g., “Balsam Fir (BF)”). Toggling the checkbox while the filter is open updates the list immediately.
Scale modes — Fit (tree fills frame), Relative (with time data: scales to the selected tree’s maximum across all periods, showing its growth trajectory; without time data: scales to the tallest tree in the stand for cross-tree comparison), Fixed (user-specified reference height with amber indicator for trees that exceed it).
Time period tracking — When scrubbing through periods, the stem profile maintains the same tree identity (Plot:TreeID) even as DBH and height change with growth. When a tree has multiple growth path partitions (common in OSM output), the partition closest in DBH to the previous selection is preferred. If the tree is absent in a period (mortality or not yet established), a message is shown instead of switching to a different tree.
Exploratory height adjustment — +/− buttons temporarily shift the tree’s height by 1 m per click, with DBH recalculated using allometric scaling guided by the Rijal et al. H–D curve shape and capped at species-specific biological maxima (e.g. 45 cm for Black Spruce, 60 cm for Yellow Birch). The product zones, allocation table, and ratio table all update in real time. An amber indicator shows the offset — click it to reset.
Product Allocation table — Shows product names (ordered top-down to match the visual stem), height ranges, log counts, and ratios with volumes. When a product appears in multiple non-contiguous zones (possible in Optimized mode), the table consolidates them into one row with a “(N zones)” annotation. Unutilized volume and total tree volume are shown below.
Product Ratio by DBH Class table — Sweeps across DBH classes (configurable step size) using the Rijal et al. H–D model to predict heights, then runs the current allocation mode at each size. The selected tree’s actual row is highlighted with a ◀ marker and uses measured (not predicted) dimensions. Columns show DBH, height, total volume, each product’s ratio %, unutilized %, and total merchantable %. A CSV export button downloads the ratio table with product percentages per DBH class. The table responds to allocation mode changes, height adjustments, and period scrubbing.
Excel Export — Downloads a multi-sheet workbook with Tree-Level (one row per input tree, products pivoted to columns), Plot-Level (one row per plot), Stand-Level (means ± SE per time step × stand), and Species Map sheets. Column headers include unit suffixes for direct use in downstream analyses. When product destinations are defined, each product’s columns include a _Dest field identifying the assigned mill or buyer.
Interface Features
Light / Dark Mode — The sun/moon button in the header toggles between dark mode (default) and light mode. All SVG charts, tables, and stem profiles re-render with theme-appropriate colours.
Original Species Codes — The checkbox below the tab bar switches all displays between PRCalc’s mapped 2-letter codes and the original species values from your input data. This affects the tree table, charts, time series, stem profile picker, stem filter, and all labels. Useful when your data uses codes from a different system (e.g., OSM Acadian, FVS-NE, USDA PLANTS).
SVG Charts — All charts render as resolution-independent SVGs rather than canvas bitmaps. Screenshots and exports will be sharp at any zoom level or display density.
Suggested Citation
Kershaw, J. A., Ogilvie, J., & Claude (Anthropic). (2026). PRCalc: A product ratio calculator for northeastern tree species (Version 2026.4) [Web application]. University of New Brunswick, Faculty of Forestry and Environmental Management. https://prcalc.ext.unb.ca
References
Curtis, R.O. 1967. Height-diameter and height-diameter-age equations for second-growth Douglas-fir. Forest Science 13(4): 365–375. doi:10.1093/forestscience/13.4.365
Faaland, B. & Briggs, D. 1984. Log bucking and lumber manufacturing using dynamic programming. Management Science 30(2): 245–257. doi:10.1287/mnsc.30.2.245
Grondin, F. 1998. Improvements of the dynamic programming algorithm for tree bucking. Wood and Fiber Science 30(1): 91–104.
Honer, T.G. 1967. Standard volume tables and merchantable conversion factors for the commercial tree species of central and eastern Canada. Can. Dept. Forestry Rural Devel., For. Mgmt. Res. and Serv. Inst. Info. Rep. FMR-X-5.
Honer, T.G., Ker, M.F. & Alemdag, I.S. 1983. Metric timber tables for the commercial tree species of central and eastern Canada. Can. For. Serv., Maritimes For. Res. Centre. Info. Rep. M-X-140. 139 p.
Husch, B., Beers, T.W. & Kershaw, J.A., Jr. 2003. Forest Mensuration. 4th Edition. Wiley. 443 p.
Kershaw, J.A., Jr., Richards, E. & Larusic, J. 2006. A product ratio calculator for northeastern tree species. Northern Journal of Applied Forestry 23(1): 45–48. PDF
Kershaw, J.A., Jr., Ducey, M.J., Beers, T.W. & Husch, B. 2016. Forest Mensuration. 5th Edition. Wiley. 630 p.
Kozak, A. 2004. My last words on taper equations. The Forestry Chronicle 80(4): 507–515. doi:10.5558/tfc80507-4
Labelle, E.R. et al. 2025. An open-source tree bucking optimizer based on dynamic programming. Forests 16(5): 780. doi:10.3390/f16050780
Li, R. & Weiskittel, A.R. 2010. Estimating and predicting bark thickness for seven conifer species in the Acadian Region of North America using a mixed-effects modeling approach; comparison of model forms and subsampling strategies. European Journal of Forest Research 129: 219–233. doi:10.1007/s10342-009-0315-2
Li, R., Weiskittel, A.R. & Kershaw, J.A., Jr. 2012. Regional stem taper equations for eleven conifer species in the Acadian Region of North America: development and assessment. Northern Journal of Applied Forestry 29(1): 5–14. doi:10.5849/njaf.10-037
Pnevmaticos, S.M. & Mann, S.H. 1972. Dynamic programming in tree bucking. Forest Products Journal 22(8): 26–30.
Rijal, B., Weiskittel, A.R. & Kershaw, J.A. 2012. Development of regional height to diameter equations for 15 tree species in the North American Acadian Region. Forestry 85(3): 379–390. doi:10.1093/forestry/cps036
MacPhee, C., Kershaw, J.A., Weiskittel, A.R., Golding, J. & Lavigne, M.B. 2018. Comparison of approaches for estimating individual tree height–diameter relationships in the Acadian forest region. Forestry 91(1): 132–146. doi:10.1093/forestry/cpx039
Miles, P.D. & Smith, W.B. 2009. Specific gravity and other properties of wood and bark for 156 tree species found in North America. USDA Forest Service Research Note FPL-RN-38.
Jessome, A.P. 1977. Strength and related properties of woods grown in Canada. Forestry Technical Report 21. Eastern Forest Products Laboratory, Ottawa. 37 p.
FPL. 2021. Wood handbook — wood as an engineering material. General Technical Report FPL-GTR-282. USDA Forest Products Laboratory, Madison, WI.
Product ratios are derived from regional volume ratio equations — users should validate locally.
Honer volume equations were developed from natural stands in central and eastern Canada. They may not apply to plantations, western species, or other regions. The Kozak taper engine uses FIA-refitted coefficients for the Acadian region; applicability outside this region has not been validated.
The stem profile visualization uses the Kozak taper equation (when the Kozak engine is selected) for anatomically accurate stem shape, or inverts the VR equations (when the Honer engine is selected). The Honer/VR approach may produce slight artifacts near the tree tip. Product placement on the stem always uses VR polynomials regardless of engine.
Stand-level standard errors assume simple random sampling of plots within stands.
Height estimates from built-in models should be treated as approximations. Review R² and RMSE diagnostics before accepting.
The DBH class ratio table uses the Rijal H–D model to predict heights at sizes away from the measured tree. Predictions are most reliable near the calibration point and become more uncertain at extremes.
This tool is provided for educational and planning purposes. Product ratios should be verified against local stem analysis data before use in operational planning.
Acknowledgments
The original PRCalc was developed by Dr. John A. Kershaw, Jr. (University of New Brunswick) with Dr. Evelyn Richards and John Larusic. PRCalc v.2026 was created by Jae Ogilvie (University of New Brunswick) with assistance from Claude (Anthropic). This version extends the original with Excel I/O, hierarchical data support (time, stand, plot), multi-metric time series views, interactive SVG visualizations, stem profile exploration tools, DBH class ratio tables, stand typing with regional classification protocols (NB ERD, NS FEC, Ontario PFT, SAF/FIA), species-cued colour palettes, and optimization modes adapted from the log bucking dynamic programming literature.
Re-shows dismissed hint cards on all steps
Version & Changelog
PRCalc v.2026.4
Canonical 28-species resolution — April 2026
Even-aged detection for age estimation — Before estimating stand age from tree sizes, the tool now assesses whether the stand’s diameter distribution is consistent with even-aged structure. The TPH-weighted coefficient of variation (CV) of DBH at the first period is computed: CV ≤ 35% is classified as even-aged and proceeds with BA-weighted DBH age estimation; CV > 45%, or CV > 35% with a diameter range ratio exceeding 3×, is classified as uneven-aged and has age estimation suppressed. Uneven-aged stands show an amber “uneven-aged — age estimation suppressed” note in the Time axis bar. The user can still override with a known age. This prevents misleading age estimates for multi-cohort stands where the BA-weighted mean DBH reflects a mix of age classes rather than a single establishment event.
Stand selector iOS fix — Replaced the <input list="datalist"> stand selector with a <select> element. iOS Safari’s <datalist> support is unreliable and was only displaying the current stand value. The <select> element works correctly across all platforms.
Sample data from Open Stand Model — Forest Inventory (sample 2) and Stand Forecast (sample 3) now use real NB forest data. Sample 2: 2 stands, 3 survey plots, 40 trees across 6 species (JP, BS, BF, WB, QA, RM) with partial height subsample (26/40 measured). Sample 3: same stands forecast through 10 periods (2018–2108) using the Open Stand Model, with multiple growth paths per tree carrying per-path stem expansion factors. Replaces the previous synthetic Chapman–Richards growth data.
Validation and Kershaw samples removed — The 46-tree validation dataset (Honer 1983, Kershaw 2006, Li 2012, NHRI 2018 plots with expected volumes), the 21-tree manual-entry validation sample, and the Kershaw 2006 product specs loader have been removed. These were calibrated against the old (incorrect) Honer equation and are no longer needed.
28-species canonical resolution — All input species now resolve to one of 28 typing species at the first step. PRCalc’s 14 Honer volume groups and the 27 Kozak taper species are both derived downstream from this single canonical mapping. This replaces the previous architecture where PRCalc 14 was the primary resolution target and finer species detail was only available when a typing protocol was active. The unified dropdown always shows 28 species (grouped SW/HW) with the PRCalc volume group displayed as a read-only derived indicator.
Species-specific Rijal H–D coefficients — Regional height-diameter defaults now use species-specific Chapman–Richards coefficients from Rijal, Weiskittel & Kershaw (2012) for all 15 published Acadian species. Previously, species like red maple, American beech, red oak, eastern hemlock, and gray birch were collapsed to the “Other Hardwood” or “Other Conifer” group defaults. Now each has its own published H–D curve: e.g., red maple (c0=15.04) vs. sugar maple (c0=9.02) produce substantially different height predictions at the same diameter.
Species-specific green wood densities — Green wood density values for all 28 species now sourced from the USDA Forest Products Laboratory Wood Handbook (FPL GTR-282) Table 4-1 and Miles & Smith (2009). Used for $/GMT price conversions. Notable corrections from previous grouped values: red maple 845 (was 920), red oak 1010 (was 920), eastern hemlock 830 (was 720), butternut 775 (was 920), basswood 750 (was 920).
Product species groups at 28-species resolution — Product specification species groups now use the 28 typing species codes. Saved product spec JSON files using old PRCalc 14 codes are automatically expanded on import (e.g., OH → sM, rM, bE, rO, wA, bA, pC, iW, bW, bH, oHW). Default product specs updated accordingly.
Unified species mapping — The Map Species step always shows the 28-species dropdown regardless of whether a typing protocol is active. The previous dual-mode UI (14 species in standard mode, 28 in typing mode) is replaced by a single unified interface. Stand typing uses the mapped species directly without a separate resolution step.
Height estimation species resolution — The height estimation system now resolves to the 28 typing species when “Mapped species” is selected, enabling species-level H–D model fitting at finer resolution than the previous PRCalc 14 grouping.
Kozak taper species stored on tree records — Each tree result record now carries a kzSp field (Kozak species code) set during calculation. Stem profile, ratio tables, and the merchantable volume engine use this stored field directly rather than re-resolving at render time.
Excel export columns — Tree-Level sheet now includes Species (28-code), PRCalcSpecies (derived), and KozakSpecies (derived) columns. Species Map sheet enhanced with PRCalcGroup and KozakSpecies columns.
Species colour palette extended — All 28 species have distinct colours with SW/HW family grouping and PRCalc-group fallback for charts, stem profiles, and all visualizations.
PRCalc v.2026.4
Kozak taper engine release — April 2026
Kozak Model 02 taper engine — Variable-exponent taper equation (Kozak 2004) with FIA-refitted species-specific coefficients from Li & Weiskittel (2010), Li, Weiskittel & Kershaw (2012), and Smith’s inventoryfunctions R package. Computes total stem volume via 100-section Smalian integration (stump to tip, outside bark). Species-specific DOB→DIB bark conversion using power equations or percentage deduction. Provides coefficients for 20+ northeastern species including red maple, sugar maple, red oak, white ash, eastern hemlock, tamarack, and northern white cedar — species that the Honer engine groups into “Other Hardwood” or “Other Conifer.”
Volume engine selector — Header toolbar toggle switches between three engines: Kozak (default) uses Kozak taper for gross volume and stem profile while retaining VR polynomials for product allocation; Kozak (Full) uses Kozak taper for everything including product allocation — merchantable heights found by bisection on the taper curve, product volumes via Smalian integration, no VR polynomials; Honer uses the Kershaw et al. (2006) metric form of Honer et al. (1967) with VR product allocation. Switching engines triggers a full recalculation.
Kozak-full product allocation — Experimental mode where merchantable heights are computed by bisecting the Kozak taper curve to find where stem diameter equals the product’s minimum DIB. Product volumes are computed as Smalian-integrated taper sections between log boundaries, eliminating the VR polynomial indirection entirely. All four allocation modes (Sequential, Remainder, Sacrifice, Optimized DP) are fully reimplemented against the Kozak primitives. Product volumes are physically consistent with the taper curve — what you see in the stem profile is what you get in the ratio table.
Anatomical stem profiles — When the Kozak engine is active, the stem profile viewer draws the actual taper equation curve rather than inverting VR polynomials. Eliminates the linear-cone tip approximation above 70% height and the synthetic butt swell below stump. The profile now reflects species-specific stem form (e.g. the pronounced butt flare of tamarack vs. the cylindrical bole of red pine).
Species resolution for taper — Automatic resolution of raw input species codes (FVS, OSM Acadian, FIA numeric, USDA PLANTS, NB French) to the best available Kozak coefficient set. Falls back gracefully through alias mapping and PRCalc species groups when exact matches are unavailable.
PRCalc v.2026.4
Stand typing & species visualization release — April 2026
Stand typing engine — Classifies plots and stands into forest types based on basal area composition using configurable rule-based protocols. Results appear as type badges throughout outputs (stand-level, plot-level, charts, time series) with tooltips showing code, label, SW/HW percentages, matched branch, and rule. Typing runs per stand, per plot, and per time period — scrubbing through periods shows successional type transitions.
Five built-in protocols:
Simple SW/MW/HW (default) — three-class with 75% BA threshold
NB ERD 2008 Forest Unit — 43 types across SW/HW/MW branches with species-specific rules (New Brunswick)
NS FEC Forest Groups (2010) — 6 major groups: Wet Coniferous, Spruce–Pine, Spruce–Hemlock, Mixedwood, Tolerant Hardwood, Intolerant Hardwood (Nova Scotia)
SAF/FIA Forest Type Groups (NE) — northeastern US forest-type groups approximated from BA% (USDA FIA)
Protocol editor — slide-in panel for creating and editing custom typing protocols. Full CRUD for protocol metadata, species groups, branches (with conditions), and rules (with test expressions). Up/down reordering, add/remove at all levels. Built-in protocols are cloned when edited (originals protected). Export/import as JSON.
Single-column species mapping — the Map Species step uses 28 finer-grained species (grouped by SW/HW in the dropdown). PRCalc volume species is auto-derived and shown as a read-only indicator. User maps once; typing, volume, and taper calculations are all served from the same mapping.
Expanded species auto-detection — ~200+ direct code mappings (NB PSP, OSM Acadian, FVS-NE, FIA numeric, USDA PLANTS, Quebec/French) and ~90+ keyword name matches (English, French, Latin genus). 7-strategy resolution function with smart disambiguation for PRCalc’s ambiguous OC/OH codes.
Species-cued colour palette — species with colour names get hues echoing their name: Red Spruce → brick red, Yellow Birch → orange-amber, Black Spruce → steel blue-grey, White Spruce → cool blue, Balsam Fir → forest green. All co-occurring pairs have sufficient contrast. Applies to species composition donut, size class distribution, plot volume chart, and time series stacked area.
Species Composition chart — now available in the Charts tab alongside Product Breakdown (selectable via a mode toggle dropdown). Donut chart with basal area, stem count, gross volume, or merch volume sub-metrics. When typing is active: inner SW/HW ring, SW/HW percentage in center text, species slices grouped by SW then HW under the ring. Unutilized toggle adds SW/HW-split sub-merchantable slices for volume metrics. Full hover tooltips matching product donut pattern.
Time series typing overlay — on the Species Composition (% BA) chart, a dashed SW% trend line with dots tracks the softwood percentage across periods, with a horizontal threshold line at the protocol’s SW cutoff (70% or 75%). Shows when a stand crosses the typing boundary. TYPE dashboard chip updates as you scrub periods.
SW/HW indicators — green/gold colour dots next to each species in the Map Species table, matching the product specs pattern. Updates live on dropdown change.
Iterative workflow — after computing results, clicking back to earlier steps (Products, Map Species) marks results as stale. Clicking the Results heading in the stepper bar triggers a full recompute with updated parameters. All steps remain clickable once results have been computed.
Stand typing in Excel export — Plot-Level and Stand-Level sheets include StandType, StandTypeLabel, SW_pct, and HW_pct columns when a typing protocol is active. Plot-Level sheet also gains StandID column.
Sample data from real NB inventory — Forest Inventory and Stand Forecast datasets replaced with real NB stand data (stands 408 and 412) from PSP surveys. Stand Forecast uses Open Stand Model projections with per-growth-path stem expansion factors across 10 forecast periods (2018–2108). Auto-detect keywords updated: surveyid/survey for plot mapping, stems for expansion factors, forecastyear for time axis.
Stand ID = 0 fix — fixed 12 locations where JavaScript’s falsy value || ‘fallback’ silently replaced stand/plot/time IDs of 0 with fallback values.
Product gating — Product Breakdown option hidden from the mode toggle when no product specs are loaded. Size class “by Product” modes, plot chart product modes, and time series product options similarly gated.
Honer volume equation fix — Corrected the Kershaw metric form of Honer’s (1967) total volume equation. The correct form is V = a₂D²/(a₀ + a₁/H), a direct algebraic conversion of the original imperial equation V = D²/(b₁ + b₂/H). The previous implementation used an incorrect additive form with a fabricated 10⁻⁴ scaling factor. The form-factor ceiling (min(Honer, cone ff=0.42)) has been removed — it was compensating for the wrong equation producing inflated small-tree volumes. The corrected equation produces volumes consistent with Kershaw’s published UNB tables and with measured Smalian volumes from stem analysis data.
Outlier detection — Two-phase system with chart clamping: (1) automatic exclusion of implausible values (negative dimensions, DBH >120 cm, height >45 m, volume >8 m³/tree, TPH extremes), (2) statistical flagging for user review (H–D consistency >60% deviation from fitted species model, per-plot BA/ha >80 m²/ha). Time series chart clamping triggers when any period’s total exceeds 2.5× the median (amber arrow indicators with true values). Review panel with per-tree Keep/Exclude toggles and bulk actions; user decisions preserved across recomputes.
Stand selector — Multi-stand datasets show a stand selector dropdown in the results control bar. Selecting a stand filters all charts, summaries, and time series to that stand’s plots.
Protocol viewer — Read-only structured view of any typing protocol (built-in, imported, or custom). Shows header, source reference citation, species groups with hover tooltips, and decision tree with branches and numbered rules. Source references added to all four regional protocols (NB ERD, NS FEC, Ontario PFT, SAF/FIA).
Even-aged detection gating — Age estimation from tree sizes is now gated on the stand’s diameter distribution. The tool computes the TPH-weighted CV of DBH at the first period: CV ≤ 35% → even-aged (estimation proceeds); CV > 45%, or CV > 35% with diameter range ratio > 3× → uneven-aged (estimation suppressed). The Time axis bar shows an amber “uneven-aged — age estimation suppressed” note for affected stands; MAI, CMAI, and LEV fall back to PAI-only mode. Users can override with a known age at any time. Thresholds calibrated against Acadian forest conditions (plantation CV ~15%, tolerant hardwood CV ~45–70%).
Engine consolidation 4 → 3 — Removed the capped Honer engine (min of Honer and cone ff=0.42). The form-factor ceiling was compensating for the old wrong equation; with the corrected Honer formula it is no longer needed. The volume engine toggle now shows three options: Kozak, Kozak (Full), and Honer.
Stand selector fix — Replaced the <input list="datalist"> stand selector with a standard <select> element. iOS Safari’s <datalist> rendering was unreliable, often showing only the current value in the native picker overlay. The <select> works consistently across all platforms.
Sample data restructuring — Stand Forecast sample (sample 3) rebuilt with biologically credible NB dynamics. S1: managed BS plantation (BAF-2 prism, 3 plots, 7 periods; ~1700 → 350 SPH, Kozak vol 166 → 182 m³/ha). S2: uneven-aged tolerant hardwood (400 m² fixed area, 3 plots, 7 periods; SM/YB/RS mix, Kozak vol 112 → 211 m³/ha). Columns reordered to StandID, ForecastYear, StandAge, PlotID, TreeID, Species, DBH_cm, Height_m, TPH. Auto-detect keywords forecastyear and standage added to the time field mapping.
Validation and Kershaw samples removed — Removed the 46-tree validation dataset (5 plots from Honer 1983, Kershaw 2006, Li 2012, NHRI 2018, and boundary cases), the 21-tree manual validation sample, and the Kershaw 2006 product specs loader. These were tied to the old wrong Honer equation and are no longer needed for cross-checking.
PRCalc v.2026.1
Rotation analysis release — April 2026
Rotation analysis — Stand-specific time-series analysis panel showing PAI (Periodic Annual Increment, the average annual growth between measurement periods, plotted at interval midpoints) and MAI (Mean Annual Increment, Y(t)/t, plotted at each sample age). The age at which MAI culminates is labeled CMAI — for merchantable and product volume this is the biological rotation age; for total volume, basal area, and value it is labeled simply “CMAI” (mathematically valid but not a harvest prescription). Mathematically, CMAI occurs where the PAI curve crosses MAI from above. Supports five stock metrics: merchantable volume, total volume, basal area, stand value ($), and individual product volume.
Age sensitivity exploration — The ± Age slider in the Time axis bar lets you explore how age uncertainty propagates through rotation decisions and site classification. In practice, foresters reduce age uncertainty through increment coring rather than computing sensitivity bands — this feature is provided for educational exploration, not prescription-grade analysis.
MAI band (amber) — envelope of MAI curves recomputed at each age offset. Shows how cumulative yield per year changes with age assumptions.
LEV band (purple) — envelope of LEV curves at each offset. LEV is exponentially sensitive to age through the discount denominator (1+r)t−1.
CMAI range (red segment on PAI line) — the portion of the PAI curve where it passes through the MAI band, containing the first downward PAI×MAI crossing. Entry/exit markers show the age range within which the biological rotation could fall.
Financial rotation path (teal polyline) — each age offset produces a different LEV curve with its own peak. The path connects these peaks at 1-year offset resolution, showing how the optimal financial rotation migrates. Points on this path do not lie on the central LEV curve — each sits on its own offset curve.
SI range (orange segment on H100 line) — site index is H100 interpolated at a reference age. Shifting the age axis slides where SI is read on the H100 curve. The highlighted segment and label range show the possible SI values.
Defaults: 0 yr for axis-provided ages, 5 yr for estimated ages, 2 yr for manually entered ages. All sensitivity elements are suppressed when the slider is at 0.
Per-stand age handling — Rotation analysis is per-stand by definition (MAI = stock ÷ age). When a stand is selected and the time axis is Year or Unknown, the tool first assesses whether the stand’s diameter distribution is consistent with even-aged structure using the TPH-weighted coefficient of variation (CV) of DBH at the first period. If even-aged (CV ≤ 35%, or CV ≤ 45% with diameter range ratio ≤ 3×), the tool estimates stand age from BA-weighted mean DBH and species-specific growth rates (±30% band). If uneven-aged (CV > 45%, or CV > 35% with range > 3×), age estimation is suppressed and the Time axis bar shows an amber “uneven-aged — age estimation suppressed” note. Rotation analysis falls back to PAI-only mode — MAI, CMAI, and LEV are withheld rather than fabricated from a meaningless age estimate. Users can override by entering a known stand age in the Time axis bar, which re-enables full rotation analysis regardless of the evenness assessment.
Faustmann financial rotation — On the Value metric, a land expectation value (LEV) curve is plotted on a secondary axis with a user-adjustable discount rate (1–10%, adjustable via slider or −/+ step buttons in 0.5% increments). The LEV curve is drawn as a smooth line using monotone cubic interpolation of the stock values at 1-year resolution, so the curve peaks exactly where the Faustmann formula says it peaks — not at a sample vertex. The financial rotation age (LEV maximum) is marked with a dashed vertical line. Teaches the divergence between biological and economic optimality: higher discount rates push the financial rotation earlier.
Age-axis inference — Time-series periods are automatically classified as stand age, calendar year, or arbitrary index. Users can override with a segmented control and provide a base year or age offset. For even-aged stands, a BA-weighted DBH-based estimator suggests a plausible stand age with a ±30% confidence band; for uneven-aged stands (detected via diameter CV), age estimation is suppressed. All rotation metrics respect the chosen axis interpretation.
Site index overlay — Dominant height (H100) chart now supports a reference-age selector (25/50/100 yr). The interpolated top height at reference age is displayed as a site index annotation for quick comparison with regional yield tables.
Self-thinning reference — Trees-per-hectare chart overlays Reineke's −3/2 self-thinning curve (anchored at the first period's density) when stand density is declining, providing visual context for mortality relative to the maximum density line.
Stand Forecast sample data — Rebuilt with species-specific growth, natural mortality, and successional dynamics calibrated to NB Acadian forest conditions. Two stands (managed BS plantation + uneven-aged tolerant hardwood), three plots each, seven periods (age 40–100). Individual tree DBH increments, height from species-specific H-D curves, density-dependent mortality, intolerant species decline, shade-tolerant ingrowth, and corrected Honer (1967) / Kershaw (2006) volume equations ensure biologically defensible per-hectare volumes throughout the rotation.
Chart fixes — Volume-by-destination chart now sorts by the same value used for bar width (previously insertion order). Size class histograms with "skip blank bins" enabled now honor the user’s requested bin width (previously capped at 50 bins regardless of gaps). "By plot" chart gains a sort toggle between total-value descending and input order. Site-index label on H100 chart uses adaptive left/right placement based on chart-edge proximity and curve-polygon collision checks, and subscript formatting (SI50) for compactness. Reference lines and annotation text on rotation-analysis and H100 charts now render with a background halo for legibility against filled polygons. Boundary-case MAI notes (when the peak is at the first or last period) appear as a subdued italic note without a rotation marker, rather than claiming a specific rotation age where the observation is ambiguous.
Minor refinements — Charts tab content now scrolls internally rather than extending the page. Improved tooltip consistency across time-series overlays.
PRCalc v.2026.0
First release — April 2026
Core engine — Honer et al. (1983) volume equations and merchantable volume ratios for 14 northeastern species. Four allocation modes: Sequential (original Kershaw algorithm), Remainder, Sacrifice, and Optimized (dynamic programming).
Data pipeline — Excel/CSV import with auto-detected field mapping, species auto-matching (PRCalc codes, NB French codes, OSM Acadian codes, common names), hierarchical data support (plot, stand, time/period), and four scaling modes (variable radius, fixed area, expansion factor, no scaling).
Height estimation — Five data-driven model forms (Curtis 1967, Näslund, Wykoff 1982, Weibull, Power) fitted at species, group, and global levels with automatic best-RMSE selection. Acadian regional defaults from Rijal et al. (2012) with species-specific coefficients for 15 Acadian species. Species resolution toggle for original vs mapped codes.
Visualizations — Product breakdown (donut/bar), size class distribution (5 modes), product volume by plot, stand value by product, volume by destination, interactive stem profile viewer with taper curves and exploratory height adjustment, stacked area time series (5 metrics). All charts exportable as standalone SVG with full light/dark mode support.
Outputs — Tree-level, plot-level, and stand-level tabular results with confidence intervals. Excel export. Interactive tooltips on all chart elements. Period scrubbing across all time-aware views. Product specification load/save (JSON) for reuse across sessions.
Manual entry mode — Direct tree and product input for quick single-tree or small-sample analysis without file import.
Contact
Jae Ogilvie
Faculty of Forestry & Environmental Management
University of New Brunswick, Fredericton, NB, Canada jae.ogilvie@unb.ca
PRCalc v.2026.4 — Faculty of Forestry & Environmental Management, University of New Brunswick