{
  "ticker": "XPEL",
  "name": "XPEL, Inc.",
  "cik": "0001767258",
  "sic": "3470",
  "sic_description": "Coating, Engraving & Allied Services",
  "source": "SEC XBRL companyfacts",
  "source_url": "https://data.sec.gov/api/xbrl/companyfacts/CIK0001767258.json",
  "as_of": "2026-02-27",
  "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": 2018,
          "period_end": "2018-12-31",
          "value": 109920614.0,
          "filed": "2021-03-11",
          "accession": "0001767258-21-000014"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 129932881.0,
          "filed": "2022-02-28",
          "accession": "0001767258-22-000010"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 158924000.0,
          "filed": "2023-02-28",
          "accession": "0001767258-23-000012"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 259263000.0,
          "filed": "2024-02-28",
          "accession": "0001767258-24-000009"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 323993000.0,
          "filed": "2025-02-28",
          "accession": "0001767258-25-000008"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 396293000.0,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 420400000.0,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 476200000.0,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        }
      ]
    },
    {
      "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-12-31",
          "value": 8712534.0,
          "filed": "2021-03-11",
          "accession": "0001767258-21-000014"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 13977625.0,
          "filed": "2022-02-28",
          "accession": "0001767258-22-000010"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 18282000.0,
          "filed": "2023-02-28",
          "accession": "0001767258-23-000012"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 31567000.0,
          "filed": "2024-02-28",
          "accession": "0001767258-24-000009"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 41381000.0,
          "filed": "2025-02-28",
          "accession": "0001767258-25-000008"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 52800000.0,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 45489000.0,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 51226000.0,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        }
      ]
    },
    {
      "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-12-31",
          "value": 11806003.0,
          "filed": "2021-03-11",
          "accession": "0001767258-21-000014"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 17087347.0,
          "filed": "2022-02-28",
          "accession": "0001767258-22-000010"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 23370000.0,
          "filed": "2023-02-28",
          "accession": "0001767258-23-000012"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 40116000.0,
          "filed": "2024-02-28",
          "accession": "0001767258-24-000009"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 53937000.0,
          "filed": "2025-02-28",
          "accession": "0001767258-25-000008"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 66972000.0,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 59147000.0,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 62649000.0,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        }
      ]
    },
    {
      "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-12-31",
          "value": 33436605.0,
          "filed": "2021-03-11",
          "accession": "0001767258-21-000014"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 43506259.0,
          "filed": "2022-02-28",
          "accession": "0001767258-22-000010"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 54025000.0,
          "filed": "2023-02-28",
          "accession": "0001767258-23-000012"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 92677000.0,
          "filed": "2024-02-28",
          "accession": "0001767258-24-000009"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 127512000.0,
          "filed": "2025-02-28",
          "accession": "0001767258-25-000008"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 162414000.0,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 177360000.0,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 201019000.0,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        }
      ]
    },
    {
      "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": 0.51,
          "filed": "2022-02-28",
          "accession": "0001767258-22-000010"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 0.66,
          "filed": "2023-02-28",
          "accession": "0001767258-23-000012"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 1.14,
          "filed": "2024-02-28",
          "accession": "0001767258-24-000009"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 1.5,
          "filed": "2025-02-28",
          "accession": "0001767258-25-000008"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 1.91,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 1.65,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 1.85,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        }
      ]
    },
    {
      "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-12-31",
          "value": 6796785.0,
          "filed": "2021-03-11",
          "accession": "0001767258-21-000014"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 10965519.0,
          "filed": "2022-02-28",
          "accession": "0001767258-22-000010"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 18466000.0,
          "filed": "2023-02-28",
          "accession": "0001767258-23-000012"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 18268000.0,
          "filed": "2024-02-28",
          "accession": "0001767258-24-000009"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 12057000.0,
          "filed": "2025-02-28",
          "accession": "0001767258-25-000008"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 37384000.0,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 47824000.0,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 66938000.0,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        }
      ]
    },
    {
      "metric_id": "capex",
      "label": "Capital expenditures",
      "concept": "PaymentsToAcquirePropertyPlantAndEquipment",
      "unit": "USD",
      "derived": false,
      "source_concepts": [
        "us-gaap:PaymentsToAcquirePropertyPlantAndEquipment"
      ],
      "points": [
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 2030314.0,
          "filed": "2021-03-11",
          "accession": "0001767258-21-000014"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 1569823.0,
          "filed": "2022-02-28",
          "accession": "0001767258-22-000010"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 1782000.0,
          "filed": "2023-02-28",
          "accession": "0001767258-23-000012"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 6725000.0,
          "filed": "2024-02-28",
          "accession": "0001767258-24-000009"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 7936000.0,
          "filed": "2025-02-28",
          "accession": "0001767258-25-000008"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 6356000.0,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 6713000.0,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 4008000.0,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        }
      ]
    },
    {
      "metric_id": "share_buybacks",
      "label": "Share buybacks",
      "concept": "PaymentsForRepurchaseOfCommonStock",
      "unit": "USD",
      "derived": false,
      "source_concepts": [
        "us-gaap:PaymentsForRepurchaseOfCommonStock"
      ],
      "points": [
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 0.0,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 0.0,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 2999000.0,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        }
      ]
    },
    {
      "metric_id": "assets",
      "label": "Assets",
      "concept": "Assets",
      "unit": "USD",
      "derived": false,
      "source_concepts": [
        "us-gaap:Assets"
      ],
      "points": [
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 30542888.0,
          "filed": "2020-03-16",
          "accession": "0001767258-20-000011"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 51601435.0,
          "filed": "2021-03-11",
          "accession": "0001767258-21-000014"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 83839831.0,
          "filed": "2022-02-28",
          "accession": "0001767258-22-000010"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 161015000.0,
          "filed": "2023-02-28",
          "accession": "0001767258-23-000012"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 193362000.0,
          "filed": "2024-02-28",
          "accession": "0001767258-24-000009"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 252041000.0,
          "filed": "2025-02-28",
          "accession": "0001767258-25-000008"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 285607000.0,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 382526000.0,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        }
      ]
    },
    {
      "metric_id": "liabilities",
      "label": "Liabilities",
      "concept": "Liabilities",
      "unit": "USD",
      "derived": false,
      "source_concepts": [
        "us-gaap:Liabilities"
      ],
      "points": [
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 9929943.0,
          "filed": "2020-03-16",
          "accession": "0001767258-20-000011"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 16708225.0,
          "filed": "2021-03-11",
          "accession": "0001767258-21-000014"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 30456963.0,
          "filed": "2022-02-28",
          "accession": "0001767258-22-000010"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 76553000.0,
          "filed": "2023-02-28",
          "accession": "0001767258-23-000012"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 68640000.0,
          "filed": "2024-02-28",
          "accession": "0001767258-24-000009"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 72052000.0,
          "filed": "2025-02-28",
          "accession": "0001767258-25-000008"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 60152000.0,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 97341000.0,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        }
      ]
    },
    {
      "metric_id": "equity",
      "label": "Stockholders' equity",
      "concept": "StockholdersEquity",
      "unit": "USD",
      "derived": false,
      "source_concepts": [
        "us-gaap:StockholdersEquity"
      ],
      "points": [
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 20802974.0,
          "filed": "2020-03-16",
          "accession": "0001767258-20-000011"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 35061890.0,
          "filed": "2021-03-11",
          "accession": "0001767258-21-000014"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 53382868.0,
          "filed": "2021-03-11",
          "accession": "0001767258-21-000014"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 84462000.0,
          "filed": "2025-02-28",
          "accession": "0001767258-25-000008"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 124722000.0,
          "filed": "2025-02-28",
          "accession": "0001767258-25-000008"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 179989000.0,
          "filed": "2025-02-28",
          "accession": "0001767258-25-000008"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 225455000.0,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 280282000.0,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        }
      ]
    },
    {
      "metric_id": "cash",
      "label": "Cash and cash equivalents",
      "concept": "CashAndCashEquivalentsAtCarryingValue",
      "unit": "USD",
      "derived": false,
      "source_concepts": [
        "us-gaap:CashAndCashEquivalentsAtCarryingValue"
      ],
      "points": [
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 3971226.0,
          "filed": "2020-03-16",
          "accession": "0001767258-20-000011"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 11500973.0,
          "filed": "2021-03-11",
          "accession": "0001767258-21-000014"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 29027124.0,
          "filed": "2022-02-28",
          "accession": "0001767258-22-000010"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 9644000.0,
          "filed": "2023-02-28",
          "accession": "0001767258-23-000012"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 8056000.0,
          "filed": "2024-02-28",
          "accession": "0001767258-24-000009"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 11609000.0,
          "filed": "2025-02-28",
          "accession": "0001767258-25-000008"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 22087000.0,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 50864000.0,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        }
      ]
    },
    {
      "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-12-31",
          "value": 4766471.0,
          "filed": "2021-03-11",
          "accession": "0001767258-21-000014"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 9395696.0,
          "filed": "2022-02-28",
          "accession": "0001767258-22-000010"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 16684000.0,
          "filed": "2023-02-28",
          "accession": "0001767258-23-000012"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 11543000.0,
          "filed": "2024-02-28",
          "accession": "0001767258-24-000009"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 4121000.0,
          "filed": "2025-02-28",
          "accession": "0001767258-25-000008"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 31028000.0,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 41111000.0,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 62930000.0,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        }
      ]
    },
    {
      "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": 2018,
          "period_end": "2018-12-31",
          "value": 7.926205725160887,
          "filed": "2021-03-11",
          "accession": "0001767258-21-000014"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 10.757573365898043,
          "filed": "2022-02-28",
          "accession": "0001767258-22-000010"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 11.503611789282928,
          "filed": "2023-02-28",
          "accession": "0001767258-23-000012"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 12.175667179659264,
          "filed": "2024-02-28",
          "accession": "0001767258-24-000009"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 12.772189522613143,
          "filed": "2025-02-28",
          "accession": "0001767258-25-000008"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 13.323475307411437,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 10.820409134157945,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 10.757244855102897,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        }
      ]
    },
    {
      "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": 2018,
          "period_end": "2018-12-31",
          "value": 10.740481307719042,
          "filed": "2021-03-11",
          "accession": "0001767258-21-000014"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 13.150902888084195,
          "filed": "2022-02-28",
          "accession": "0001767258-22-000010"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 14.705142080491305,
          "filed": "2023-02-28",
          "accession": "0001767258-23-000012"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 15.473091031115121,
          "filed": "2024-02-28",
          "accession": "0001767258-24-000009"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 16.647581892201373,
          "filed": "2025-02-28",
          "accession": "0001767258-25-000008"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 16.89961720242346,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 14.069219790675547,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 13.15602687946241,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        }
      ]
    },
    {
      "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": 2018,
          "period_end": "2018-12-31",
          "value": 41.88119448690365,
          "filed": "2021-03-11",
          "accession": "0001767258-21-000014"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 39.865577697038006,
          "filed": "2022-02-28",
          "accession": "0001767258-22-000010"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 34.246942296168875,
          "filed": "2023-02-28",
          "accession": "0001767258-23-000012"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 37.37420378395018,
          "filed": "2025-02-28",
          "accession": "0001767258-24-000009"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 33.178589182341526,
          "filed": "2025-02-28",
          "accession": "0001767258-25-000008"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 29.33512603547995,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 20.17653190215342,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 18.276592860048094,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        }
      ]
    },
    {
      "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-12-31",
          "value": 28.52557361307811,
          "filed": "2021-03-11",
          "accession": "0001767258-21-000014"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 27.087667232510103,
          "filed": "2022-02-28",
          "accession": "0001767258-22-000010"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 21.80586456573368,
          "filed": "2023-02-28",
          "accession": "0001767258-23-000012"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 19.605005744806384,
          "filed": "2024-02-28",
          "accession": "0001767258-24-000009"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 21.400792296314684,
          "filed": "2025-02-28",
          "accession": "0001767258-25-000008"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 20.948972587793254,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 15.927130637554402,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 13.391508028212462,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        }
      ]
    },
    {
      "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": 2018,
          "period_end": "2018-12-31",
          "value": 0.4773328563502507,
          "filed": "2020-03-16",
          "accession": "0001767258-20-000011"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 0.4765352067444168,
          "filed": "2021-03-11",
          "accession": "0001767258-21-000014"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 0.5705381546753914,
          "filed": "2022-02-28",
          "accession": "0001767258-22-000010"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 0.906360256683479,
          "filed": "2025-02-28",
          "accession": "0001767258-23-000012"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 0.5503439649781113,
          "filed": "2025-02-28",
          "accession": "0001767258-24-000009"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 0.4003133524826517,
          "filed": "2025-02-28",
          "accession": "0001767258-25-000008"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 0.26680268789780665,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 0.34729665122983283,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        }
      ]
    },
    {
      "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": 2018,
          "period_end": "2018-12-31",
          "value": 2.479342182726025,
          "filed": "2020-03-16",
          "accession": "0001767258-20-000011"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 3.078214669938267,
          "filed": "2021-03-11",
          "accession": "0001767258-21-000014"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 2.9611411965768104,
          "filed": "2022-02-28",
          "accession": "0001767258-22-000010"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 2.17900077203044,
          "filed": "2023-02-28",
          "accession": "0001767258-23-000012"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 3.8982920954674842,
          "filed": "2024-02-28",
          "accession": "0001767258-24-000009"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 4.015518754112744,
          "filed": "2025-02-28",
          "accession": "0001767258-25-000008"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 4.054723252565153,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 3.2492535211267604,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014"
        }
      ]
    }
  ],
  "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": 102237000.0,
          "filed": "2023-08-09",
          "accession": "0001767258-23-000051",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 3,
          "period_label": "2023-Q3",
          "period_end": "2023-09-30",
          "value": 102677000.0,
          "filed": "2023-11-08",
          "accession": "0001767258-23-000067",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 4,
          "period_label": "2023-Q4",
          "period_end": "2023-12-31",
          "value": 105538000.0,
          "filed": "2024-02-28",
          "accession": "0001767258-24-000009",
          "derived": true
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 1,
          "period_label": "2024-Q1",
          "period_end": "2024-03-31",
          "value": 90104000.0,
          "filed": "2024-05-09",
          "accession": "0001767258-24-000030",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 2,
          "period_label": "2024-Q2",
          "period_end": "2024-06-30",
          "value": 109917000.0,
          "filed": "2024-08-09",
          "accession": "0001767258-24-000037",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 3,
          "period_label": "2024-Q3",
          "period_end": "2024-09-30",
          "value": 112852000.0,
          "filed": "2024-11-08",
          "accession": "0001767258-24-000043",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 4,
          "period_label": "2024-Q4",
          "period_end": "2024-12-31",
          "value": 107527000.0,
          "filed": "2025-02-28",
          "accession": "0001767258-25-000008",
          "derived": true
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 1,
          "period_label": "2025-Q1",
          "period_end": "2025-03-31",
          "value": 103805000.0,
          "filed": "2025-05-09",
          "accession": "0001767258-25-000028",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 2,
          "period_label": "2025-Q2",
          "period_end": "2025-06-30",
          "value": 124713000.0,
          "filed": "2025-08-08",
          "accession": "0001767258-25-000051",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 3,
          "period_label": "2025-Q3",
          "period_end": "2025-09-30",
          "value": 125415000.0,
          "filed": "2025-11-07",
          "accession": "0001767258-25-000068",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 4,
          "period_label": "2025-Q4",
          "period_end": "2025-12-31",
          "value": 122267000.0,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014",
          "derived": true
        },
        {
          "fiscal_year": 2026,
          "fiscal_quarter": 1,
          "period_label": "2026-Q1",
          "period_end": "2026-03-31",
          "value": 117354000.0,
          "filed": "2026-05-08",
          "accession": "0001767258-26-000038",
          "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": 15741000.0,
          "filed": "2023-08-09",
          "accession": "0001767258-23-000051",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 3,
          "period_label": "2023-Q3",
          "period_end": "2023-09-30",
          "value": 13656000.0,
          "filed": "2023-11-08",
          "accession": "0001767258-23-000067",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 4,
          "period_label": "2023-Q4",
          "period_end": "2023-12-31",
          "value": 11970000.0,
          "filed": "2024-02-28",
          "accession": "0001767258-24-000009",
          "derived": true
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 1,
          "period_label": "2024-Q1",
          "period_end": "2024-03-31",
          "value": 6666000.0,
          "filed": "2024-05-09",
          "accession": "0001767258-24-000030",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 2,
          "period_label": "2024-Q2",
          "period_end": "2024-06-30",
          "value": 15033000.0,
          "filed": "2024-08-09",
          "accession": "0001767258-24-000037",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 3,
          "period_label": "2024-Q3",
          "period_end": "2024-09-30",
          "value": 14892000.0,
          "filed": "2024-11-08",
          "accession": "0001767258-24-000043",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 4,
          "period_label": "2024-Q4",
          "period_end": "2024-12-31",
          "value": 8898000.0,
          "filed": "2025-02-28",
          "accession": "0001767258-25-000008",
          "derived": true
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 1,
          "period_label": "2025-Q1",
          "period_end": "2025-03-31",
          "value": 8586000.0,
          "filed": "2025-05-09",
          "accession": "0001767258-25-000028",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 2,
          "period_label": "2025-Q2",
          "period_end": "2025-06-30",
          "value": 16290000.0,
          "filed": "2025-08-08",
          "accession": "0001767258-25-000051",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 3,
          "period_label": "2025-Q3",
          "period_end": "2025-09-30",
          "value": 12940000.0,
          "filed": "2025-11-07",
          "accession": "0001767258-25-000068",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 4,
          "period_label": "2025-Q4",
          "period_end": "2025-12-31",
          "value": 13410000.0,
          "filed": "2026-02-27",
          "accession": "0001767258-26-000014",
          "derived": true
        },
        {
          "fiscal_year": 2026,
          "fiscal_quarter": 1,
          "period_label": "2026-Q1",
          "period_end": "2026-03-31",
          "value": 10345000.0,
          "filed": "2026-05-08",
          "accession": "0001767258-26-000038",
          "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.43,
          "filed": "2022-08-09",
          "accession": "0001767258-22-000048",
          "derived": false
        },
        {
          "fiscal_year": 2022,
          "fiscal_quarter": 3,
          "period_label": "2022-Q3",
          "period_end": "2022-09-30",
          "value": 0.48,
          "filed": "2022-11-09",
          "accession": "0001767258-22-000071",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 1,
          "period_label": "2023-Q1",
          "period_end": "2023-03-31",
          "value": 0.41,
          "filed": "2023-05-09",
          "accession": "0001767258-23-000039",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 2,
          "period_label": "2023-Q2",
          "period_end": "2023-06-30",
          "value": 0.57,
          "filed": "2023-08-09",
          "accession": "0001767258-23-000051",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 3,
          "period_label": "2023-Q3",
          "period_end": "2023-09-30",
          "value": 0.49,
          "filed": "2023-11-08",
          "accession": "0001767258-23-000067",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 1,
          "period_label": "2024-Q1",
          "period_end": "2024-03-31",
          "value": 0.24,
          "filed": "2024-05-09",
          "accession": "0001767258-24-000030",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 2,
          "period_label": "2024-Q2",
          "period_end": "2024-06-30",
          "value": 0.54,
          "filed": "2024-08-09",
          "accession": "0001767258-24-000037",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 3,
          "period_label": "2024-Q3",
          "period_end": "2024-09-30",
          "value": 0.54,
          "filed": "2024-11-08",
          "accession": "0001767258-24-000043",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 1,
          "period_label": "2025-Q1",
          "period_end": "2025-03-31",
          "value": 0.31,
          "filed": "2025-05-09",
          "accession": "0001767258-25-000028",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 2,
          "period_label": "2025-Q2",
          "period_end": "2025-06-30",
          "value": 0.59,
          "filed": "2025-08-08",
          "accession": "0001767258-25-000051",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 3,
          "period_label": "2025-Q3",
          "period_end": "2025-09-30",
          "value": 0.47,
          "filed": "2025-11-07",
          "accession": "0001767258-25-000068",
          "derived": false
        },
        {
          "fiscal_year": 2026,
          "fiscal_quarter": 1,
          "period_label": "2026-Q1",
          "period_end": "2026-03-31",
          "value": 0.37,
          "filed": "2026-05-08",
          "accession": "0001767258-26-000038",
          "derived": false
        }
      ]
    }
  ]
}
