{
  "ticker": "GDYN",
  "name": "GRID DYNAMICS HOLDINGS, INC.",
  "cik": "0001743725",
  "sic": "7372",
  "sic_description": "Services-Prepackaged Software",
  "source": "SEC XBRL companyfacts",
  "source_url": "https://data.sec.gov/api/xbrl/companyfacts/CIK0001743725.json",
  "as_of": "2026-03-05",
  "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": 2019,
          "period_end": "2019-12-31",
          "value": 118326000.0,
          "filed": "2022-03-03",
          "accession": "0001628280-22-004939"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 111283000.0,
          "filed": "2023-02-28",
          "accession": "0001628280-23-005637"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 211280000.0,
          "filed": "2024-02-29",
          "accession": "0001628280-24-007971"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 310482000.0,
          "filed": "2025-02-27",
          "accession": "0001628280-25-008723"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 312910000.0,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 350571000.0,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 411827000.0,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        }
      ]
    },
    {
      "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": 9228000.0,
          "filed": "2021-03-05",
          "accession": "0001213900-21-013771"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 10807000.0,
          "filed": "2022-03-03",
          "accession": "0001628280-22-004939"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": -12599000.0,
          "filed": "2023-02-28",
          "accession": "0001628280-23-005637"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": -7700000.0,
          "filed": "2024-02-29",
          "accession": "0001628280-24-007971"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": -29214000.0,
          "filed": "2025-02-27",
          "accession": "0001628280-25-008723"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": -1765000.0,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 4041000.0,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 9668000.0,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        }
      ]
    },
    {
      "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": 13829000.0,
          "filed": "2021-03-05",
          "accession": "0001213900-21-013771"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 15625000.0,
          "filed": "2022-03-03",
          "accession": "0001628280-22-004939"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": -15448000.0,
          "filed": "2023-02-28",
          "accession": "0001628280-23-005637"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 50000.0,
          "filed": "2024-02-29",
          "accession": "0001628280-24-007971"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": -21008000.0,
          "filed": "2025-02-27",
          "accession": "0001628280-25-008723"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": -5580000.0,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": -2105000.0,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": -1895000.0,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        }
      ]
    },
    {
      "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": 39306000.0,
          "filed": "2021-03-05",
          "accession": "0001213900-21-013771"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 48236000.0,
          "filed": "2022-03-03",
          "accession": "0001628280-22-004939"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 41621000.0,
          "filed": "2023-02-28",
          "accession": "0001628280-23-005637"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 87728000.0,
          "filed": "2024-02-29",
          "accession": "0001628280-24-007971"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 120590000.0,
          "filed": "2025-02-27",
          "accession": "0001628280-25-008723"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 113146000.0,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 127005000.0,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 142348000.0,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        }
      ]
    },
    {
      "metric_id": "eps_diluted",
      "label": "Diluted EPS",
      "concept": "EarningsPerShareDiluted",
      "unit": "USD/shares",
      "derived": false,
      "source_concepts": [
        "us-gaap:EarningsPerShareDiluted"
      ],
      "points": [
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 0.46,
          "filed": "2021-03-05",
          "accession": "0001213900-21-013771"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 0.49,
          "filed": "2022-03-03",
          "accession": "0001628280-22-004939"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": -0.28,
          "filed": "2023-02-28",
          "accession": "0001628280-23-005637"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": -0.13,
          "filed": "2024-02-29",
          "accession": "0001628280-24-007971"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": -0.42,
          "filed": "2025-02-27",
          "accession": "0001628280-25-008723"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": -0.02,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 0.05,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 0.11,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        }
      ]
    },
    {
      "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": 10584000.0,
          "filed": "2021-03-05",
          "accession": "0001213900-21-013771"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 12534000.0,
          "filed": "2022-03-03",
          "accession": "0001628280-22-004939"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 5932000.0,
          "filed": "2023-02-28",
          "accession": "0001628280-23-005637"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 17973000.0,
          "filed": "2024-02-29",
          "accession": "0001628280-24-007971"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 31652000.0,
          "filed": "2025-02-27",
          "accession": "0001628280-25-008723"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 41093000.0,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 30198000.0,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 40600000.0,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        }
      ]
    },
    {
      "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": 3079000.0,
          "filed": "2021-03-05",
          "accession": "0001213900-21-013771"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 2811000.0,
          "filed": "2022-03-03",
          "accession": "0001628280-22-004939"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 2252000.0,
          "filed": "2023-02-28",
          "accession": "0001628280-23-005637"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 4716000.0,
          "filed": "2024-02-29",
          "accession": "0001628280-24-007971"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 6069000.0,
          "filed": "2025-02-27",
          "accession": "0001628280-25-008723"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 7870000.0,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 11766000.0,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 15334000.0,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        }
      ]
    },
    {
      "metric_id": "share_buybacks",
      "label": "Share buybacks",
      "concept": "PaymentsForRepurchaseOfCommonStock",
      "unit": "USD",
      "derived": false,
      "source_concepts": [
        "us-gaap:PaymentsForRepurchaseOfCommonStock"
      ],
      "points": [
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 0.0,
          "filed": "2022-03-03",
          "accession": "0001628280-22-004939"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 123865000.0,
          "filed": "2023-02-28",
          "accession": "0001628280-23-005637"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 0.0,
          "filed": "2023-02-28",
          "accession": "0001628280-23-005637"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 0.0,
          "filed": "2023-02-28",
          "accession": "0001628280-23-005637"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 0.0,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 0.0,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 2000000.0,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        }
      ]
    },
    {
      "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": 222364173.0,
          "filed": "2020-03-04",
          "accession": "0001213900-20-005395"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 71531000.0,
          "filed": "2021-03-05",
          "accession": "0001213900-21-013771"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 167135000.0,
          "filed": "2022-03-03",
          "accession": "0001628280-22-004939"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 256719000.0,
          "filed": "2023-02-28",
          "accession": "0001628280-23-005637"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 411146000.0,
          "filed": "2024-02-29",
          "accession": "0001628280-24-007971"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 435165000.0,
          "filed": "2025-02-27",
          "accession": "0001628280-25-008723"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 592192000.0,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 612890000.0,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        }
      ]
    },
    {
      "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": 8145120.0,
          "filed": "2020-03-04",
          "accession": "0001213900-20-005395"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 8300000.0,
          "filed": "2021-03-05",
          "accession": "0001213900-21-013771"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 15411000.0,
          "filed": "2022-03-03",
          "accession": "0001628280-22-004939"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 29668000.0,
          "filed": "2023-02-28",
          "accession": "0001628280-23-005637"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 48102000.0,
          "filed": "2024-02-29",
          "accession": "0001628280-24-007971"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 52258000.0,
          "filed": "2025-02-27",
          "accession": "0001628280-25-008723"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 74363000.0,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 70817000.0,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        }
      ]
    },
    {
      "metric_id": "equity",
      "label": "Stockholders' equity",
      "concept": "StockholdersEquity",
      "unit": "USD",
      "derived": false,
      "source_concepts": [
        "us-gaap:StockholdersEquity"
      ],
      "points": [
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 24395000.0,
          "filed": "2021-03-05",
          "accession": "0001213900-21-013771"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 33379000.0,
          "filed": "2022-03-03",
          "accession": "0001628280-22-004939"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 54044000.0,
          "filed": "2022-03-03",
          "accession": "0001628280-22-004939"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 151724000.0,
          "filed": "2022-03-03",
          "accession": "0001628280-22-004939"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 227051000.0,
          "filed": "2023-02-28",
          "accession": "0001628280-23-005637"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 363044000.0,
          "filed": "2024-02-29",
          "accession": "0001628280-24-007971"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 382907000.0,
          "filed": "2025-02-27",
          "accession": "0001628280-25-008723"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 517829000.0,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 542073000.0,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        }
      ]
    },
    {
      "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": 1011224.0,
          "filed": "2020-03-04",
          "accession": "0001213900-20-005395"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 42189000.0,
          "filed": "2021-03-05",
          "accession": "0001213900-21-013771"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 112745000.0,
          "filed": "2022-03-03",
          "accession": "0001628280-22-004939"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 144364000.0,
          "filed": "2023-02-28",
          "accession": "0001628280-23-005637"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 256729000.0,
          "filed": "2025-02-27",
          "accession": "0001628280-25-008723"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 257227000.0,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 334655000.0,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 342058000.0,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        }
      ]
    },
    {
      "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": 7505000.0,
          "filed": "2021-03-05",
          "accession": "0001213900-21-013771"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 9723000.0,
          "filed": "2022-03-03",
          "accession": "0001628280-22-004939"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 3680000.0,
          "filed": "2023-02-28",
          "accession": "0001628280-23-005637"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 13257000.0,
          "filed": "2024-02-29",
          "accession": "0001628280-24-007971"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 25583000.0,
          "filed": "2025-02-27",
          "accession": "0001628280-25-008723"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 33223000.0,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 18432000.0,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 25266000.0,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        }
      ]
    },
    {
      "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": 2019,
          "period_end": "2019-12-31",
          "value": 9.133242060071328,
          "filed": "2022-03-03",
          "accession": "0001628280-22-004939"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": -11.32158550722033,
          "filed": "2023-02-28",
          "accession": "0001628280-23-005637"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": -3.6444528587656193,
          "filed": "2024-02-29",
          "accession": "0001628280-24-007971"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": -9.40924111542698,
          "filed": "2025-02-27",
          "accession": "0001628280-25-008723"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": -0.5640599533412163,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 1.1526908957101414,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 2.3475877006607146,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        }
      ]
    },
    {
      "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": 2019,
          "period_end": "2019-12-31",
          "value": 13.20504369284857,
          "filed": "2022-03-03",
          "accession": "0001628280-22-004939"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": -13.881724971469136,
          "filed": "2023-02-28",
          "accession": "0001628280-23-005637"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 0.023665278303672852,
          "filed": "2024-02-29",
          "accession": "0001628280-24-007971"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": -6.7662537602823996,
          "filed": "2025-02-27",
          "accession": "0001628280-25-008723"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": -1.7832603624045251,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": -0.6004489818039712,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": -0.4601446723988471,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        }
      ]
    },
    {
      "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": 27.646124809011653,
          "filed": "2022-03-03",
          "accession": "0001213900-21-013771"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 19.996669380504777,
          "filed": "2022-03-03",
          "accession": "0001628280-22-004939"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": -8.30389391263083,
          "filed": "2023-02-28",
          "accession": "0001628280-23-005637"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": -3.3913085606317526,
          "filed": "2024-02-29",
          "accession": "0001628280-24-007971"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": -8.046958495388989,
          "filed": "2025-02-27",
          "accession": "0001628280-25-008723"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": -0.46094743632265794,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 0.7803734437430117,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 1.783523621357271,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        }
      ]
    },
    {
      "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": 4.1499491017377155,
          "filed": "2021-03-05",
          "accession": "0001213900-21-013771"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 15.108134934503923,
          "filed": "2022-03-03",
          "accession": "0001628280-22-004939"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": -7.538217608520059,
          "filed": "2023-02-28",
          "accession": "0001628280-23-005637"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": -2.99938843638375,
          "filed": "2024-02-29",
          "accession": "0001628280-24-007971"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": -7.105505100377968,
          "filed": "2025-02-27",
          "accession": "0001628280-25-008723"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": -0.40559328070961587,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 0.6823800389063006,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 1.5774445659090537,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        }
      ]
    },
    {
      "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.2440192935678121,
          "filed": "2022-03-03",
          "accession": "0001213900-20-005395"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 0.15357856561320404,
          "filed": "2022-03-03",
          "accession": "0001213900-21-013771"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 0.1015725923387203,
          "filed": "2022-03-03",
          "accession": "0001628280-22-004939"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 0.1306666784114582,
          "filed": "2023-02-28",
          "accession": "0001628280-23-005637"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 0.13249633653221096,
          "filed": "2024-02-29",
          "accession": "0001628280-24-007971"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 0.13647700355438788,
          "filed": "2025-02-27",
          "accession": "0001628280-25-008723"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 0.14360532144781385,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 0.13064107601743677,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        }
      ]
    },
    {
      "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.7087212437095616,
          "filed": "2020-03-04",
          "accession": "0001213900-20-005395"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 7.953614457831326,
          "filed": "2021-03-05",
          "accession": "0001213900-21-013771"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 10.107823997597237,
          "filed": "2022-03-03",
          "accession": "0001628280-22-004939"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 7.605902777777778,
          "filed": "2023-02-28",
          "accession": "0001628280-23-005637"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 8.347352105399121,
          "filed": "2024-02-29",
          "accession": "0001628280-24-007971"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 7.673069180304573,
          "filed": "2025-02-27",
          "accession": "0001628280-25-008723"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 7.621057179893418,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 8.434010054879687,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007"
        }
      ]
    }
  ],
  "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": 77342000.0,
          "filed": "2023-08-03",
          "accession": "0001628280-23-027295",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 3,
          "period_label": "2023-Q3",
          "period_end": "2023-09-30",
          "value": 77419000.0,
          "filed": "2023-11-02",
          "accession": "0001628280-23-036440",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 4,
          "period_label": "2023-Q4",
          "period_end": "2023-12-31",
          "value": 78069000.0,
          "filed": "2024-02-29",
          "accession": "0001628280-24-007971",
          "derived": true
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 1,
          "period_label": "2024-Q1",
          "period_end": "2024-03-31",
          "value": 79817000.0,
          "filed": "2024-05-02",
          "accession": "0001628280-24-020035",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 2,
          "period_label": "2024-Q2",
          "period_end": "2024-06-30",
          "value": 83037000.0,
          "filed": "2024-08-01",
          "accession": "0001628280-24-034187",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 3,
          "period_label": "2024-Q3",
          "period_end": "2024-09-30",
          "value": 87435000.0,
          "filed": "2024-10-31",
          "accession": "0001628280-24-044572",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 4,
          "period_label": "2024-Q4",
          "period_end": "2024-12-31",
          "value": 100282000.0,
          "filed": "2025-02-27",
          "accession": "0001628280-25-008723",
          "derived": true
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 1,
          "period_label": "2025-Q1",
          "period_end": "2025-03-31",
          "value": 100415000.0,
          "filed": "2025-05-01",
          "accession": "0001628280-25-021584",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 2,
          "period_label": "2025-Q2",
          "period_end": "2025-06-30",
          "value": 101095000.0,
          "filed": "2025-07-31",
          "accession": "0001628280-25-037042",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 3,
          "period_label": "2025-Q3",
          "period_end": "2025-09-30",
          "value": 104163000.0,
          "filed": "2025-10-30",
          "accession": "0001743725-25-000010",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 4,
          "period_label": "2025-Q4",
          "period_end": "2025-12-31",
          "value": 106154000.0,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007",
          "derived": true
        },
        {
          "fiscal_year": 2026,
          "fiscal_quarter": 1,
          "period_label": "2026-Q1",
          "period_end": "2026-03-31",
          "value": 104100000.0,
          "filed": "2026-04-30",
          "accession": "0001743725-26-000014",
          "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-03-31",
          "value": -7970000.0,
          "filed": "2023-08-03",
          "accession": "0001628280-23-027295",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 3,
          "period_label": "2023-Q3",
          "period_end": "2023-06-30",
          "value": 2627000.0,
          "filed": "2023-11-02",
          "accession": "0001628280-23-036440",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 4,
          "period_label": "2023-Q4",
          "period_end": "2023-12-31",
          "value": 2902000.0,
          "filed": "2024-02-29",
          "accession": "0001628280-24-007971",
          "derived": true
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 1,
          "period_label": "2024-Q1",
          "period_end": "2024-03-31",
          "value": -3948000.0,
          "filed": "2024-05-02",
          "accession": "0001628280-24-020035",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 2,
          "period_label": "2024-Q2",
          "period_end": "2024-03-31",
          "value": -3948000.0,
          "filed": "2024-08-01",
          "accession": "0001628280-24-034187",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 3,
          "period_label": "2024-Q3",
          "period_end": "2024-06-30",
          "value": -817000.0,
          "filed": "2024-10-31",
          "accession": "0001628280-24-044572",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 4,
          "period_label": "2024-Q4",
          "period_end": "2024-12-31",
          "value": 4524000.0,
          "filed": "2025-02-27",
          "accession": "0001628280-25-008723",
          "derived": true
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 1,
          "period_label": "2025-Q1",
          "period_end": "2025-03-31",
          "value": 2912000.0,
          "filed": "2025-05-01",
          "accession": "0001628280-25-021584",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 2,
          "period_label": "2025-Q2",
          "period_end": "2025-03-31",
          "value": 2912000.0,
          "filed": "2025-07-31",
          "accession": "0001628280-25-037042",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 3,
          "period_label": "2025-Q3",
          "period_end": "2025-06-30",
          "value": 5273000.0,
          "filed": "2025-10-30",
          "accession": "0001743725-25-000010",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 4,
          "period_label": "2025-Q4",
          "period_end": "2025-12-31",
          "value": 306000.0,
          "filed": "2026-03-05",
          "accession": "0001743725-26-000007",
          "derived": true
        },
        {
          "fiscal_year": 2026,
          "fiscal_quarter": 1,
          "period_label": "2026-Q1",
          "period_end": "2026-03-31",
          "value": -1473000.0,
          "filed": "2026-04-30",
          "accession": "0001743725-26-000014",
          "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.2,
          "filed": "2022-08-04",
          "accession": "0001628280-22-021108",
          "derived": false
        },
        {
          "fiscal_year": 2022,
          "fiscal_quarter": 3,
          "period_label": "2022-Q3",
          "period_end": "2022-09-30",
          "value": -0.1,
          "filed": "2022-11-03",
          "accession": "0001628280-22-028238",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 1,
          "period_label": "2023-Q1",
          "period_end": "2023-03-31",
          "value": -0.11,
          "filed": "2023-05-04",
          "accession": "0001628280-23-015784",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 2,
          "period_label": "2023-Q2",
          "period_end": "2023-06-30",
          "value": 0.03,
          "filed": "2023-08-03",
          "accession": "0001628280-23-027295",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 3,
          "period_label": "2023-Q3",
          "period_end": "2023-09-30",
          "value": 0.01,
          "filed": "2023-11-02",
          "accession": "0001628280-23-036440",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 1,
          "period_label": "2024-Q1",
          "period_end": "2024-03-31",
          "value": -0.05,
          "filed": "2024-05-02",
          "accession": "0001628280-24-020035",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 2,
          "period_label": "2024-Q2",
          "period_end": "2024-06-30",
          "value": -0.01,
          "filed": "2024-08-01",
          "accession": "0001628280-24-034187",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 3,
          "period_label": "2024-Q3",
          "period_end": "2024-09-30",
          "value": 0.05,
          "filed": "2024-10-31",
          "accession": "0001628280-24-044572",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 1,
          "period_label": "2025-Q1",
          "period_end": "2025-03-31",
          "value": 0.03,
          "filed": "2025-05-01",
          "accession": "0001628280-25-021584",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 2,
          "period_label": "2025-Q2",
          "period_end": "2025-06-30",
          "value": 0.06,
          "filed": "2025-07-31",
          "accession": "0001628280-25-037042",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 3,
          "period_label": "2025-Q3",
          "period_end": "2025-09-30",
          "value": 0.01,
          "filed": "2025-10-30",
          "accession": "0001743725-25-000010",
          "derived": false
        },
        {
          "fiscal_year": 2026,
          "fiscal_quarter": 1,
          "period_label": "2026-Q1",
          "period_end": "2026-03-31",
          "value": -0.02,
          "filed": "2026-04-30",
          "accession": "0001743725-26-000014",
          "derived": false
        }
      ]
    }
  ]
}
