{
  "meta": {
    "name": "Ecowoods Inc. — hardwood cost input indices",
    "description": "The traded commodity inputs that move the price of an installed hardwood floor in Ontario, with the mechanism for each. Index values are published by the Bank of Canada; the explanation of what each input does inside a floor is ours.",
    "documentation": "https://ecowoods.ca/market",
    "dataSource": {
      "name": "Bank of Canada Valet API",
      "url": "https://www.bankofcanada.ca/valet",
      "docs": "https://www.bankofcanada.ca/valet/docs",
      "terms": "https://www.bankofcanada.ca/terms/",
      "note": "Index values are reproduced from the Bank of Canada. The Bank does not endorse this site and is not responsible for any use made of its data here."
    },
    "license": "https://creativecommons.org/licenses/by/4.0/",
    "attribution": "Our commentary is CC BY 4.0. Cite by URL, e.g. https://ecowoods.ca/market. Bank of Canada data remains subject to the Bank's own terms, linked above.",
    "disclaimer": "Published to explain the movement of a construction quote. This is not investment information and nothing here is a recommendation to buy or sell any security or commodity.",
    "caveat": "These indices do not convert linearly into the price of one floor. At job level, labour, substrate condition and scope dominate. Published installed-cost ranges are in the technical papers.",
    "generatedAt": "2026-10-05T05:20:11.930Z",
    "complete": true
  },
  "series": [
    {
      "id": "M.FOPR",
      "name": "Forestry commodity index",
      "sourceLabel": "Monthly BCPI Forestry - v52673502",
      "frequency": "monthly",
      "drives": "The sawn wood itself — solid boards, and the hardwood wear layer and cross-ply core of an engineered plank.",
      "volatility": "Forestry prices respond to housing starts, sawmill capacity, log supply and trade policy, none of which move together and none of which an installer influences. A mill curtailment and a housing-start surge can land in the same quarter and push the index hard in one direction.",
      "sourceUrl": "https://www.bankofcanada.ca/valet/observations/M.FOPR/json",
      "paperRef": "https://ecowoods.ca/papers/hardwood-selection-and-cost-framework-gta#installed-cost",
      "latest": {
        "date": "2026-09-01",
        "value": 464.63
      },
      "previous": {
        "date": "2026-08-01",
        "value": 471.79
      },
      "changePct": -1.5176243667733578,
      "history": [
        {
          "date": "2024-10-01",
          "value": 464.59
        },
        {
          "date": "2024-11-01",
          "value": 483.8
        },
        {
          "date": "2024-12-01",
          "value": 473.51
        },
        {
          "date": "2025-01-01",
          "value": 465.95
        },
        {
          "date": "2025-02-01",
          "value": 478.32
        },
        {
          "date": "2025-03-01",
          "value": 495.66
        },
        {
          "date": "2025-04-01",
          "value": 471.29
        },
        {
          "date": "2025-05-01",
          "value": 471.11
        },
        {
          "date": "2025-06-01",
          "value": 486.71
        },
        {
          "date": "2025-07-01",
          "value": 497.73
        },
        {
          "date": "2025-08-01",
          "value": 489.79
        },
        {
          "date": "2025-09-01",
          "value": 463.59
        },
        {
          "date": "2025-10-01",
          "value": 471.39
        },
        {
          "date": "2025-11-01",
          "value": 441.11
        },
        {
          "date": "2025-12-01",
          "value": 442.43
        },
        {
          "date": "2026-01-01",
          "value": 448.77
        },
        {
          "date": "2026-02-01",
          "value": 451.72
        },
        {
          "date": "2026-03-01",
          "value": 453.84
        },
        {
          "date": "2026-04-01",
          "value": 455.45
        },
        {
          "date": "2026-05-01",
          "value": 459.51
        },
        {
          "date": "2026-06-01",
          "value": 476.36
        },
        {
          "date": "2026-07-01",
          "value": 488.11
        },
        {
          "date": "2026-08-01",
          "value": 471.79
        },
        {
          "date": "2026-09-01",
          "value": 464.63
        }
      ]
    },
    {
      "id": "M.ENER",
      "name": "Energy commodity index",
      "sourceLabel": "Monthly BCPI Energy - v52673498",
      "frequency": "monthly",
      "drives": "Two things at once: freight on every pallet that reaches the GTA, and the petrochemical feedstock behind polyurethane finishes, adhesives and moisture-barrier membranes.",
      "volatility": "This is the most volatile input in the assembly and the least visible in a quote. It moves on geopolitics and refinery capacity rather than on anything in the flooring trade, and it reaches a floor twice — once as the finish system and once as the truck.",
      "sourceUrl": "https://www.bankofcanada.ca/valet/observations/M.ENER/json",
      "paperRef": "https://ecowoods.ca/papers/hardwood-selection-and-cost-framework-gta#fixed-price",
      "latest": {
        "date": "2026-09-01",
        "value": 1636.53
      },
      "previous": {
        "date": "2026-08-01",
        "value": 1468.4
      },
      "changePct": 11.449877417597376,
      "history": [
        {
          "date": "2024-10-01",
          "value": 1332.89
        },
        {
          "date": "2024-11-01",
          "value": 1316.45
        },
        {
          "date": "2024-12-01",
          "value": 1330.47
        },
        {
          "date": "2025-01-01",
          "value": 1395.45
        },
        {
          "date": "2025-02-01",
          "value": 1336.63
        },
        {
          "date": "2025-03-01",
          "value": 1322.05
        },
        {
          "date": "2025-04-01",
          "value": 1212.6
        },
        {
          "date": "2025-05-01",
          "value": 1183
        },
        {
          "date": "2025-06-01",
          "value": 1294.95
        },
        {
          "date": "2025-07-01",
          "value": 1258.33
        },
        {
          "date": "2025-08-01",
          "value": 1175.97
        },
        {
          "date": "2025-09-01",
          "value": 1185.45
        },
        {
          "date": "2025-10-01",
          "value": 1148.28
        },
        {
          "date": "2025-11-01",
          "value": 1186.32
        },
        {
          "date": "2025-12-01",
          "value": 1144.47
        },
        {
          "date": "2026-01-01",
          "value": 1177.62
        },
        {
          "date": "2026-02-01",
          "value": 1205.79
        },
        {
          "date": "2026-03-01",
          "value": 1638.05
        },
        {
          "date": "2026-04-01",
          "value": 1672.05
        },
        {
          "date": "2026-05-01",
          "value": 1716.85
        },
        {
          "date": "2026-06-01",
          "value": 1503.34
        },
        {
          "date": "2026-07-01",
          "value": 1432.17
        },
        {
          "date": "2026-08-01",
          "value": 1468.4
        },
        {
          "date": "2026-09-01",
          "value": 1636.53
        }
      ]
    },
    {
      "id": "FXUSDCAD",
      "name": "US dollar in Canadian dollars",
      "sourceLabel": "USD/CAD",
      "frequency": "daily",
      "drives": "Almost everything imported. Most engineered product, most finish systems and most machine consumables are priced in US dollars before they reach a Canadian invoice.",
      "volatility": "A quote written in Canadian dollars against inventory bought in US dollars carries currency risk that the homeowner never sees. This is a large part of why an open-ended price is open-ended — and why a fixed one has to be underwritten by someone.",
      "sourceUrl": "https://www.bankofcanada.ca/valet/observations/FXUSDCAD/json",
      "paperRef": "https://ecowoods.ca/papers/hardwood-selection-and-cost-framework-gta#fixed-price",
      "latest": {
        "date": "2026-10-02",
        "value": 1.4246
      },
      "previous": {
        "date": "2026-10-01",
        "value": 1.4243
      },
      "changePct": 0.021062978305145617,
      "history": [
        {
          "date": "2026-08-28",
          "value": 1.3888
        },
        {
          "date": "2026-08-31",
          "value": 1.3866
        },
        {
          "date": "2026-09-01",
          "value": 1.3896
        },
        {
          "date": "2026-09-02",
          "value": 1.3863
        },
        {
          "date": "2026-09-03",
          "value": 1.3789
        },
        {
          "date": "2026-09-04",
          "value": 1.384
        },
        {
          "date": "2026-09-08",
          "value": 1.3784
        },
        {
          "date": "2026-09-09",
          "value": 1.3798
        },
        {
          "date": "2026-09-10",
          "value": 1.3822
        },
        {
          "date": "2026-09-11",
          "value": 1.3866
        },
        {
          "date": "2026-09-14",
          "value": 1.3909
        },
        {
          "date": "2026-09-15",
          "value": 1.3917
        },
        {
          "date": "2026-09-16",
          "value": 1.3947
        },
        {
          "date": "2026-09-17",
          "value": 1.3988
        },
        {
          "date": "2026-09-18",
          "value": 1.4002
        },
        {
          "date": "2026-09-21",
          "value": 1.4021
        },
        {
          "date": "2026-09-22",
          "value": 1.4064
        },
        {
          "date": "2026-09-23",
          "value": 1.4096
        },
        {
          "date": "2026-09-24",
          "value": 1.4136
        },
        {
          "date": "2026-09-25",
          "value": 1.4145
        },
        {
          "date": "2026-09-28",
          "value": 1.4168
        },
        {
          "date": "2026-09-29",
          "value": 1.4188
        },
        {
          "date": "2026-10-01",
          "value": 1.4243
        },
        {
          "date": "2026-10-02",
          "value": 1.4246
        }
      ]
    }
  ]
}