How I built my Firewood BTU Ratings

I set out to try to address a few common issues I see on many firewood BTU charts, those issues are:
- Incorrect BTU Values - Many charts seem to base their BTU values off wood at 0% moisture content (MC). MC has a significant effect on BTU values, so I have adjusted my tables so BTU values reflect a 20% MC which is more accurate for firewood.
- No Sources - Many BTU charts simply provide BTU values with no explanation of how they came to that value, and or no sources given.
- Slim Pickins - Most charts only provide some of the well known types of firewood. I believe this is because there is no lab studies for many types of trees where they have tested and documented BTU.
The Fixins
I figured there must be enough scientific data on wood in general, and probably for most species which would allow me to derive reasonable values across most tree species, both hardwood, and softwood. Some data in my tables is based on scientific data but still speculative such as coals, ash, and ratings, I'll come back to those later.
The Calculations
To get started I needed a couple key pieces of data for each tree species, and it needed to be reputeable and proven. So for those values I used The Wood Database. The two pieces of data I needed were:
- Dried Weight (Density) (@ 12 MC)
- Specific Gravity
Calculating BTU
The "Wood Fuels Handbook" gives us some very useful information for this.
The net calorific value (NCV0) of oven-dry wood of different species varies within a very narrow interval, from 18.5 to 19 MJ per Kg. In conifers it is 2 percent higher than in broad-leaved trees. This difference is due especially to the higher lignin content, and partly also to the higher resin, wax and oil content present in conifers.
Key Conversions
MJ_TO_BTU = 947.817 # 1 MJ ≈ 947.817 BTU
KG_TO_LB = 2.20462 # 1 kg ≈ 2.20462 lb
CORD_VOLUME_FT3 = 85 # 1 "full cord" of firewood = 85 ft³ of solid wood
CORD_VOLUME_M3 = 2.410428 # 85 cubic feet in cubic meters
Baseline Net Calorific Value (NCV)
NCV0_VALUES = {
"Hardwood": 18.5, # MJ/kg
"Softwood": 19.0
}
Adjusting for 20% Moisture
ncvm = (ncvo × (1 - MC)) - (2.447 × MC)
ncvo
: Baseline net calorific value at 0% MC (bone-dry).MC
: 20% in decimal form = 0.20.2.447 × MC
: An approximation representing heat lost to vaporizing water.
Convert from MJ/kg to BTU/lb
btu_per_kg = ncvm * MJ_TO_BTU
btu_per_lb = btu_per_kg / KG_TO_LB
Calculate BTU Per Cord
cord_btu = (entry["weight_by_cord_dry_lb"] * btu_per_lb) / 1_000_000
That's it, this method I think has resulted in pretty accurate BTU specifically for firewood and across many different hardwoods and softwoods.
Estimating Ash and Coaling
1. Estimation Framework
Key Factors:
- Specific Gravity (SG): Higher SG → Denser wood (generally better coals, variable ash).
- Wood Type: Hardwoods typically produce better coals than softwoods.
- Burn Time: Longer burn times correlate with better coal retention.
- BTU: Higher BTU values suggest denser wood (linked to coaling).
2. Proposed Rules
Ash Content (Categorical: Low, Moderate, High)
Wood Type | Specific Gravity (SG) | Ash Content | Example Species |
---|---|---|---|
Hardwood | SG ≥ 0.60 | Low | Oak, Hickory, Osage Orange |
0.40 ≤ SG < 0.60 | Moderate | Cherry, Ash, Birch | |
SG < 0.40 | High | Basswood, Aspen | |
Softwood | All | Low | Pine, Spruce, Cedar |
Rationale:
- Denser hardwoods (SG ≥ 0.60) burn cleaner with less ash.
- Softer woods (SG < 0.40) retain more unburned minerals.
- Softwoods generally produce low ash due to resinous content.
Coal Quality (Categorical: Low, Moderate, High, Very High)
Wood Type | Specific Gravity (SG) | Coal Quality | Example Species |
---|---|---|---|
Hardwood | SG ≥ 0.70 | Very High | Osage Orange, Hickory |
0.55 ≤ SG < 0.70 | High | Oak, Maple, Beech | |
0.40 ≤ SG < 0.55 | Moderate | Cherry, Walnut | |
SG < 0.40 | Low | Basswood, Poplar | |
Softwood | All | Low | Pine, Fir, Cedar |
Rationale:
- Denser hardwoods (SG ≥ 0.55) form long-lasting coals.
- Softwoods burn quickly and leave minimal coals.
Estimating Burn Times
1. Burn Time Estimation Framework
Key Factors:
- Specific Gravity (SG): Higher SG → Denser wood → Longer burn time.
- Wood Type: Hardwoods generally burn slower than softwoods.
- Coal Quality: Better coals sustain heat longer.
- BTU: Higher energy content correlates with longer heat output.
2. Proposed Burn Time Categories
Wood Type | Specific Gravity (SG) | Burn Time Tier | Example Species |
---|---|---|---|
Hardwood | SG ≥ 0.70 | Very Long | Osage Orange, Hickory |
0.55 ≤ SG < 0.70 | Long | Oak, Maple, Beech | |
0.40 ≤ SG < 0.55 | Moderate | Cherry, Walnut | |
SG < 0.40 | Short | Basswood, Poplar | |
Softwood | SG ≥ 0.35 | Moderate | Southern Yellow Pine |
SG < 0.35 | Short | Cedar, Balsa |
Rationale:
- Denser hardwoods (SG ≥ 0.55) burn slower and retain coals longer.
- Softwoods burn faster but may have moderate burn times if moderately dense (SG ≥ 0.35).
Ratings
Rating Formula Explained:
- Specific Gravity (0-4 points):
SG * 4
- Denser woods get more points (e.g., SG 0.8 = 3.2 points)
- BTU (0-3 points):
(BTU - 14) / 5.33
- Scales 14-30 million BTU → 0-3 points
- Coal Quality (0.5-2 points):
- Very High=2, High=1.5, Moderate=1, Low=0.5
- Burn Time (0.25-1 points):
- Very Long=1, Long=0.75, Moderate=0.5, Short=0.25
- Ash Penalty (0-2 points):
- High=-2, Moderate=-1, Low=0
Key Features:
- Maintains logical progression (dense, high-BTU hardwoods score highest)
- Penalizes high-ash woods appropriately
- Automatically clamped between 1-10
- Uses all calculated properties (SG, BTU, coals, burn time, ash)
Estimating Seasoning Times
Seasoning Time Formula:
- For Hardwoods:
((MC% - 20) * SG) / 2
- For Softwoods:
((MC% - 20) * SG) / 10
- Rounded to nearest month, formatted as "X months" or "12+ months"
Example:
Osage Orange (Hardwood, SG=0.86, MC=50%):
"seasoning_months": "12+ months"
Full Osage Orange JSON Example:
{
"tree_species": "Osage Orange (Hedge, Ironwood)",
"wood_type": "Hardwood",
"specific_gravity": 0.86,
"dry_weight_lb_ft3": 57.9,
"dry_weight_kg_m3": 927.0,
"btu_cord_million_btu": 30.3,
"ash": "Low",
"coals": "Very High",
"seasoning_months": "12+ months",
"burn_time": "Very Long",
"wet_weight_lb_ft3": 72.4,
"wet_weight_kg_m3": 1158.8,
"weight_by_cord_dry_lb": 4922,
"weight_by_cord_dry_kg": 2233,
"weight_by_cord_wet_lb": 6154,
"weight_by_cord_wet_kg": 2793,
"rating": 9,
"moisture_content_percent": 50.0,
"btu_per_kg": 13563.83,
"btu_per_lb": 6152.46
},
Estimating Wet (green) Weights
Wet weights for many trees I ran into similar issues as with existing BTU charts and tables. So I again use available proven and reputeable data such as dry weight (density)and Specific Gravity.
Assigning Moisture Content
MC_RULES = {
"Hardwood": [
(0.55, 50),
(0.35, 70),
(0, 90)
],
"Softwood": [
(0.40, 100),
(0.25, 150),
(0, 200)
]
}
Each wood’s moisture content (MC) can vary widely. To keep it systematic, we have rules that return a percentage of moisture based on specific gravity (SG) thresholds:
- For hardwoods:
- If
SG >= 0.55
, use 50% MC - Else if
SG >= 0.35
, use 70% MC - Else, use 90% MC
- If
- For softwoods:
- If
SG >= 0.40
, use 100% MC - Else if
SG >= 0.25
, use 150% MC - Else, use 200% MC
- If
These rules are approximate and based on typical ranges for certain woods. The higher the specific gravity, the lower the fiber saturation range tends to be, thus a lower maximum moisture content.
In firewood contexts, “dry weight” is often considered at 20% MC. However, if we want to estimate truly wet weight (e.g., freshly cut or “green” logs), we do:
- Convert the 20% MC weight down to 0% MC by dividing by
1.2
(since 20% MC means the total mass is 120% of the bone-dry mass). - Add the new moisture content we found with our rules above (e.g., 50%, 70%, etc.).
Here's a snippet:
dry_0mc_lb = entry["dry_weight_lb_ft3"] / 1.2
# ...
entry["wet_weight_lb_ft3"] = round(dry_0mc_lb * (1 + mc), 1)
- We also multiply those wet densities by the cord volume (85 ft³) to get wet weight by the cord in pounds.
Stacking It Up
Building these Firewood BTU ratings in this way I hope will give information more accurate specific to firewood. Due to missing research on most columns but dry weight there has been a fair amount of imputation, extrapolation, and interpolation 🤓 So there will be some data which is incorrect, but hopefully as more research pops up I can further improve this table.
Want to chat about firewood? Join me on Discord!
Special Woods
There are some woods which wood-database.com did not have information on, I will list them here as well as where I sourced the information:
- Almond Wood - "Fuelwood Characteristics of Some Important Tree Species" (below)