{
  "ticker": "BBCP",
  "name": "Concrete Pumping Holdings, Inc.",
  "cik": "0001703956",
  "sic": "1700",
  "sic_description": "Construction - Special Trade Contractors",
  "source": "SEC XBRL companyfacts",
  "source_url": "https://data.sec.gov/api/xbrl/companyfacts/CIK0001703956.json",
  "as_of": "2026-01-13",
  "note": "Verified SEC companyfacts-derived facts; derived metrics (margins, ratios, free cash flow) are computed from those facts. Descriptive data, not investment advice.",
  "annual": [
    {
      "metric_id": "revenue",
      "label": "Revenue",
      "concept": "Revenues",
      "unit": "USD",
      "derived": false,
      "source_concepts": [
        "us-gaap:Revenues"
      ],
      "points": [
        {
          "fiscal_year": 2018,
          "period_end": "2018-10-31",
          "value": 243223000.0,
          "filed": "2020-01-14",
          "accession": "0001437749-20-000638"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-10-31",
          "value": 258565000.0,
          "filed": "2021-06-11",
          "accession": "0001437749-21-014624"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-10-31",
          "value": 304301000.0,
          "filed": "2022-01-12",
          "accession": "0001437749-22-000815"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-10-31",
          "value": 315808000.0,
          "filed": "2023-01-31",
          "accession": "0001437749-23-002137"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-10-31",
          "value": 401292000.0,
          "filed": "2024-01-16",
          "accession": "0001437749-24-001415"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-10-31",
          "value": 442241000.0,
          "filed": "2025-01-10",
          "accession": "0001437749-25-000800"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-10-31",
          "value": 425872000.0,
          "filed": "2026-01-13",
          "accession": "0001437749-26-001203"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-10-31",
          "value": 392867000.0,
          "filed": "2026-01-13",
          "accession": "0001437749-26-001203"
        }
      ]
    },
    {
      "metric_id": "net_income",
      "label": "Net income",
      "concept": "NetIncomeLoss",
      "unit": "USD",
      "derived": false,
      "source_concepts": [
        "us-gaap:NetIncomeLoss"
      ],
      "points": [
        {
          "fiscal_year": 2018,
          "period_end": "2018-10-31",
          "value": 28382000.0,
          "filed": "2020-01-14",
          "accession": "0001437749-20-000638"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-10-31",
          "value": -16403000.0,
          "filed": "2021-06-11",
          "accession": "0001437749-21-014624"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-10-31",
          "value": -61251000.0,
          "filed": "2022-01-12",
          "accession": "0001437749-22-000815"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-10-31",
          "value": -15073000.0,
          "filed": "2023-01-31",
          "accession": "0001437749-23-002137"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-10-31",
          "value": 28676000.0,
          "filed": "2024-01-16",
          "accession": "0001437749-24-001415"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-10-31",
          "value": 31790000.0,
          "filed": "2025-01-10",
          "accession": "0001437749-25-000800"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-10-31",
          "value": 16207000.0,
          "filed": "2026-01-13",
          "accession": "0001437749-26-001203"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-10-31",
          "value": 6373000.0,
          "filed": "2026-01-13",
          "accession": "0001437749-26-001203"
        }
      ]
    },
    {
      "metric_id": "operating_income",
      "label": "Operating income",
      "concept": "OperatingIncomeLoss",
      "unit": "USD",
      "derived": false,
      "source_concepts": [
        "us-gaap:OperatingIncomeLoss"
      ],
      "points": [
        {
          "fiscal_year": 2018,
          "period_end": "2018-10-31",
          "value": 39968000.0,
          "filed": "2020-01-14",
          "accession": "0001437749-20-000638"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-10-31",
          "value": 21618000.0,
          "filed": "2021-06-11",
          "accession": "0001437749-21-014624"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-10-31",
          "value": -31728000.0,
          "filed": "2022-01-12",
          "accession": "0001437749-22-000815"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-10-31",
          "value": 38046000.0,
          "filed": "2023-01-31",
          "accession": "0001437749-23-002137"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-10-31",
          "value": 50111000.0,
          "filed": "2024-01-16",
          "accession": "0001437749-24-001415"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-10-31",
          "value": 61452000.0,
          "filed": "2025-01-10",
          "accession": "0001437749-25-000800"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-10-31",
          "value": 49347000.0,
          "filed": "2026-01-13",
          "accession": "0001437749-26-001203"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-10-31",
          "value": 41531000.0,
          "filed": "2026-01-13",
          "accession": "0001437749-26-001203"
        }
      ]
    },
    {
      "metric_id": "gross_profit",
      "label": "Gross profit",
      "concept": "GrossProfit",
      "unit": "USD",
      "derived": false,
      "source_concepts": [
        "us-gaap:GrossProfit"
      ],
      "points": [
        {
          "fiscal_year": 2018,
          "period_end": "2018-10-31",
          "value": 106347000.0,
          "filed": "2020-01-14",
          "accession": "0001437749-20-000638"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-10-31",
          "value": 115053000.0,
          "filed": "2021-06-11",
          "accession": "0001437749-21-014624"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-10-31",
          "value": 137303000.0,
          "filed": "2022-01-12",
          "accession": "0001437749-22-000815"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-10-31",
          "value": 137727000.0,
          "filed": "2023-01-31",
          "accession": "0001437749-23-002137"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-10-31",
          "value": 163610000.0,
          "filed": "2024-01-16",
          "accession": "0001437749-24-001415"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-10-31",
          "value": 178304000.0,
          "filed": "2025-01-10",
          "accession": "0001437749-25-000800"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-10-31",
          "value": 165834000.0,
          "filed": "2026-01-13",
          "accession": "0001437749-26-001203"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-10-31",
          "value": 151116000.0,
          "filed": "2026-01-13",
          "accession": "0001437749-26-001203"
        }
      ]
    },
    {
      "metric_id": "eps_diluted",
      "label": "Diluted EPS",
      "concept": "EarningsPerShareDiluted",
      "unit": "USD/shares",
      "derived": false,
      "source_concepts": [
        "us-gaap:EarningsPerShareDiluted"
      ],
      "points": [
        {
          "fiscal_year": 2018,
          "period_end": "2018-10-31",
          "value": 2.47,
          "filed": "2020-01-14",
          "accession": "0001437749-20-000638"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-10-31",
          "value": -0.43,
          "filed": "2021-06-11",
          "accession": "0001437749-21-014624"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-10-31",
          "value": -1.2,
          "filed": "2022-01-12",
          "accession": "0001437749-22-000815"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-10-31",
          "value": -0.31,
          "filed": "2023-01-31",
          "accession": "0001437749-23-002137"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-10-31",
          "value": 0.47,
          "filed": "2024-01-16",
          "accession": "0001437749-24-001415"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-10-31",
          "value": 0.54,
          "filed": "2025-01-10",
          "accession": "0001437749-25-000800"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-10-31",
          "value": 0.26,
          "filed": "2026-01-13",
          "accession": "0001437749-26-001203"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-10-31",
          "value": 0.09,
          "filed": "2026-01-13",
          "accession": "0001437749-26-001203"
        }
      ]
    },
    {
      "metric_id": "operating_cash_flow",
      "label": "Operating cash flow",
      "concept": "NetCashProvidedByUsedInOperatingActivities",
      "unit": "USD",
      "derived": false,
      "source_concepts": [
        "us-gaap:NetCashProvidedByUsedInOperatingActivities"
      ],
      "points": [
        {
          "fiscal_year": 2018,
          "period_end": "2018-10-31",
          "value": 39619000.0,
          "filed": "2020-01-14",
          "accession": "0001437749-20-000638"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-10-31",
          "value": 22777000.0,
          "filed": "2021-06-11",
          "accession": "0001437749-21-014624"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-10-31",
          "value": 78970000.0,
          "filed": "2022-01-12",
          "accession": "0001437749-22-000815"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-10-31",
          "value": 75835000.0,
          "filed": "2023-01-31",
          "accession": "0001437749-23-002137"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-10-31",
          "value": 76695000.0,
          "filed": "2024-01-16",
          "accession": "0001437749-24-001415"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-10-31",
          "value": 96875000.0,
          "filed": "2025-01-10",
          "accession": "0001437749-25-000800"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-10-31",
          "value": 86900000.0,
          "filed": "2026-01-13",
          "accession": "0001437749-26-001203"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-10-31",
          "value": 64315000.0,
          "filed": "2026-01-13",
          "accession": "0001437749-26-001203"
        }
      ]
    },
    {
      "metric_id": "capex",
      "label": "Capital expenditures",
      "concept": "PaymentsToAcquirePropertyPlantAndEquipment",
      "unit": "USD",
      "derived": false,
      "source_concepts": [
        "us-gaap:PaymentsToAcquirePropertyPlantAndEquipment"
      ],
      "points": [
        {
          "fiscal_year": 2018,
          "period_end": "2018-10-31",
          "value": 31738000.0,
          "filed": "2020-01-14",
          "accession": "0001437749-20-000638"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-10-31",
          "value": 35736000.0,
          "filed": "2021-06-11",
          "accession": "0001437749-21-014624"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-10-31",
          "value": 39339000.0,
          "filed": "2022-01-12",
          "accession": "0001437749-22-000815"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-10-31",
          "value": 62792000.0,
          "filed": "2023-01-31",
          "accession": "0001437749-23-002137"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-10-31",
          "value": 101932000.0,
          "filed": "2024-01-16",
          "accession": "0001437749-24-001415"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-10-31",
          "value": 54505000.0,
          "filed": "2025-01-10",
          "accession": "0001437749-25-000800"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-10-31",
          "value": 43810000.0,
          "filed": "2026-01-13",
          "accession": "0001437749-26-001203"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-10-31",
          "value": 46787000.0,
          "filed": "2026-01-13",
          "accession": "0001437749-26-001203"
        }
      ]
    },
    {
      "metric_id": "dividends_paid",
      "label": "Dividends paid",
      "concept": "PaymentsOfDividends",
      "unit": "USD",
      "derived": false,
      "source_concepts": [
        "us-gaap:PaymentsOfDividends"
      ],
      "points": [
        {
          "fiscal_year": 2024,
          "period_end": "2024-10-31",
          "value": 0.0,
          "filed": "2026-01-13",
          "accession": "0001437749-26-001203"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-10-31",
          "value": 53132000.0,
          "filed": "2026-01-13",
          "accession": "0001437749-26-001203"
        }
      ]
    },
    {
      "metric_id": "share_buybacks",
      "label": "Share buybacks",
      "concept": "PaymentsForRepurchaseOfCommonStock",
      "unit": "USD",
      "derived": false,
      "source_concepts": [
        "us-gaap:PaymentsForRepurchaseOfCommonStock"
      ],
      "points": [
        {
          "fiscal_year": 2019,
          "period_end": "2019-10-31",
          "value": 0.0,
          "filed": "2021-06-11",
          "accession": "0001437749-21-014624"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-10-31",
          "value": 131000.0,
          "filed": "2022-01-12",
          "accession": "0001437749-22-000815"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-10-31",
          "value": 330000.0,
          "filed": "2023-01-31",
          "accession": "0001437749-23-002137"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-10-31",
          "value": 4148000.0,
          "filed": "2024-01-16",
          "accession": "0001437749-24-001415"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-10-31",
          "value": 10505000.0,
          "filed": "2025-01-10",
          "accession": "0001437749-25-000800"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-10-31",
          "value": 10160000.0,
          "filed": "2026-01-13",
          "accession": "0001437749-26-001203"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-10-31",
          "value": 14167000.0,
          "filed": "2026-01-13",
          "accession": "0001437749-26-001203"
        }
      ]
    },
    {
      "metric_id": "assets",
      "label": "Assets",
      "concept": "Assets",
      "unit": "USD",
      "derived": false,
      "source_concepts": [
        "us-gaap:Assets"
      ],
      "points": [
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 236295754.0,
          "filed": "2018-03-29",
          "accession": "0001144204-18-018016"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-10-31",
          "value": 370144000.0,
          "filed": "2020-01-14",
          "accession": "0001437749-20-000638"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-10-31",
          "value": 871365000.0,
          "filed": "2021-06-11",
          "accession": "0001437749-21-014624"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-10-31",
          "value": 773758000.0,
          "filed": "2022-01-12",
          "accession": "0001437749-22-000815"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-10-31",
          "value": 792665000.0,
          "filed": "2023-01-31",
          "accession": "0001437749-23-002137"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-10-31",
          "value": 887489000.0,
          "filed": "2024-01-16",
          "accession": "0001437749-24-001415"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-10-31",
          "value": 904525000.0,
          "filed": "2025-01-10",
          "accession": "0001437749-25-000800"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-10-31",
          "value": 897990000.0,
          "filed": "2026-01-13",
          "accession": "0001437749-26-001203"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-10-31",
          "value": 879542000.0,
          "filed": "2026-01-13",
          "accession": "0001437749-26-001203"
        }
      ]
    },
    {
      "metric_id": "liabilities",
      "label": "Liabilities",
      "concept": "Liabilities",
      "unit": "USD",
      "derived": false,
      "source_concepts": [
        "us-gaap:Liabilities"
      ],
      "points": [
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 8772930.0,
          "filed": "2018-03-29",
          "accession": "0001144204-18-018016"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-10-31",
          "value": 309452000.0,
          "filed": "2020-01-14",
          "accession": "0001437749-20-000638"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-10-31",
          "value": 529319000.0,
          "filed": "2021-06-11",
          "accession": "0001437749-21-014624"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-10-31",
          "value": 481648000.0,
          "filed": "2022-01-12",
          "accession": "0001437749-22-000815"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-10-31",
          "value": 505090000.0,
          "filed": "2023-01-31",
          "accession": "0001437749-23-002137"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-10-31",
          "value": 583162000.0,
          "filed": "2024-01-16",
          "accession": "0001437749-24-001415"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-10-31",
          "value": 571285000.0,
          "filed": "2025-01-10",
          "accession": "0001437749-25-000800"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-10-31",
          "value": 551275000.0,
          "filed": "2026-01-13",
          "accession": "0001437749-26-001203"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-10-31",
          "value": 589753000.0,
          "filed": "2026-01-13",
          "accession": "0001437749-26-001203"
        }
      ]
    },
    {
      "metric_id": "equity",
      "label": "Stockholders' equity",
      "concept": "StockholdersEquity",
      "unit": "USD",
      "derived": false,
      "source_concepts": [
        "us-gaap:StockholdersEquity"
      ],
      "points": [
        {
          "fiscal_year": 2017,
          "period_end": "2017-10-31",
          "value": 19154000.0,
          "filed": "2020-01-14",
          "accession": "0001437749-20-000638"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-05",
          "value": 5000000.0,
          "filed": "2021-01-12",
          "accession": "0001437749-21-000581"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-10-31",
          "value": 317045000.0,
          "filed": "2022-01-12",
          "accession": "0001437749-22-000815"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-10-31",
          "value": 267110000.0,
          "filed": "2023-01-31",
          "accession": "0001437749-23-002137"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-10-31",
          "value": 262575000.0,
          "filed": "2024-01-16",
          "accession": "0001437749-24-001415"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-10-31",
          "value": 279327000.0,
          "filed": "2025-01-10",
          "accession": "0001437749-25-000800"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-10-31",
          "value": 308240000.0,
          "filed": "2026-01-13",
          "accession": "0001437749-26-001203"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-10-31",
          "value": 321715000.0,
          "filed": "2026-01-13",
          "accession": "0001437749-26-001203"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-10-31",
          "value": 264789000.0,
          "filed": "2026-01-13",
          "accession": "0001437749-26-001203"
        }
      ]
    },
    {
      "metric_id": "cash",
      "label": "Cash and cash equivalents",
      "concept": "CashAndCashEquivalentsAtCarryingValue",
      "unit": "USD",
      "derived": false,
      "source_concepts": [
        "us-gaap:CashAndCashEquivalentsAtCarryingValue"
      ],
      "points": [
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 828555.0,
          "filed": "2018-03-29",
          "accession": "0001144204-18-018016"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-10-31",
          "value": 8621000.0,
          "filed": "2020-01-14",
          "accession": "0001437749-20-000638"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-10-31",
          "value": 7473000.0,
          "filed": "2021-06-11",
          "accession": "0001437749-21-014624"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-10-31",
          "value": 6736000.0,
          "filed": "2022-01-12",
          "accession": "0001437749-22-000815"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-10-31",
          "value": 9298000.0,
          "filed": "2023-01-31",
          "accession": "0001437749-23-002137"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-10-31",
          "value": 7482000.0,
          "filed": "2024-01-16",
          "accession": "0001437749-24-001415"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-10-31",
          "value": 15861000.0,
          "filed": "2025-01-10",
          "accession": "0001437749-25-000800"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-10-31",
          "value": 43041000.0,
          "filed": "2026-01-13",
          "accession": "0001437749-26-001203"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-10-31",
          "value": 44394000.0,
          "filed": "2026-01-13",
          "accession": "0001437749-26-001203"
        }
      ]
    },
    {
      "metric_id": "free_cash_flow",
      "label": "Free cash flow",
      "concept": "NetCashProvidedByUsedInOperatingActivities - PaymentsToAcquirePropertyPlantAndEquipment",
      "unit": "USD",
      "derived": true,
      "source_concepts": [
        "us-gaap:NetCashProvidedByUsedInOperatingActivities",
        "us-gaap:PaymentsToAcquirePropertyPlantAndEquipment"
      ],
      "points": [
        {
          "fiscal_year": 2018,
          "period_end": "2018-10-31",
          "value": 7881000.0,
          "filed": "2020-01-14",
          "accession": "0001437749-20-000638"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-10-31",
          "value": -12959000.0,
          "filed": "2021-06-11",
          "accession": "0001437749-21-014624"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-10-31",
          "value": 39631000.0,
          "filed": "2022-01-12",
          "accession": "0001437749-22-000815"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-10-31",
          "value": 13043000.0,
          "filed": "2023-01-31",
          "accession": "0001437749-23-002137"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-10-31",
          "value": -25237000.0,
          "filed": "2024-01-16",
          "accession": "0001437749-24-001415"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-10-31",
          "value": 42370000.0,
          "filed": "2025-01-10",
          "accession": "0001437749-25-000800"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-10-31",
          "value": 43090000.0,
          "filed": "2026-01-13",
          "accession": "0001437749-26-001203"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-10-31",
          "value": 17528000.0,
          "filed": "2026-01-13",
          "accession": "0001437749-26-001203"
        }
      ]
    },
    {
      "metric_id": "net_margin",
      "label": "Net margin",
      "concept": "NetIncomeLoss / Revenues",
      "unit": "Percent",
      "derived": true,
      "source_concepts": [
        "us-gaap:NetIncomeLoss",
        "us-gaap:Revenues"
      ],
      "points": [
        {
          "fiscal_year": 2018,
          "period_end": "2018-10-31",
          "value": 11.669126686209774,
          "filed": "2020-01-14",
          "accession": "0001437749-20-000638"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-10-31",
          "value": -6.343859377719335,
          "filed": "2021-06-11",
          "accession": "0001437749-21-014624"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-10-31",
          "value": -20.12842547346213,
          "filed": "2022-01-12",
          "accession": "0001437749-22-000815"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-10-31",
          "value": -4.772836660249266,
          "filed": "2023-01-31",
          "accession": "0001437749-23-002137"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-10-31",
          "value": 7.145918682655024,
          "filed": "2024-01-16",
          "accession": "0001437749-24-001415"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-10-31",
          "value": 7.1883882317559875,
          "filed": "2025-01-10",
          "accession": "0001437749-25-000800"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-10-31",
          "value": 3.8056035616335424,
          "filed": "2026-01-13",
          "accession": "0001437749-26-001203"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-10-31",
          "value": 1.622177479910504,
          "filed": "2026-01-13",
          "accession": "0001437749-26-001203"
        }
      ]
    },
    {
      "metric_id": "operating_margin",
      "label": "Operating margin",
      "concept": "OperatingIncomeLoss / Revenues",
      "unit": "Percent",
      "derived": true,
      "source_concepts": [
        "us-gaap:OperatingIncomeLoss",
        "us-gaap:Revenues"
      ],
      "points": [
        {
          "fiscal_year": 2018,
          "period_end": "2018-10-31",
          "value": 16.43265645107576,
          "filed": "2020-01-14",
          "accession": "0001437749-20-000638"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-10-31",
          "value": 8.360760350395452,
          "filed": "2021-06-11",
          "accession": "0001437749-21-014624"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-10-31",
          "value": -10.426518480057574,
          "filed": "2022-01-12",
          "accession": "0001437749-22-000815"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-10-31",
          "value": 12.047193231330429,
          "filed": "2023-01-31",
          "accession": "0001437749-23-002137"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-10-31",
          "value": 12.487415647458707,
          "filed": "2024-01-16",
          "accession": "0001437749-24-001415"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-10-31",
          "value": 13.895590865613997,
          "filed": "2025-01-10",
          "accession": "0001437749-25-000800"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-10-31",
          "value": 11.587284442273734,
          "filed": "2026-01-13",
          "accession": "0001437749-26-001203"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-10-31",
          "value": 10.571262030152697,
          "filed": "2026-01-13",
          "accession": "0001437749-26-001203"
        }
      ]
    },
    {
      "metric_id": "roe",
      "label": "Return on equity",
      "concept": "NetIncomeLoss / StockholdersEquity",
      "unit": "Percent",
      "derived": true,
      "source_concepts": [
        "us-gaap:NetIncomeLoss",
        "us-gaap:StockholdersEquity"
      ],
      "points": [
        {
          "fiscal_year": 2019,
          "period_end": "2019-10-31",
          "value": -5.173713510700374,
          "filed": "2022-01-12",
          "accession": "0001437749-21-014624"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-10-31",
          "value": -22.931002208827824,
          "filed": "2023-01-31",
          "accession": "0001437749-22-000815"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-10-31",
          "value": -5.740455108064363,
          "filed": "2024-01-16",
          "accession": "0001437749-23-002137"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-10-31",
          "value": 10.26610388541029,
          "filed": "2025-01-10",
          "accession": "0001437749-24-001415"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-10-31",
          "value": 10.313392161951725,
          "filed": "2026-01-13",
          "accession": "0001437749-25-000800"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-10-31",
          "value": 5.03768863745862,
          "filed": "2026-01-13",
          "accession": "0001437749-26-001203"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-10-31",
          "value": 2.406822035658581,
          "filed": "2026-01-13",
          "accession": "0001437749-26-001203"
        }
      ]
    },
    {
      "metric_id": "roa",
      "label": "Return on assets",
      "concept": "NetIncomeLoss / Assets",
      "unit": "Percent",
      "derived": true,
      "source_concepts": [
        "us-gaap:NetIncomeLoss",
        "us-gaap:Assets"
      ],
      "points": [
        {
          "fiscal_year": 2018,
          "period_end": "2018-10-31",
          "value": 7.667826575603008,
          "filed": "2020-01-14",
          "accession": "0001437749-20-000638"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-10-31",
          "value": -1.8824488015929028,
          "filed": "2021-06-11",
          "accession": "0001437749-21-014624"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-10-31",
          "value": -7.916040932694718,
          "filed": "2022-01-12",
          "accession": "0001437749-22-000815"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-10-31",
          "value": -1.9015599275860546,
          "filed": "2023-01-31",
          "accession": "0001437749-23-002137"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-10-31",
          "value": 3.231138639464827,
          "filed": "2024-01-16",
          "accession": "0001437749-24-001415"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-10-31",
          "value": 3.51455183659932,
          "filed": "2025-01-10",
          "accession": "0001437749-25-000800"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-10-31",
          "value": 1.8048085167986279,
          "filed": "2026-01-13",
          "accession": "0001437749-26-001203"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-10-31",
          "value": 0.7245816572716254,
          "filed": "2026-01-13",
          "accession": "0001437749-26-001203"
        }
      ]
    },
    {
      "metric_id": "liabilities_to_equity",
      "label": "Liabilities / equity",
      "concept": "Liabilities / StockholdersEquity",
      "unit": "Ratio",
      "derived": true,
      "source_concepts": [
        "us-gaap:Liabilities",
        "us-gaap:StockholdersEquity"
      ],
      "points": [
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 0.45802077894956666,
          "filed": "2020-01-14",
          "accession": "0001144204-18-018016"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-05",
          "value": 61.8904,
          "filed": "2021-01-12",
          "accession": "0001437749-20-000638"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-10-31",
          "value": 1.669539024428709,
          "filed": "2022-01-12",
          "accession": "0001437749-21-014624"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-10-31",
          "value": 1.803182209576579,
          "filed": "2023-01-31",
          "accession": "0001437749-22-000815"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-10-31",
          "value": 1.92360278015805,
          "filed": "2024-01-16",
          "accession": "0001437749-23-002137"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-10-31",
          "value": 2.0877394594865515,
          "filed": "2025-01-10",
          "accession": "0001437749-24-001415"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-10-31",
          "value": 1.8533772385154426,
          "filed": "2026-01-13",
          "accession": "0001437749-25-000800"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-10-31",
          "value": 1.713550813608318,
          "filed": "2026-01-13",
          "accession": "0001437749-26-001203"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-10-31",
          "value": 2.2272564192621296,
          "filed": "2026-01-13",
          "accession": "0001437749-26-001203"
        }
      ]
    },
    {
      "metric_id": "current_ratio",
      "label": "Current ratio",
      "concept": "AssetsCurrent / LiabilitiesCurrent",
      "unit": "Ratio",
      "derived": true,
      "source_concepts": [
        "us-gaap:AssetsCurrent",
        "us-gaap:LiabilitiesCurrent"
      ],
      "points": [
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 1.5225817160720956,
          "filed": "2018-03-29",
          "accession": "0001144204-18-018016"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-10-31",
          "value": 0.5860033814270452,
          "filed": "2020-01-14",
          "accession": "0001437749-20-000638"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-10-31",
          "value": 0.6815259648589362,
          "filed": "2021-06-11",
          "accession": "0001437749-21-014624"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-10-31",
          "value": 0.9629766337142124,
          "filed": "2022-01-12",
          "accession": "0001437749-22-000815"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-10-31",
          "value": 1.401749621675408,
          "filed": "2023-01-31",
          "accession": "0001437749-23-002137"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-10-31",
          "value": 0.7395357272397534,
          "filed": "2024-01-16",
          "accession": "0001437749-24-001415"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-10-31",
          "value": 1.1225826426598076,
          "filed": "2025-01-10",
          "accession": "0001437749-25-000800"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-10-31",
          "value": 1.9946388311941914,
          "filed": "2026-01-13",
          "accession": "0001437749-26-001203"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-10-31",
          "value": 2.1680246346874763,
          "filed": "2026-01-13",
          "accession": "0001437749-26-001203"
        }
      ]
    }
  ],
  "quarterly": [
    {
      "metric_id": "revenue",
      "label": "Revenue",
      "concept": "Revenues",
      "unit": "USD",
      "source_concepts": [
        "us-gaap:Revenues"
      ],
      "points": [
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 3,
          "period_label": "2023-Q3",
          "period_end": "2023-07-31",
          "value": 120671000.0,
          "filed": "2023-09-07",
          "accession": "0001437749-23-025409",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 4,
          "period_label": "2023-Q4",
          "period_end": "2023-10-31",
          "value": 120204000.0,
          "filed": "2024-01-16",
          "accession": "0001437749-24-001415",
          "derived": true
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 1,
          "period_label": "2024-Q1",
          "period_end": "2024-01-31",
          "value": 97711000.0,
          "filed": "2024-03-07",
          "accession": "0001437749-24-007002",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 2,
          "period_label": "2024-Q2",
          "period_end": "2024-04-30",
          "value": 107062000.0,
          "filed": "2024-06-06",
          "accession": "0001437749-24-019495",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 3,
          "period_label": "2024-Q3",
          "period_end": "2024-07-31",
          "value": 109617000.0,
          "filed": "2024-09-04",
          "accession": "0001437749-24-028422",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 4,
          "period_label": "2024-Q4",
          "period_end": "2024-10-31",
          "value": 111482000.0,
          "filed": "2025-01-10",
          "accession": "0001437749-25-000800",
          "derived": true
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 1,
          "period_label": "2025-Q1",
          "period_end": "2025-01-31",
          "value": 86447000.0,
          "filed": "2025-03-11",
          "accession": "0001437749-25-007054",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 2,
          "period_label": "2025-Q2",
          "period_end": "2025-04-30",
          "value": 93958000.0,
          "filed": "2025-06-05",
          "accession": "0001437749-25-019577",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 3,
          "period_label": "2025-Q3",
          "period_end": "2025-07-31",
          "value": 103676000.0,
          "filed": "2025-09-04",
          "accession": "0001437749-25-028391",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 4,
          "period_label": "2025-Q4",
          "period_end": "2025-10-31",
          "value": 108787000.0,
          "filed": "2026-01-13",
          "accession": "0001437749-26-001203",
          "derived": true
        },
        {
          "fiscal_year": 2026,
          "fiscal_quarter": 1,
          "period_label": "2026-Q1",
          "period_end": "2026-01-31",
          "value": 90561000.0,
          "filed": "2026-03-10",
          "accession": "0001437749-26-007563",
          "derived": false
        },
        {
          "fiscal_year": 2026,
          "fiscal_quarter": 2,
          "period_label": "2026-Q2",
          "period_end": "2026-04-30",
          "value": 106796000.0,
          "filed": "2026-06-04",
          "accession": "0001437749-26-019572",
          "derived": false
        }
      ]
    },
    {
      "metric_id": "net_income",
      "label": "Net income",
      "concept": "NetIncomeLoss",
      "unit": "USD",
      "source_concepts": [
        "us-gaap:NetIncomeLoss"
      ],
      "points": [
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 3,
          "period_label": "2023-Q3",
          "period_end": "2023-07-31",
          "value": 10336000.0,
          "filed": "2023-09-07",
          "accession": "0001437749-23-025409",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 4,
          "period_label": "2023-Q4",
          "period_end": "2023-10-31",
          "value": 9391000.0,
          "filed": "2024-01-16",
          "accession": "0001437749-24-001415",
          "derived": true
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 1,
          "period_label": "2024-Q1",
          "period_end": "2024-01-31",
          "value": -3826000.0,
          "filed": "2024-03-07",
          "accession": "0001437749-24-007002",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 2,
          "period_label": "2024-Q2",
          "period_end": "2024-04-30",
          "value": 3046000.0,
          "filed": "2024-06-06",
          "accession": "0001437749-24-019495",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 3,
          "period_label": "2024-Q3",
          "period_end": "2024-07-31",
          "value": 7560000.0,
          "filed": "2024-09-04",
          "accession": "0001437749-24-028422",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 4,
          "period_label": "2024-Q4",
          "period_end": "2024-10-31",
          "value": 9427000.0,
          "filed": "2025-01-10",
          "accession": "0001437749-25-000800",
          "derived": true
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 1,
          "period_label": "2025-Q1",
          "period_end": "2025-01-31",
          "value": -2639000.0,
          "filed": "2025-03-11",
          "accession": "0001437749-25-007054",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 2,
          "period_label": "2025-Q2",
          "period_end": "2025-04-30",
          "value": -4000.0,
          "filed": "2025-06-05",
          "accession": "0001437749-25-019577",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 3,
          "period_label": "2025-Q3",
          "period_end": "2025-07-31",
          "value": 3699000.0,
          "filed": "2025-09-04",
          "accession": "0001437749-25-028391",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 4,
          "period_label": "2025-Q4",
          "period_end": "2025-10-31",
          "value": 5317000.0,
          "filed": "2026-01-13",
          "accession": "0001437749-26-001203",
          "derived": true
        },
        {
          "fiscal_year": 2026,
          "fiscal_quarter": 1,
          "period_label": "2026-Q1",
          "period_end": "2026-01-31",
          "value": -2442000.0,
          "filed": "2026-03-10",
          "accession": "0001437749-26-007563",
          "derived": false
        },
        {
          "fiscal_year": 2026,
          "fiscal_quarter": 2,
          "period_label": "2026-Q2",
          "period_end": "2026-04-30",
          "value": 2548000.0,
          "filed": "2026-06-04",
          "accession": "0001437749-26-019572",
          "derived": false
        }
      ]
    },
    {
      "metric_id": "eps_diluted",
      "label": "Diluted EPS",
      "concept": "EarningsPerShareDiluted",
      "unit": "USD/shares",
      "source_concepts": [
        "us-gaap:EarningsPerShareDiluted"
      ],
      "points": [
        {
          "fiscal_year": 2022,
          "fiscal_quarter": 3,
          "period_label": "2022-Q3",
          "period_end": "2022-07-31",
          "value": 0.22,
          "filed": "2022-12-13",
          "accession": "0001437749-22-028989",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 1,
          "period_label": "2023-Q1",
          "period_end": "2023-01-31",
          "value": 0.11,
          "filed": "2023-03-10",
          "accession": "0001437749-23-006082",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 2,
          "period_label": "2023-Q2",
          "period_end": "2023-04-30",
          "value": 0.09,
          "filed": "2023-06-08",
          "accession": "0001437749-23-017000",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 3,
          "period_label": "2023-Q3",
          "period_end": "2023-07-31",
          "value": 0.18,
          "filed": "2023-09-07",
          "accession": "0001437749-23-025409",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 1,
          "period_label": "2024-Q1",
          "period_end": "2024-01-31",
          "value": -0.08,
          "filed": "2024-03-07",
          "accession": "0001437749-24-007002",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 2,
          "period_label": "2024-Q2",
          "period_end": "2024-04-30",
          "value": 0.05,
          "filed": "2024-06-06",
          "accession": "0001437749-24-019495",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 3,
          "period_label": "2024-Q3",
          "period_end": "2024-07-31",
          "value": 0.13,
          "filed": "2024-09-04",
          "accession": "0001437749-24-028422",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 1,
          "period_label": "2025-Q1",
          "period_end": "2025-01-31",
          "value": -0.06,
          "filed": "2025-03-11",
          "accession": "0001437749-25-007054",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 2,
          "period_label": "2025-Q2",
          "period_end": "2025-04-30",
          "value": -0.01,
          "filed": "2025-06-05",
          "accession": "0001437749-25-019577",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 3,
          "period_label": "2025-Q3",
          "period_end": "2025-07-31",
          "value": 0.07,
          "filed": "2025-09-04",
          "accession": "0001437749-25-028391",
          "derived": false
        },
        {
          "fiscal_year": 2026,
          "fiscal_quarter": 1,
          "period_label": "2026-Q1",
          "period_end": "2026-01-31",
          "value": -0.06,
          "filed": "2026-03-10",
          "accession": "0001437749-26-007563",
          "derived": false
        },
        {
          "fiscal_year": 2026,
          "fiscal_quarter": 2,
          "period_label": "2026-Q2",
          "period_end": "2026-04-30",
          "value": 0.04,
          "filed": "2026-06-04",
          "accession": "0001437749-26-019572",
          "derived": false
        }
      ]
    }
  ]
}
