{
  "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-08-21T17:55:19.838Z",
    "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-07-01",
        "value": 487.23
      },
      "previous": {
        "date": "2026-06-01",
        "value": 475.96
      },
      "changePct": 2.3678460374821495,
      "history": [
        {
          "date": "2024-08-01",
          "value": 460.24
        },
        {
          "date": "2024-09-01",
          "value": 454.58
        },
        {
          "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.39
        },
        {
          "date": "2026-05-01",
          "value": 458.88
        },
        {
          "date": "2026-06-01",
          "value": 475.96
        },
        {
          "date": "2026-07-01",
          "value": 487.23
        }
      ]
    },
    {
      "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-07-01",
        "value": 1432.17
      },
      "previous": {
        "date": "2026-06-01",
        "value": 1503.34
      },
      "changePct": -4.7341253475594245,
      "history": [
        {
          "date": "2024-08-01",
          "value": 1359.05
        },
        {
          "date": "2024-09-01",
          "value": 1276.33
        },
        {
          "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
        }
      ]
    },
    {
      "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-08-20",
        "value": 1.3785
      },
      "previous": {
        "date": "2026-08-19",
        "value": 1.3824
      },
      "changePct": -0.2821180555555566,
      "history": [
        {
          "date": "2026-07-17",
          "value": 1.4014
        },
        {
          "date": "2026-07-20",
          "value": 1.4054
        },
        {
          "date": "2026-07-21",
          "value": 1.4095
        },
        {
          "date": "2026-07-22",
          "value": 1.4088
        },
        {
          "date": "2026-07-23",
          "value": 1.4083
        },
        {
          "date": "2026-07-24",
          "value": 1.4093
        },
        {
          "date": "2026-07-27",
          "value": 1.4114
        },
        {
          "date": "2026-07-28",
          "value": 1.4102
        },
        {
          "date": "2026-07-29",
          "value": 1.4083
        },
        {
          "date": "2026-07-30",
          "value": 1.4014
        },
        {
          "date": "2026-07-31",
          "value": 1.4029
        },
        {
          "date": "2026-08-04",
          "value": 1.4068
        },
        {
          "date": "2026-08-05",
          "value": 1.4026
        },
        {
          "date": "2026-08-06",
          "value": 1.4018
        },
        {
          "date": "2026-08-07",
          "value": 1.3943
        },
        {
          "date": "2026-08-10",
          "value": 1.3942
        },
        {
          "date": "2026-08-11",
          "value": 1.3927
        },
        {
          "date": "2026-08-12",
          "value": 1.393
        },
        {
          "date": "2026-08-13",
          "value": 1.3938
        },
        {
          "date": "2026-08-14",
          "value": 1.3875
        },
        {
          "date": "2026-08-17",
          "value": 1.3865
        },
        {
          "date": "2026-08-18",
          "value": 1.3889
        },
        {
          "date": "2026-08-19",
          "value": 1.3824
        },
        {
          "date": "2026-08-20",
          "value": 1.3785
        }
      ]
    }
  ]
}