{
  "ticker": "CIX",
  "name": "COMPX INTERNATIONAL INC",
  "cik": "0001049606",
  "sic": "3420",
  "sic_description": "Cutlery, Handtools & General Hardware",
  "source": "SEC XBRL companyfacts",
  "source_url": "https://data.sec.gov/api/xbrl/companyfacts/CIK0001049606.json",
  "as_of": "2026-03-04",
  "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": "RevenueFromContractWithCustomerExcludingAssessedTax",
      "unit": "USD",
      "derived": false,
      "source_concepts": [
        "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax"
      ],
      "points": [
        {
          "fiscal_year": 2016,
          "period_end": "2016-12-31",
          "value": 108920000.0,
          "filed": "2019-02-27",
          "accession": "0001564590-19-004906"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 112035000.0,
          "filed": "2020-02-26",
          "accession": "0001564590-20-006804"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 118217000.0,
          "filed": "2021-03-03",
          "accession": "0001564590-21-010577"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 124243000.0,
          "filed": "2022-03-02",
          "accession": "0001558370-22-002671"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 114537000.0,
          "filed": "2023-03-01",
          "accession": "0001558370-23-002573"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 140815000.0,
          "filed": "2024-02-28",
          "accession": "0001558370-24-002007"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 166562000.0,
          "filed": "2025-03-05",
          "accession": "0001558370-25-002264"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 161287000.0,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 145941000.0,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 158285000.0,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        }
      ]
    },
    {
      "metric_id": "net_income",
      "label": "Net income",
      "concept": "NetIncomeLoss",
      "unit": "USD",
      "derived": false,
      "source_concepts": [
        "us-gaap:NetIncomeLoss"
      ],
      "points": [
        {
          "fiscal_year": 2016,
          "period_end": "2016-12-31",
          "value": 10457000.0,
          "filed": "2019-02-27",
          "accession": "0001564590-19-004906"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 13203000.0,
          "filed": "2020-02-26",
          "accession": "0001564590-20-006804"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 15325000.0,
          "filed": "2021-03-03",
          "accession": "0001564590-21-010577"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 15998000.0,
          "filed": "2022-03-02",
          "accession": "0001558370-22-002671"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 10323000.0,
          "filed": "2023-03-01",
          "accession": "0001558370-23-002573"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 16568000.0,
          "filed": "2024-02-28",
          "accession": "0001558370-24-002007"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 20871000.0,
          "filed": "2025-03-05",
          "accession": "0001558370-25-002264"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 22593000.0,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 16587000.0,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 19478000.0,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        }
      ]
    },
    {
      "metric_id": "operating_income",
      "label": "Operating income",
      "concept": "OperatingIncomeLoss",
      "unit": "USD",
      "derived": false,
      "source_concepts": [
        "us-gaap:OperatingIncomeLoss"
      ],
      "points": [
        {
          "fiscal_year": 2016,
          "period_end": "2016-12-31",
          "value": 15574000.0,
          "filed": "2019-02-27",
          "accession": "0001564590-19-004906"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 15235000.0,
          "filed": "2020-02-26",
          "accession": "0001564590-20-006804"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 17811000.0,
          "filed": "2021-03-03",
          "accession": "0001564590-21-010577"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 17666000.0,
          "filed": "2022-03-02",
          "accession": "0001558370-22-002671"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 11817000.0,
          "filed": "2023-03-01",
          "accession": "0001558370-23-002573"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 20526000.0,
          "filed": "2024-02-28",
          "accession": "0001558370-24-002007"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 25436000.0,
          "filed": "2025-03-05",
          "accession": "0001558370-25-002264"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 25435000.0,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 17023000.0,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 22604000.0,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        }
      ]
    },
    {
      "metric_id": "gross_profit",
      "label": "Gross profit",
      "concept": "GrossProfit",
      "unit": "USD",
      "derived": false,
      "source_concepts": [
        "us-gaap:GrossProfit"
      ],
      "points": [
        {
          "fiscal_year": 2016,
          "period_end": "2016-12-31",
          "value": 35167000.0,
          "filed": "2019-02-27",
          "accession": "0001564590-19-004906"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 34825000.0,
          "filed": "2020-02-26",
          "accession": "0001564590-20-006804"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 38271000.0,
          "filed": "2021-03-03",
          "accession": "0001564590-21-010577"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 38963000.0,
          "filed": "2022-03-02",
          "accession": "0001558370-22-002671"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 32848000.0,
          "filed": "2023-03-01",
          "accession": "0001558370-23-002573"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 42749000.0,
          "filed": "2024-02-28",
          "accession": "0001558370-24-002007"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 48799000.0,
          "filed": "2025-03-05",
          "accession": "0001558370-25-002264"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 49219000.0,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 41363000.0,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 48179000.0,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        }
      ]
    },
    {
      "metric_id": "eps_diluted",
      "label": "Diluted EPS",
      "concept": "EarningsPerShareDiluted",
      "unit": "USD/shares",
      "derived": false,
      "source_concepts": [
        "us-gaap:EarningsPerShareDiluted"
      ],
      "points": [
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 1.29,
          "filed": "2022-03-02",
          "accession": "0001558370-22-002671"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 0.83,
          "filed": "2023-03-01",
          "accession": "0001558370-23-002573"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 1.34,
          "filed": "2024-02-28",
          "accession": "0001558370-24-002007"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 1.69,
          "filed": "2025-03-05",
          "accession": "0001558370-25-002264"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 1.84,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 1.35,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 1.58,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        }
      ]
    },
    {
      "metric_id": "operating_cash_flow",
      "label": "Operating cash flow",
      "concept": "NetCashProvidedByUsedInOperatingActivities",
      "unit": "USD",
      "derived": false,
      "source_concepts": [
        "us-gaap:NetCashProvidedByUsedInOperatingActivities"
      ],
      "points": [
        {
          "fiscal_year": 2016,
          "period_end": "2016-12-31",
          "value": 13864000.0,
          "filed": "2019-02-27",
          "accession": "0001564590-19-004906"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 12583000.0,
          "filed": "2020-02-26",
          "accession": "0001564590-20-006804"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 17163000.0,
          "filed": "2021-03-03",
          "accession": "0001564590-21-010577"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 18465000.0,
          "filed": "2022-03-02",
          "accession": "0001558370-22-002671"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 15502000.0,
          "filed": "2023-03-01",
          "accession": "0001558370-23-002573"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 10474000.0,
          "filed": "2024-02-28",
          "accession": "0001558370-24-002007"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 16891000.0,
          "filed": "2025-03-05",
          "accession": "0001558370-25-002264"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 25811000.0,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 22939000.0,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 22871000.0,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        }
      ]
    },
    {
      "metric_id": "capex",
      "label": "Capital expenditures",
      "concept": "PaymentsToAcquirePropertyPlantAndEquipment",
      "unit": "USD",
      "derived": false,
      "source_concepts": [
        "us-gaap:PaymentsToAcquirePropertyPlantAndEquipment"
      ],
      "points": [
        {
          "fiscal_year": 2016,
          "period_end": "2016-12-31",
          "value": 3175000.0,
          "filed": "2019-02-27",
          "accession": "0001564590-19-004906"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 2796000.0,
          "filed": "2020-02-26",
          "accession": "0001564590-20-006804"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 3117000.0,
          "filed": "2021-03-03",
          "accession": "0001564590-21-010577"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 3166000.0,
          "filed": "2022-03-02",
          "accession": "0001558370-22-002671"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 1740000.0,
          "filed": "2023-03-01",
          "accession": "0001558370-23-002573"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 4094000.0,
          "filed": "2024-02-28",
          "accession": "0001558370-24-002007"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 3695000.0,
          "filed": "2025-03-05",
          "accession": "0001558370-25-002264"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 1130000.0,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 1432000.0,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 3747000.0,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        }
      ]
    },
    {
      "metric_id": "dividends_paid",
      "label": "Dividends paid",
      "concept": "PaymentsOfDividendsCommonStock",
      "unit": "USD",
      "derived": false,
      "source_concepts": [
        "us-gaap:PaymentsOfDividendsCommonStock"
      ],
      "points": [
        {
          "fiscal_year": 2016,
          "period_end": "2016-12-31",
          "value": 2483000.0,
          "filed": "2019-02-27",
          "accession": "0001564590-19-004906"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 2485000.0,
          "filed": "2020-02-26",
          "accession": "0001564590-20-006804"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 2487000.0,
          "filed": "2021-03-03",
          "accession": "0001564590-21-010577"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 3483000.0,
          "filed": "2022-03-02",
          "accession": "0001558370-22-002671"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 4980000.0,
          "filed": "2023-03-01",
          "accession": "0001558370-23-002573"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 9929000.0,
          "filed": "2024-02-28",
          "accession": "0001558370-24-002007"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 33880000.0,
          "filed": "2025-03-05",
          "accession": "0001558370-25-002264"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 12311000.0,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 39418000.0,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 27110000.0,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        }
      ]
    },
    {
      "metric_id": "assets",
      "label": "Assets",
      "concept": "Assets",
      "unit": "USD",
      "derived": false,
      "source_concepts": [
        "us-gaap:Assets"
      ],
      "points": [
        {
          "fiscal_year": 2016,
          "period_end": "2016-12-31",
          "value": 143980000.0,
          "filed": "2019-02-27",
          "accession": "0001564590-19-004906"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 150959000.0,
          "filed": "2020-02-26",
          "accession": "0001564590-20-006804"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 166429000.0,
          "filed": "2021-03-03",
          "accession": "0001564590-21-010577"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 178544000.0,
          "filed": "2022-03-02",
          "accession": "0001558370-22-002671"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 184045000.0,
          "filed": "2023-03-01",
          "accession": "0001558370-23-002573"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 192452000.0,
          "filed": "2024-02-28",
          "accession": "0001558370-24-002007"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 177387000.0,
          "filed": "2025-03-05",
          "accession": "0001558370-25-002264"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 187604000.0,
          "filed": "2025-03-05",
          "accession": "0001558370-25-002264"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 163044000.0,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 156194000.0,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        }
      ]
    },
    {
      "metric_id": "equity",
      "label": "Stockholders' equity",
      "concept": "StockholdersEquity",
      "unit": "USD",
      "derived": false,
      "source_concepts": [
        "us-gaap:StockholdersEquity"
      ],
      "points": [
        {
          "fiscal_year": 2016,
          "period_end": "2016-12-31",
          "value": 125770000.0,
          "filed": "2020-02-26",
          "accession": "0001564590-20-006804"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 136585000.0,
          "filed": "2021-03-03",
          "accession": "0001564590-21-010577"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 149562000.0,
          "filed": "2022-03-02",
          "accession": "0001558370-22-002671"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 162195000.0,
          "filed": "2023-03-01",
          "accession": "0001558370-23-002573"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 167656000.0,
          "filed": "2024-02-28",
          "accession": "0001558370-24-002007"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 173088000.0,
          "filed": "2025-03-05",
          "accession": "0001558370-25-002264"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 158436000.0,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 168849000.0,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 146145000.0,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 138630000.0,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        }
      ]
    },
    {
      "metric_id": "cash",
      "label": "Cash and cash equivalents",
      "concept": "CashAndCashEquivalentsAtCarryingValue",
      "unit": "USD",
      "derived": false,
      "source_concepts": [
        "us-gaap:CashAndCashEquivalentsAtCarryingValue"
      ],
      "points": [
        {
          "fiscal_year": 2016,
          "period_end": "2016-12-31",
          "value": 33153000.0,
          "filed": "2018-02-28",
          "accession": "0001564590-18-003809"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 29655000.0,
          "filed": "2019-02-27",
          "accession": "0001564590-19-004906"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 45414000.0,
          "filed": "2020-02-26",
          "accession": "0001564590-20-006804"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 63255000.0,
          "filed": "2021-03-03",
          "accession": "0001564590-21-010577"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 70637000.0,
          "filed": "2022-03-02",
          "accession": "0001558370-22-002671"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 76579000.0,
          "filed": "2023-03-01",
          "accession": "0001558370-23-002573"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 26748000.0,
          "filed": "2024-02-28",
          "accession": "0001558370-24-002007"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 41393000.0,
          "filed": "2025-03-05",
          "accession": "0001558370-25-002264"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 60782000.0,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 54096000.0,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        }
      ]
    },
    {
      "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": 2016,
          "period_end": "2016-12-31",
          "value": 10689000.0,
          "filed": "2019-02-27",
          "accession": "0001564590-19-004906"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 9787000.0,
          "filed": "2020-02-26",
          "accession": "0001564590-20-006804"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 14046000.0,
          "filed": "2021-03-03",
          "accession": "0001564590-21-010577"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 15299000.0,
          "filed": "2022-03-02",
          "accession": "0001558370-22-002671"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 13762000.0,
          "filed": "2023-03-01",
          "accession": "0001558370-23-002573"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 6380000.0,
          "filed": "2024-02-28",
          "accession": "0001558370-24-002007"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 13196000.0,
          "filed": "2025-03-05",
          "accession": "0001558370-25-002264"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 24681000.0,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 21507000.0,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 19124000.0,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        }
      ]
    },
    {
      "metric_id": "net_margin",
      "label": "Net margin",
      "concept": "NetIncomeLoss / RevenueFromContractWithCustomerExcludingAssessedTax",
      "unit": "Percent",
      "derived": true,
      "source_concepts": [
        "us-gaap:NetIncomeLoss",
        "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax"
      ],
      "points": [
        {
          "fiscal_year": 2016,
          "period_end": "2016-12-31",
          "value": 9.600624311421226,
          "filed": "2019-02-27",
          "accession": "0001564590-19-004906"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 11.7847101352256,
          "filed": "2020-02-26",
          "accession": "0001564590-20-006804"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 12.96344857338623,
          "filed": "2021-03-03",
          "accession": "0001564590-21-010577"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 12.876379353363973,
          "filed": "2022-03-02",
          "accession": "0001558370-22-002671"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 9.012808088216035,
          "filed": "2023-03-01",
          "accession": "0001558370-23-002573"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 11.765791996591272,
          "filed": "2024-02-28",
          "accession": "0001558370-24-002007"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 12.53046913461654,
          "filed": "2025-03-05",
          "accession": "0001558370-25-002264"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 14.007948563740413,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 11.365551832589881,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 12.305651198786999,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        }
      ]
    },
    {
      "metric_id": "operating_margin",
      "label": "Operating margin",
      "concept": "OperatingIncomeLoss / RevenueFromContractWithCustomerExcludingAssessedTax",
      "unit": "Percent",
      "derived": true,
      "source_concepts": [
        "us-gaap:OperatingIncomeLoss",
        "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax"
      ],
      "points": [
        {
          "fiscal_year": 2016,
          "period_end": "2016-12-31",
          "value": 14.298567756151304,
          "filed": "2019-02-27",
          "accession": "0001564590-19-004906"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 13.598429062346588,
          "filed": "2020-02-26",
          "accession": "0001564590-20-006804"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 15.06636101406735,
          "filed": "2021-03-03",
          "accession": "0001564590-21-010577"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 14.218909717247652,
          "filed": "2022-03-02",
          "accession": "0001558370-22-002671"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 10.317190078315305,
          "filed": "2023-03-01",
          "accession": "0001558370-23-002573"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 14.576572098142954,
          "filed": "2024-02-28",
          "accession": "0001558370-24-002007"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 15.27119030751312,
          "filed": "2025-03-05",
          "accession": "0001558370-25-002264"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 15.770024862512166,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 11.664302697665494,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 14.28056985816723,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        }
      ]
    },
    {
      "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": 2016,
          "period_end": "2016-12-31",
          "value": 8.314383398266676,
          "filed": "2020-02-26",
          "accession": "0001564590-19-004906"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 9.66650803528938,
          "filed": "2021-03-03",
          "accession": "0001564590-20-006804"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 10.246586699830171,
          "filed": "2022-03-02",
          "accession": "0001564590-21-010577"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 9.863435987545856,
          "filed": "2023-03-01",
          "accession": "0001558370-22-002671"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 6.157250560671852,
          "filed": "2024-02-28",
          "accession": "0001558370-23-002573"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 9.572009613606951,
          "filed": "2025-03-05",
          "accession": "0001558370-24-002007"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 13.173142467620996,
          "filed": "2026-03-04",
          "accession": "0001558370-25-002264"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 13.38059449567365,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 11.349686954736734,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 14.050349852124361,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        }
      ]
    },
    {
      "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": 2016,
          "period_end": "2016-12-31",
          "value": 7.262814279761078,
          "filed": "2019-02-27",
          "accession": "0001564590-19-004906"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 8.74608337363125,
          "filed": "2020-02-26",
          "accession": "0001564590-20-006804"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 9.208130794512975,
          "filed": "2021-03-03",
          "accession": "0001564590-21-010577"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 8.960256295366968,
          "filed": "2022-03-02",
          "accession": "0001558370-22-002671"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 5.608954331821022,
          "filed": "2023-03-01",
          "accession": "0001558370-23-002573"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 8.6088998815289,
          "filed": "2024-02-28",
          "accession": "0001558370-24-002007"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 11.765800199563666,
          "filed": "2025-03-05",
          "accession": "0001558370-25-002264"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 12.042920193599285,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 10.173327445352175,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 12.4703893875565,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        }
      ]
    },
    {
      "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": 2016,
          "period_end": "2016-12-31",
          "value": 4.441567214591308,
          "filed": "2018-02-28",
          "accession": "0001564590-18-003809"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 5.00461729710531,
          "filed": "2019-02-27",
          "accession": "0001564590-19-004906"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 5.580876435730485,
          "filed": "2020-02-26",
          "accession": "0001564590-20-006804"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 7.280431786862655,
          "filed": "2021-03-03",
          "accession": "0001564590-21-010577"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 7.6993155893536125,
          "filed": "2022-03-02",
          "accession": "0001558370-22-002671"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 7.310653046333455,
          "filed": "2023-03-01",
          "accession": "0001558370-23-002573"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 6.675133609559839,
          "filed": "2024-02-28",
          "accession": "0001558370-24-002007"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 7.360069747166522,
          "filed": "2025-03-05",
          "accession": "0001558370-25-002264"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 6.6748652931854195,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 5.872228088701162,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463"
        }
      ]
    }
  ],
  "quarterly": [
    {
      "metric_id": "revenue",
      "label": "Revenue",
      "concept": "RevenueFromContractWithCustomerExcludingAssessedTax",
      "unit": "USD",
      "source_concepts": [
        "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax"
      ],
      "points": [
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 2,
          "period_label": "2023-Q2",
          "period_end": "2023-06-30",
          "value": 36616000.0,
          "filed": "2023-08-01",
          "accession": "0001558370-23-012730",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 3,
          "period_label": "2023-Q3",
          "period_end": "2023-09-30",
          "value": 40355000.0,
          "filed": "2023-11-01",
          "accession": "0001558370-23-017240",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 4,
          "period_label": "2023-Q4",
          "period_end": "2023-12-31",
          "value": 43165000.0,
          "filed": "2024-02-28",
          "accession": "0001558370-24-002007",
          "derived": true
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 1,
          "period_label": "2024-Q1",
          "period_end": "2024-03-31",
          "value": 37971000.0,
          "filed": "2024-05-07",
          "accession": "0001558370-24-007052",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 2,
          "period_label": "2024-Q2",
          "period_end": "2024-06-30",
          "value": 35887000.0,
          "filed": "2024-08-06",
          "accession": "0001558370-24-011092",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 3,
          "period_label": "2024-Q3",
          "period_end": "2024-09-30",
          "value": 33667000.0,
          "filed": "2024-11-06",
          "accession": "0001558370-24-014631",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 4,
          "period_label": "2024-Q4",
          "period_end": "2024-12-31",
          "value": 38416000.0,
          "filed": "2025-03-05",
          "accession": "0001558370-25-002264",
          "derived": true
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 1,
          "period_label": "2025-Q1",
          "period_end": "2025-03-31",
          "value": 40272000.0,
          "filed": "2025-05-06",
          "accession": "0001558370-25-006501",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 2,
          "period_label": "2025-Q2",
          "period_end": "2025-06-30",
          "value": 40366000.0,
          "filed": "2025-08-05",
          "accession": "0001558370-25-010298",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 3,
          "period_label": "2025-Q3",
          "period_end": "2025-09-30",
          "value": 39950000.0,
          "filed": "2025-11-05",
          "accession": "0001104659-25-107005",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 4,
          "period_label": "2025-Q4",
          "period_end": "2025-12-31",
          "value": 37697000.0,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463",
          "derived": true
        },
        {
          "fiscal_year": 2026,
          "fiscal_quarter": 1,
          "period_label": "2026-Q1",
          "period_end": "2026-03-31",
          "value": 40569000.0,
          "filed": "2026-05-05",
          "accession": "0001104659-26-055645",
          "derived": false
        }
      ]
    },
    {
      "metric_id": "net_income",
      "label": "Net income",
      "concept": "NetIncomeLoss",
      "unit": "USD",
      "source_concepts": [
        "us-gaap:NetIncomeLoss"
      ],
      "points": [
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 2,
          "period_label": "2023-Q2",
          "period_end": "2023-06-30",
          "value": 4072000.0,
          "filed": "2023-08-01",
          "accession": "0001558370-23-012730",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 3,
          "period_label": "2023-Q3",
          "period_end": "2023-09-30",
          "value": 5757000.0,
          "filed": "2023-11-01",
          "accession": "0001558370-23-017240",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 4,
          "period_label": "2023-Q4",
          "period_end": "2023-12-31",
          "value": 6696000.0,
          "filed": "2024-02-28",
          "accession": "0001558370-24-002007",
          "derived": true
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 1,
          "period_label": "2024-Q1",
          "period_end": "2024-03-31",
          "value": 3754000.0,
          "filed": "2024-05-07",
          "accession": "0001558370-24-007052",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 2,
          "period_label": "2024-Q2",
          "period_end": "2024-06-30",
          "value": 4844000.0,
          "filed": "2024-08-06",
          "accession": "0001558370-24-011092",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 3,
          "period_label": "2024-Q3",
          "period_end": "2024-09-30",
          "value": 3478000.0,
          "filed": "2024-11-06",
          "accession": "0001558370-24-014631",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 4,
          "period_label": "2024-Q4",
          "period_end": "2024-12-31",
          "value": 4511000.0,
          "filed": "2025-03-05",
          "accession": "0001558370-25-002264",
          "derived": true
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 1,
          "period_label": "2025-Q1",
          "period_end": "2025-03-31",
          "value": 5131000.0,
          "filed": "2025-05-06",
          "accession": "0001558370-25-006501",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 2,
          "period_label": "2025-Q2",
          "period_end": "2025-06-30",
          "value": 5453000.0,
          "filed": "2025-08-05",
          "accession": "0001558370-25-010298",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 3,
          "period_label": "2025-Q3",
          "period_end": "2025-09-30",
          "value": 4222000.0,
          "filed": "2025-11-05",
          "accession": "0001104659-25-107005",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 4,
          "period_label": "2025-Q4",
          "period_end": "2025-12-31",
          "value": 4672000.0,
          "filed": "2026-03-04",
          "accession": "0001104659-26-023463",
          "derived": true
        },
        {
          "fiscal_year": 2026,
          "fiscal_quarter": 1,
          "period_label": "2026-Q1",
          "period_end": "2026-03-31",
          "value": 5852000.0,
          "filed": "2026-05-05",
          "accession": "0001104659-26-055645",
          "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": 2,
          "period_label": "2022-Q2",
          "period_end": "2022-06-30",
          "value": 0.5,
          "filed": "2022-08-02",
          "accession": "0001558370-22-011646",
          "derived": false
        },
        {
          "fiscal_year": 2022,
          "fiscal_quarter": 3,
          "period_label": "2022-Q3",
          "period_end": "2022-09-30",
          "value": 0.4,
          "filed": "2022-11-02",
          "accession": "0001558370-22-015987",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 1,
          "period_label": "2023-Q1",
          "period_end": "2023-03-31",
          "value": 0.49,
          "filed": "2023-05-02",
          "accession": "0001558370-23-007663",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 2,
          "period_label": "2023-Q2",
          "period_end": "2023-06-30",
          "value": 0.33,
          "filed": "2023-08-01",
          "accession": "0001558370-23-012730",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 3,
          "period_label": "2023-Q3",
          "period_end": "2023-09-30",
          "value": 0.47,
          "filed": "2023-11-01",
          "accession": "0001558370-23-017240",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 1,
          "period_label": "2024-Q1",
          "period_end": "2024-03-31",
          "value": 0.31,
          "filed": "2024-05-07",
          "accession": "0001558370-24-007052",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 2,
          "period_label": "2024-Q2",
          "period_end": "2024-06-30",
          "value": 0.39,
          "filed": "2024-08-06",
          "accession": "0001558370-24-011092",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 3,
          "period_label": "2024-Q3",
          "period_end": "2024-09-30",
          "value": 0.28,
          "filed": "2024-11-06",
          "accession": "0001558370-24-014631",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 1,
          "period_label": "2025-Q1",
          "period_end": "2025-03-31",
          "value": 0.42,
          "filed": "2025-05-06",
          "accession": "0001558370-25-006501",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 2,
          "period_label": "2025-Q2",
          "period_end": "2025-06-30",
          "value": 0.44,
          "filed": "2025-08-05",
          "accession": "0001558370-25-010298",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 3,
          "period_label": "2025-Q3",
          "period_end": "2025-09-30",
          "value": 0.34,
          "filed": "2025-11-05",
          "accession": "0001104659-25-107005",
          "derived": false
        },
        {
          "fiscal_year": 2026,
          "fiscal_quarter": 1,
          "period_label": "2026-Q1",
          "period_end": "2026-03-31",
          "value": 0.48,
          "filed": "2026-05-05",
          "accession": "0001104659-26-055645",
          "derived": false
        }
      ]
    }
  ]
}
