Processing...
UNB ForEMUNB ForEM

PRCalc v.2026.5 — Product Ratio Calculator

Units
Allocation
Volume
1Import
2Map Fields
3Map Species
4Products
5Results

Stock Table / Tree List

#SpeciesDBH (cm)Total Ht (m)

Map Columns to Fields

Select which column maps to each field. Tree ID should be unique within each plot (duplicates are reported). Plot ID and scaling are optional.

Map Species

Map each unique species value in your data to one of the PRCalc species. Codes are read in one convention; names (English, French or Latin) are recognised in any convention.

Your DataCountSpecies

Heights

Product Specifications

#Species GroupTop DIB (cm)Log Length (m)Product NameValueDest.Color
Sequential — Original PRCalc algorithm. Greedy largest-to-smallest allocation.

Results

PlotTreeIDSpeciesDBHHtVol(m³)TPHProductRatio%ProdVolProdVol/haLogs
Honer (1967), Honer et al. (1983): volume and merchantable volume ratios Kershaw, Richards & Larusic (2006): product ratio allocation Li, Weiskittel & Kershaw (2012): Kozak taper coefficients

PRCalc v.2026.5: Help & Documentation

About PRCalc v.2026.5

PRCalc is a web-based product ratio calculator for northeastern North American tree species. It estimates how much of each tree's stem volume goes to defined timber products (sawlogs, studwood, pulpwood and so on), using the merchantable volume ratio approach of Honer et al. (1983) as implemented by Kershaw, Richards & Larusic (2006), or the Kozak (2004) taper equation with the published Acadian coefficients of Li, Weiskittel & Kershaw (2012).

This version adds to the original PRCalc: a 31-species resolution framework with selectable code conventions, two volume engines with one consistent volume basis per tree, hierarchical data (time, stand, plot, tree), per-hectare scaling for variable-radius, fixed-area and expansion-factor designs, stand statistics with confidence intervals, height estimation from your own measured heights, stand typing with five regional protocols, rotation analysis, interactive SVG charts and Excel input and output.

How It Works

For each tree PRCalc builds one stem model and reads every volume from it: gross total volume, standard merchantable volume, and the volume of each product section. Gross, merchantable and product volumes are therefore always on the same basis.

1. Volume engine (the Volume toggle in the header):

Kozak engine (default). Kozak (2004) Model 02, a variable-exponent taper equation, with the inside-bark coefficients published by Li, Weiskittel & Kershaw (2012, Appendix A):

d(h) = a0·Da1·Ha2·Xb1z4 + b2e−D/H + b3X0.1 + b4/D + b5HQ + b6X

with z = h/H, p = 1.3/H, X = (1 − z1/3)/(1 − p1/3) and Q = 1 − z1/3; D and d in cm, H and h in m. The planted-stand term is not used (all stands are treated as natural). Coefficients are published for balsam fir, black, red, white and Norway spruce, jack, red and white pine, and northern white-cedar. Volumes are integrated numerically from the taper (better than 0.01% against a fine reference), merchantable heights are found by bisection on the inside-bark taper, and outside-bark gross volume from the paper's Table 2 is reported separately for reference. Species without a usable published inside-bark set (all hardwoods, tamarack, and eastern hemlock, whose published inside-bark parameters are not statistically significant) use the Honer basis under this engine, and the tables show which basis each tree used.

Honer engine. Honer (1967) total volume in the Kershaw metric form

V = a2·D² / (a0 + a1/H)

with species coefficients from Kershaw's Honer tables, including separate sets for cedar, hemlock, balsam poplar, basswood, beech, ironwood, red oak, black cherry and white elm. Species with no published set use the closest group and are marked as substitutes. Merchantable heights and section shares come from the Honer et al. (1983) volume-ratio polynomials (Kershaw et al. 2006, Table 1):

VR(MR) = b0 + b1·MR + b2·MR²

where MR is a height ratio (h/H) or a squared diameter ratio (dib/DBH)² with the b2 breast-height adjustment in metric units.

2. Product allocation: products are placed on the stem from the stump (0.3 m / 1 ft) with a trim allowance (0.1 m / 0.3 ft) on every log, using one of three algorithms (see Allocation Modes). Each product's volume is the stem model's volume between the bottom and top of its logs.

Types of Merchantable Volume

Standard Merchantable Volume: stem volume from the stump to the standard utilization limit, 10 cm DIB (metric) or 4″ DIB (imperial), from the tree's own stem model. It is reported in volume-only mode and as a reference (“Std Merch”) in product mode.

Product Merchantable Volume: the sum of the volumes allocated to your product specifications.

Volume partition: gross volume is split into products + product gaps + sub-merchantable, and the three parts add up to gross exactly. The merchantable reference for each tree is its smallest product top DIB or the 10 cm / 4″ standard, whichever is smaller. Product Gaps are wood above that reference that no product takes (log-length leftovers and sections no product fits). Sub-merchantable is the stump and the top above the reference.

Utilization Efficiency: product volume as a percentage of merchantable volume to the smallest product top. Low values show where shorter logs or smaller tops would recover more wood.

Allocation Modes

Sequential: Kershaw et al. (2006). Products are taken from the largest to the smallest top DIB, bottom up, as many full logs as fit below each product's merchantable height.

Sacrifice: starts from Sequential and tests giving up one log of a multi-log product (each such product in turn) so the smaller products can use the space, keeping the variant with the most volume (or value when prices are set).

Optimized: an exact dynamic program over cut positions, after the log-bucking literature (Pnevmaticos & Mann 1972; Faaland & Briggs 1984; Grondin 1998). Every sequence of full logs and whole-tree pieces from the stump up is considered with exact log and trim lengths. With prices it maximizes value; without prices it maximizes volume. Among solutions with the same value and volume it keeps the most volume in the larger-top products, the same priority Sequential uses. The result is never worse than Sequential, and products may be placed in any order on the stem.

Input Modes

Sample Datasets

Product Specifications

Each product needs a top DIB, a log length (0 for a whole-tree piece to that top) and a name. Optional: species group, price, destination and colour. Load / Save stores specifications as JSON; loading into a table that has products offers Replace, Merge or Update, converts DIB, length and price between unit systems, and migrates old species codes. Files from before v.2026.5 with imperial $/MBF prices load with the price cleared, because board-foot prices are no longer supported.

Data Hierarchy

Time / Period → Stand → Plot → Tree → Product

Trees that match no product specification still count in basal area, density and gross volume; they simply have no product volume.

Species

All species map to 31 codes, which drive volume, taper, typing and height estimation.

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 (19): 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), Balsam Poplar (bP), Pin Cherry (pC), Ironwood (iW), Butternut (bW), Basswood (bH), Gray Birch (gB), Black Cherry (bC), White Elm (wE), Other Hardwood (oHW).

Code conventions: species codes mean different things in different systems (for example TA is tamarack in FVS but trembling aspen in NB DNRED codes, and BA is black ash in FVS but basswood in NB). The species step picks the convention that recognises the most codes in your data (FVS/OSM Acadian, NB DNRED, Québec MFFP, or PRCalc's own codes such as bF and bH, matched with their exact case) and lets you change it. NB group, genus and dead-tree codes (SP, BI, PO, MA, PI, DF ...) are recognised but you choose the species. English, French and Latin names are matched as a shared fallback. Values that cannot be resolved are highlighted and must be mapped before you continue; nothing is assigned silently.

Height Estimation

PRCalc fits one set of height models per dataset from your measured heights: five forms (Curtis 1967, Näslund, Wykoff 1982, Weibull and a power model) at the species level, then the softwood/hardwood group, then all species, each tier needing at least 5 measured heights. Implausible heights and trees you exclude are left out of the fits. A fit is offered only if its heights never fall with DBH over the trees it will be applied to and rise by at least 0.1 m (0.1 ft) across the DBH range of the measured trees, so a line that is flat across the data is rejected. The lowest-RMSE fit is preselected; you can choose another, and fits with R² below 0.5 are marked as weak. The same models produce the estimates of missing heights, the H–D review and the Stem Profile height tools.

H–D review: measured heights that differ from their model by more than 60% are listed in the height step before any estimate is made (the step appears whenever heights are missing or a height needs review). Excluding a tree removes it from the height fits and from the results, and the models refit at once. The same decisions appear in the outlier review on the results page, and a change there refits the models and the estimates on the next calculation. Estimates are kept beside your data; the imported values are never changed.

A species with no usable fit at any tier has no height model, and its trees without heights are excluded with a message.

Prices and Unit Conversions

Prices convert to $ per m³ (metric) or $ per ft³ (imperial) of solid wood: $/m³ or $/ft³ directly; $/cord using 2.55 m³ (90.1 ft³) of solid wood per cord; $/GMT or $/ton using green wood density (average of the product's species). Board-foot prices ($/MBF) are not offered because converting them needs a log rule applied to each log. A per-ton price on a product none of whose species has a density is refused with a message.

Green wood density (kg/m³): specific gravity on a green-volume basis × (1 + average wood moisture content as a fraction of oven-dry weight), both from Miles & Smith (2009) Table 1A. Norway spruce and pin cherry use their genus averages and the two Other classes the softwood or hardwood averages (Table 4).

Softwoods: bF 723 · bS 562 · rS 544 · wS 562 · jP 800 · rP 672 · wP 561 · eH 802 · eC 577 · tL 755 · nS 572 · oSW 713
Hardwoods: sM 879 · rM 804 · yB 946 · wB 835 · bE 868 · rO 1025 · wA 803 · bA 833 · tA 802 · lA 688 · bP 642 · pC 719 · iW 964 · bW 738 · bH 656 · gB 738 · bC 719 · wE 892 · oHW 910

Units: switching metric/imperial converts the values you entered (BAF, plot size, product DIB, length and price) and recalculates. Imported DBH and height are read in the units you choose, so after importing data the switch asks before re-reading them.

Output Tabs

Tree-Level, Charts and Stem Profile work in both manual entry and import modes. Plot-Level, Stand-Level and Time Series need imported data with the grouping fields and scaling described under Data Hierarchy. Views follow the stand selector and, with time data, the period slider.

Tree-Level: one row per tree per product, with grouping fields, tree attributes, product ratios, volumes and log counts. Ht Src shows how each height was obtained (measured or the fitted model tier) and Basis shows the coefficient set behind the tree's volumes. With the Kozak engine a Gross OB column shows outside-bark gross volume where Li et al. (2012) publish it.

Plot-Level: per-plot basal area, density, QMD, Lorey height, gross and merchantable volume, and the product breakdown (volume and logs per unit area, % of merchantable). Needs Plot ID and a scaling method.

Stand-Level: mean ± 95% CI over the stand's plots (Student t). QMD and Lorey height are pooled ratio estimates, so they agree with the stand basal area and density. Needs Plot ID, Stand ID and a scaling method.

Charts: interactive SVG views, all on the same per-unit-area denominator (the stand's plot set):

Time Series: stand means by period for eight metrics: product merchantable volume, species total volume, species merchantable volume, species basal area, species density, Lorey height, top height (H100: mean height of the 100 largest-diameter stems per hectare) and species composition (% of basal area). The volume metrics can show the same Product Gaps and Sub-merchantable bands as the Charts tab. A Reineke self-thinning reference (TPH ∝ Dq−1.605, Reineke 1933), anchored at the first period, is drawn on the density chart against each period's quadratic mean diameter when density falls over the record.

Rotation analysis: PAI (between periods) and MAI (stock ÷ age) with the culmination of MAI (CMAI). Stand age comes only from Age-mode periods, a stand age you enter, or an establishment year; PRCalc does not estimate age from tree sizes. Period values that look like an index (1, 2, 3 ...) are not read as ages. With prices, a discounted gross revenue curve P·V(t)/((1+r)t − 1) is drawn; harvest, haul and regeneration costs are not included, so it is not a land expectation value. Optima at the first or last period are flagged as lying at the edge of the data. An optional ± age band shows how CMAI and the revenue peak move with age error.

Stem Profile: an SVG taper diagram of the selected tree from its own stem model:

Excel Export: Tree-, Plot- and Stand-Level sheets for every period (with a Time column), product columns for every stand, the volume basis, outside-bark gross where available, the volume partition (products, gaps, sub-merchantable), stand types when typing is on, the Species Map, and an Exclusions sheet listing every tree and plot left out of the results and why. Headers carry unit suffixes. With destinations, each product has a _Dest column.

Interface Features

Light / Dark Mode: the moon and sun buttons in the header switch between dark and light mode. PRCalc starts in light mode when your system is set to light, otherwise dark. Charts, tables and stem profiles redraw in the chosen 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.5) [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. & 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
Näslund, M. 1936. Skogsförsöksanstaltens gallringsförsök i tallskog. Meddelanden från Statens Skogsförsöksanstalt 29(1).
Pnevmaticos, S.M. & Mann, S.H. 1972. Dynamic programming in tree bucking. Forest Products Journal 22(8): 26–30.
Reineke, L.H. 1933. Perfecting a stand-density index for even-aged forests. Journal of Agricultural Research 46: 627–638.
Wykoff, W.R., Crookston, N.L. & Stage, A.R. 1982. User’s guide to the Stand Prognosis Model. USDA Forest Service General Technical Report INT-133.
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, Northern Research Station, Research Note NRS-38.
Avery, T.E. & Burkhart, H.E. 2002. Forest Measurements. 5th Edition. McGraw-Hill. 456 p.

Limitations

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.5

Audit fixes: one volume basis per tree, published coefficients, exact allocation · October 2026

Earlier versions
PRCalc v.2026.4

Canonical 28-species resolution — April 2026

v.2026.4, continued: Kozak taper engine release (April 2026)

v.2026.4, continued: Stand typing and species visualization release (April 2026)

PRCalc v.2026.1

Rotation analysis release — April 2026

PRCalc v.2026.0

First release — April 2026

Contact

Jae Ogilvie
Faculty of Forestry & Environmental Management
University of New Brunswick, Fredericton, NB, Canada
jae.ogilvie@unb.ca

PRCalc v.2026.5 — Faculty of Forestry & Environmental Management, University of New Brunswick

Protocol Editor