{
  "ticker": "MANH",
  "name": "MANHATTAN ASSOCIATES INC",
  "cik": "0001056696",
  "sic": "7372",
  "sic_description": "Services-Prepackaged Software",
  "source": "SEC XBRL companyfacts",
  "source_url": "https://data.sec.gov/api/xbrl/companyfacts/CIK0001056696.json",
  "as_of": "2026-02-04",
  "note": "Verified SEC companyfacts-derived facts; derived metrics (margins, ratios, free cash flow) are computed from those facts. Descriptive data, not investment advice.",
  "annual": [
    {
      "metric_id": "revenue",
      "label": "Revenue",
      "concept": "RevenueFromContractWithCustomerExcludingAssessedTax",
      "unit": "USD",
      "derived": false,
      "source_concepts": [
        "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax"
      ],
      "points": [
        {
          "fiscal_year": 2016,
          "period_end": "2016-12-31",
          "value": 604557000.0,
          "filed": "2019-02-08",
          "accession": "0001564590-19-002439"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 594599000.0,
          "filed": "2020-02-10",
          "accession": "0001564590-20-003915"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 559157000.0,
          "filed": "2021-02-05",
          "accession": "0001564590-21-004542"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 617949000.0,
          "filed": "2022-02-07",
          "accession": "0001564590-22-004100"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 586372000.0,
          "filed": "2023-02-06",
          "accession": "0000950170-23-001892"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 663643000.0,
          "filed": "2024-02-06",
          "accession": "0000950170-24-011411"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 767084000.0,
          "filed": "2025-02-07",
          "accession": "0000950170-25-016295"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 928725000.0,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 1042352000.0,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 1081392000.0,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        }
      ]
    },
    {
      "metric_id": "net_income",
      "label": "Net income",
      "concept": "NetIncomeLoss",
      "unit": "USD",
      "derived": false,
      "source_concepts": [
        "us-gaap:NetIncomeLoss"
      ],
      "points": [
        {
          "fiscal_year": 2016,
          "period_end": "2016-12-31",
          "value": 124234000.0,
          "filed": "2019-02-08",
          "accession": "0001564590-19-002439"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 116481000.0,
          "filed": "2020-02-10",
          "accession": "0001564590-20-003915"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 104690000.0,
          "filed": "2021-02-05",
          "accession": "0001564590-21-004542"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 85762000.0,
          "filed": "2022-02-07",
          "accession": "0001564590-22-004100"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 87240000.0,
          "filed": "2023-02-06",
          "accession": "0000950170-23-001892"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 110472000.0,
          "filed": "2024-02-06",
          "accession": "0000950170-24-011411"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 128959000.0,
          "filed": "2025-02-07",
          "accession": "0000950170-25-016295"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 176568000.0,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 218364000.0,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 219948000.0,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        }
      ]
    },
    {
      "metric_id": "operating_income",
      "label": "Operating income",
      "concept": "OperatingIncomeLoss",
      "unit": "USD",
      "derived": false,
      "source_concepts": [
        "us-gaap:OperatingIncomeLoss"
      ],
      "points": [
        {
          "fiscal_year": 2016,
          "period_end": "2016-12-31",
          "value": 194307000.0,
          "filed": "2019-02-08",
          "accession": "0001564590-19-002439"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 185645000.0,
          "filed": "2020-02-10",
          "accession": "0001564590-20-003915"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 133887000.0,
          "filed": "2021-02-05",
          "accession": "0001564590-21-004542"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 115924000.0,
          "filed": "2022-02-07",
          "accession": "0001564590-22-004100"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 114061000.0,
          "filed": "2023-02-06",
          "accession": "0000950170-23-001892"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 134333000.0,
          "filed": "2024-02-06",
          "accession": "0000950170-24-011411"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 152700000.0,
          "filed": "2025-02-07",
          "accession": "0000950170-25-016295"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 209881000.0,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 261596000.0,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 279800000.0,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        }
      ]
    },
    {
      "metric_id": "eps_diluted",
      "label": "Diluted EPS",
      "concept": "EarningsPerShareDiluted",
      "unit": "USD/shares",
      "derived": false,
      "source_concepts": [
        "us-gaap:EarningsPerShareDiluted"
      ],
      "points": [
        {
          "fiscal_year": 2016,
          "period_end": "2016-12-31",
          "value": 1.72,
          "filed": "2019-02-08",
          "accession": "0001564590-19-002439"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 1.68,
          "filed": "2020-02-10",
          "accession": "0001564590-20-003915"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 1.58,
          "filed": "2021-02-05",
          "accession": "0001564590-21-004542"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 1.32,
          "filed": "2022-02-07",
          "accession": "0001564590-22-004100"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 1.36,
          "filed": "2023-02-06",
          "accession": "0000950170-23-001892"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 1.72,
          "filed": "2024-02-06",
          "accession": "0000950170-24-011411"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 2.03,
          "filed": "2025-02-07",
          "accession": "0000950170-25-016295"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 2.82,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 3.51,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 3.6,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        }
      ]
    },
    {
      "metric_id": "operating_cash_flow",
      "label": "Operating cash flow",
      "concept": "NetCashProvidedByUsedInOperatingActivities",
      "unit": "USD",
      "derived": false,
      "source_concepts": [
        "us-gaap:NetCashProvidedByUsedInOperatingActivities"
      ],
      "points": [
        {
          "fiscal_year": 2016,
          "period_end": "2016-12-31",
          "value": 139346000.0,
          "filed": "2019-02-08",
          "accession": "0001564590-19-002439"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 164066000.0,
          "filed": "2020-02-10",
          "accession": "0001564590-20-003915"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 137349000.0,
          "filed": "2021-02-05",
          "accession": "0001564590-21-004542"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 146908000.0,
          "filed": "2022-02-07",
          "accession": "0001564590-22-004100"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 140885000.0,
          "filed": "2023-02-06",
          "accession": "0000950170-23-001892"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 185183000.0,
          "filed": "2024-02-06",
          "accession": "0000950170-24-011411"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 179630000.0,
          "filed": "2025-02-07",
          "accession": "0000950170-25-016295"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 246218000.0,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 295003000.0,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 389470000.0,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        }
      ]
    },
    {
      "metric_id": "capex",
      "label": "Capital expenditures",
      "concept": "PaymentsToAcquirePropertyPlantAndEquipment",
      "unit": "USD",
      "derived": false,
      "source_concepts": [
        "us-gaap:PaymentsToAcquirePropertyPlantAndEquipment"
      ],
      "points": [
        {
          "fiscal_year": 2016,
          "period_end": "2016-12-31",
          "value": 6843000.0,
          "filed": "2019-02-08",
          "accession": "0001564590-19-002439"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 6199000.0,
          "filed": "2020-02-10",
          "accession": "0001564590-20-003915"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 7306000.0,
          "filed": "2021-02-05",
          "accession": "0001564590-21-004542"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 15193000.0,
          "filed": "2022-02-07",
          "accession": "0001564590-22-004100"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 2730000.0,
          "filed": "2023-02-06",
          "accession": "0000950170-23-001892"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 4016000.0,
          "filed": "2024-02-06",
          "accession": "0000950170-24-011411"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 6587000.0,
          "filed": "2025-02-07",
          "accession": "0000950170-25-016295"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 4730000.0,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 8675000.0,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 15457000.0,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        }
      ]
    },
    {
      "metric_id": "share_buybacks",
      "label": "Share buybacks",
      "concept": "PaymentsForRepurchaseOfCommonStock",
      "unit": "USD",
      "derived": false,
      "source_concepts": [
        "us-gaap:PaymentsForRepurchaseOfCommonStock"
      ],
      "points": [
        {
          "fiscal_year": 2016,
          "period_end": "2016-12-31",
          "value": 167933000.0,
          "filed": "2019-02-08",
          "accession": "0001564590-19-002439"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 131707000.0,
          "filed": "2020-02-10",
          "accession": "0001564590-20-003915"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 149322000.0,
          "filed": "2021-02-05",
          "accession": "0001564590-21-004542"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 121487000.0,
          "filed": "2022-02-07",
          "accession": "0001564590-22-004100"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 43561000.0,
          "filed": "2023-02-06",
          "accession": "0000950170-23-001892"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 120418000.0,
          "filed": "2024-02-06",
          "accession": "0000950170-24-011411"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 204460000.0,
          "filed": "2025-02-07",
          "accession": "0000950170-25-016295"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 196047000.0,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 286366000.0,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 315162000.0,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        }
      ]
    },
    {
      "metric_id": "assets",
      "label": "Assets",
      "concept": "Assets",
      "unit": "USD",
      "derived": false,
      "source_concepts": [
        "us-gaap:Assets"
      ],
      "points": [
        {
          "fiscal_year": 2016,
          "period_end": "2016-12-31",
          "value": 297140000.0,
          "filed": "2018-02-09",
          "accession": "0001564590-18-001747"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 314995000.0,
          "filed": "2019-02-08",
          "accession": "0001564590-19-002439"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 307150000.0,
          "filed": "2020-02-10",
          "accession": "0001564590-20-003915"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 372279000.0,
          "filed": "2021-02-05",
          "accession": "0001564590-21-004542"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 465412000.0,
          "filed": "2022-02-07",
          "accession": "0001564590-22-004100"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 539708000.0,
          "filed": "2023-02-06",
          "accession": "0000950170-23-001892"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 570178000.0,
          "filed": "2024-02-06",
          "accession": "0000950170-24-011411"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 673353000.0,
          "filed": "2025-02-07",
          "accession": "0000950170-25-016295"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 757551000.0,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 839388000.0,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        }
      ]
    },
    {
      "metric_id": "equity",
      "label": "Stockholders' equity",
      "concept": "StockholdersEquity",
      "unit": "USD",
      "derived": false,
      "source_concepts": [
        "us-gaap:StockholdersEquity"
      ],
      "points": [
        {
          "fiscal_year": 2016,
          "period_end": "2016-12-31",
          "value": 169366000.0,
          "filed": "2020-02-10",
          "accession": "0001564590-20-003915"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 174956000.0,
          "filed": "2021-02-05",
          "accession": "0001564590-21-004542"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 147147000.0,
          "filed": "2022-02-07",
          "accession": "0001564590-22-004100"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 142278000.0,
          "filed": "2023-02-06",
          "accession": "0000950170-23-001892"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 218897000.0,
          "filed": "2024-02-06",
          "accession": "0000950170-24-011411"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 250644000.0,
          "filed": "2025-02-07",
          "accession": "0000950170-25-016295"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 226800000.0,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 278278000.0,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 299126000.0,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 314765000.0,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        }
      ]
    },
    {
      "metric_id": "cash",
      "label": "Cash and cash equivalents",
      "concept": "CashAndCashEquivalentsAtCarryingValue",
      "unit": "USD",
      "derived": false,
      "source_concepts": [
        "us-gaap:CashAndCashEquivalentsAtCarryingValue"
      ],
      "points": [
        {
          "fiscal_year": 2016,
          "period_end": "2016-12-31",
          "value": 95615000.0,
          "filed": "2019-02-08",
          "accession": "0001564590-19-002439"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 125522000.0,
          "filed": "2019-02-08",
          "accession": "0001564590-19-002439"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 99126000.0,
          "filed": "2020-02-10",
          "accession": "0001564590-20-003915"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 110678000.0,
          "filed": "2021-02-05",
          "accession": "0001564590-21-004542"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 204705000.0,
          "filed": "2022-02-07",
          "accession": "0001564590-22-004100"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 263706000.0,
          "filed": "2023-02-06",
          "accession": "0000950170-23-001892"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 225463000.0,
          "filed": "2024-02-06",
          "accession": "0000950170-24-011411"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 270741000.0,
          "filed": "2025-02-07",
          "accession": "0000950170-25-016295"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 266230000.0,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 328747000.0,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        }
      ]
    },
    {
      "metric_id": "free_cash_flow",
      "label": "Free cash flow",
      "concept": "NetCashProvidedByUsedInOperatingActivities - PaymentsToAcquirePropertyPlantAndEquipment",
      "unit": "USD",
      "derived": true,
      "source_concepts": [
        "us-gaap:NetCashProvidedByUsedInOperatingActivities",
        "us-gaap:PaymentsToAcquirePropertyPlantAndEquipment"
      ],
      "points": [
        {
          "fiscal_year": 2016,
          "period_end": "2016-12-31",
          "value": 132503000.0,
          "filed": "2019-02-08",
          "accession": "0001564590-19-002439"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 157867000.0,
          "filed": "2020-02-10",
          "accession": "0001564590-20-003915"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 130043000.0,
          "filed": "2021-02-05",
          "accession": "0001564590-21-004542"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 131715000.0,
          "filed": "2022-02-07",
          "accession": "0001564590-22-004100"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 138155000.0,
          "filed": "2023-02-06",
          "accession": "0000950170-23-001892"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 181167000.0,
          "filed": "2024-02-06",
          "accession": "0000950170-24-011411"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 173043000.0,
          "filed": "2025-02-07",
          "accession": "0000950170-25-016295"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 241488000.0,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 286328000.0,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 374013000.0,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        }
      ]
    },
    {
      "metric_id": "net_margin",
      "label": "Net margin",
      "concept": "NetIncomeLoss / RevenueFromContractWithCustomerExcludingAssessedTax",
      "unit": "Percent",
      "derived": true,
      "source_concepts": [
        "us-gaap:NetIncomeLoss",
        "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax"
      ],
      "points": [
        {
          "fiscal_year": 2016,
          "period_end": "2016-12-31",
          "value": 20.54959251154151,
          "filed": "2019-02-08",
          "accession": "0001564590-19-002439"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 19.589841220721866,
          "filed": "2020-02-10",
          "accession": "0001564590-20-003915"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 18.722827399102577,
          "filed": "2021-02-05",
          "accession": "0001564590-21-004542"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 13.878491590729979,
          "filed": "2022-02-07",
          "accession": "0001564590-22-004100"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 14.877927322587025,
          "filed": "2023-02-06",
          "accession": "0000950170-23-001892"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 16.646299290431756,
          "filed": "2024-02-06",
          "accession": "0000950170-24-011411"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 16.81158777917412,
          "filed": "2025-02-07",
          "accession": "0000950170-25-016295"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 19.011871113623517,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 20.949161127910727,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 20.33934040569932,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        }
      ]
    },
    {
      "metric_id": "operating_margin",
      "label": "Operating margin",
      "concept": "OperatingIncomeLoss / RevenueFromContractWithCustomerExcludingAssessedTax",
      "unit": "Percent",
      "derived": true,
      "source_concepts": [
        "us-gaap:OperatingIncomeLoss",
        "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax"
      ],
      "points": [
        {
          "fiscal_year": 2016,
          "period_end": "2016-12-31",
          "value": 32.14039370977426,
          "filed": "2019-02-08",
          "accession": "0001564590-19-002439"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 31.22188231059924,
          "filed": "2020-02-10",
          "accession": "0001564590-20-003915"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 23.944437787598115,
          "filed": "2021-02-05",
          "accession": "0001564590-21-004542"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 18.759476914761574,
          "filed": "2022-02-07",
          "accession": "0001564590-22-004100"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 19.451986111205855,
          "filed": "2023-02-06",
          "accession": "0000950170-23-001892"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 20.241756486544723,
          "filed": "2024-02-06",
          "accession": "0000950170-24-011411"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 19.906555214292045,
          "filed": "2025-02-07",
          "accession": "0000950170-25-016295"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 22.598831731675144,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 25.096704376256774,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 25.874058620740676,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        }
      ]
    },
    {
      "metric_id": "roe",
      "label": "Return on equity",
      "concept": "NetIncomeLoss / StockholdersEquity",
      "unit": "Percent",
      "derived": true,
      "source_concepts": [
        "us-gaap:NetIncomeLoss",
        "us-gaap:StockholdersEquity"
      ],
      "points": [
        {
          "fiscal_year": 2016,
          "period_end": "2016-12-31",
          "value": 73.35238477616522,
          "filed": "2020-02-10",
          "accession": "0001564590-19-002439"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 66.5773108667322,
          "filed": "2021-02-05",
          "accession": "0001564590-20-003915"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 71.14654053429564,
          "filed": "2022-02-07",
          "accession": "0001564590-21-004542"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 60.27776606362192,
          "filed": "2023-02-06",
          "accession": "0001564590-22-004100"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 39.85436072673449,
          "filed": "2024-02-06",
          "accession": "0000950170-23-001892"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 44.0752621247666,
          "filed": "2025-02-07",
          "accession": "0000950170-24-011411"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 56.86022927689594,
          "filed": "2026-02-04",
          "accession": "0000950170-25-016295"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 63.4502188459023,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 73.0006753007094,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 69.87689228472036,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        }
      ]
    },
    {
      "metric_id": "roa",
      "label": "Return on assets",
      "concept": "NetIncomeLoss / Assets",
      "unit": "Percent",
      "derived": true,
      "source_concepts": [
        "us-gaap:NetIncomeLoss",
        "us-gaap:Assets"
      ],
      "points": [
        {
          "fiscal_year": 2016,
          "period_end": "2016-12-31",
          "value": 41.809921249242784,
          "filed": "2019-02-08",
          "accession": "0001564590-19-002439"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 36.97868220130478,
          "filed": "2020-02-10",
          "accession": "0001564590-20-003915"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 34.08432362038092,
          "filed": "2021-02-05",
          "accession": "0001564590-21-004542"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 23.037023307787976,
          "filed": "2022-02-07",
          "accession": "0001564590-22-004100"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 18.744682131101044,
          "filed": "2023-02-06",
          "accession": "0000950170-23-001892"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 20.468846116789077,
          "filed": "2024-02-06",
          "accession": "0000950170-24-011411"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 22.617323011410473,
          "filed": "2025-02-07",
          "accession": "0000950170-25-016295"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 26.222204400960564,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 28.824990000673225,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 26.20337674591488,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        }
      ]
    },
    {
      "metric_id": "current_ratio",
      "label": "Current ratio",
      "concept": "AssetsCurrent / LiabilitiesCurrent",
      "unit": "Ratio",
      "derived": true,
      "source_concepts": [
        "us-gaap:AssetsCurrent",
        "us-gaap:LiabilitiesCurrent"
      ],
      "points": [
        {
          "fiscal_year": 2016,
          "period_end": "2016-12-31",
          "value": 1.7597137101229992,
          "filed": "2018-02-09",
          "accession": "0001564590-18-001747"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 1.8355237213794213,
          "filed": "2019-02-08",
          "accession": "0001564590-19-002439"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 1.4826935785879503,
          "filed": "2020-02-10",
          "accession": "0001564590-20-003915"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 1.2777869556598163,
          "filed": "2021-02-05",
          "accession": "0001564590-21-004542"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 1.6957601047790198,
          "filed": "2022-02-07",
          "accession": "0001564590-22-004100"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 1.6399603279768071,
          "filed": "2023-02-06",
          "accession": "0000950170-23-001892"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 1.3161647047640173,
          "filed": "2024-02-06",
          "accession": "0000950170-24-011411"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 1.3095664293620104,
          "filed": "2025-02-07",
          "accession": "0000950170-25-016295"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 1.2572045245613335,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 1.2794941140085938,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138"
        }
      ]
    }
  ],
  "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": 231016000.0,
          "filed": "2023-07-28",
          "accession": "0000950170-23-035377",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 3,
          "period_label": "2023-Q3",
          "period_end": "2023-09-30",
          "value": 238441000.0,
          "filed": "2023-10-26",
          "accession": "0000950170-23-055604",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 4,
          "period_label": "2023-Q4",
          "period_end": "2023-12-31",
          "value": 238255000.0,
          "filed": "2024-02-06",
          "accession": "0000950170-24-011411",
          "derived": true
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 1,
          "period_label": "2024-Q1",
          "period_end": "2024-03-31",
          "value": 254552000.0,
          "filed": "2024-04-26",
          "accession": "0000950170-24-049203",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 2,
          "period_label": "2024-Q2",
          "period_end": "2024-06-30",
          "value": 265318000.0,
          "filed": "2024-07-26",
          "accession": "0000950170-24-086805",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 3,
          "period_label": "2024-Q3",
          "period_end": "2024-09-30",
          "value": 266681000.0,
          "filed": "2024-10-25",
          "accession": "0000950170-24-117433",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 4,
          "period_label": "2024-Q4",
          "period_end": "2024-12-31",
          "value": 255801000.0,
          "filed": "2025-02-07",
          "accession": "0000950170-25-016295",
          "derived": true
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 1,
          "period_label": "2025-Q1",
          "period_end": "2025-03-31",
          "value": 262787000.0,
          "filed": "2025-04-25",
          "accession": "0000950170-25-058642",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 2,
          "period_label": "2025-Q2",
          "period_end": "2025-06-30",
          "value": 272421000.0,
          "filed": "2025-07-25",
          "accession": "0000950170-25-098656",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 3,
          "period_label": "2025-Q3",
          "period_end": "2025-09-30",
          "value": 275795000.0,
          "filed": "2025-10-24",
          "accession": "0001193125-25-249633",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 4,
          "period_label": "2025-Q4",
          "period_end": "2025-12-31",
          "value": 270389000.0,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138",
          "derived": true
        },
        {
          "fiscal_year": 2026,
          "fiscal_quarter": 1,
          "period_label": "2026-Q1",
          "period_end": "2026-03-31",
          "value": 282215000.0,
          "filed": "2026-04-24",
          "accession": "0001193125-26-175715",
          "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": 39620000.0,
          "filed": "2023-07-28",
          "accession": "0000950170-23-035377",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 3,
          "period_label": "2023-Q3",
          "period_end": "2023-09-30",
          "value": 49421000.0,
          "filed": "2023-10-26",
          "accession": "0000950170-23-055604",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 4,
          "period_label": "2023-Q4",
          "period_end": "2023-12-31",
          "value": 48736000.0,
          "filed": "2024-02-06",
          "accession": "0000950170-24-011411",
          "derived": true
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 1,
          "period_label": "2024-Q1",
          "period_end": "2024-03-31",
          "value": 53801000.0,
          "filed": "2024-04-26",
          "accession": "0000950170-24-049203",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 2,
          "period_label": "2024-Q2",
          "period_end": "2024-06-30",
          "value": 52766000.0,
          "filed": "2024-07-26",
          "accession": "0000950170-24-086805",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 3,
          "period_label": "2024-Q3",
          "period_end": "2024-09-30",
          "value": 63781000.0,
          "filed": "2024-10-25",
          "accession": "0000950170-24-117433",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 4,
          "period_label": "2024-Q4",
          "period_end": "2024-12-31",
          "value": 48016000.0,
          "filed": "2025-02-07",
          "accession": "0000950170-25-016295",
          "derived": true
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 1,
          "period_label": "2025-Q1",
          "period_end": "2025-03-31",
          "value": 52582000.0,
          "filed": "2025-04-25",
          "accession": "0000950170-25-058642",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 2,
          "period_label": "2025-Q2",
          "period_end": "2025-06-30",
          "value": 56780000.0,
          "filed": "2025-07-25",
          "accession": "0000950170-25-098656",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 3,
          "period_label": "2025-Q3",
          "period_end": "2025-09-30",
          "value": 58633000.0,
          "filed": "2025-10-24",
          "accession": "0001193125-25-249633",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 4,
          "period_label": "2025-Q4",
          "period_end": "2025-12-31",
          "value": 51953000.0,
          "filed": "2026-02-04",
          "accession": "0001193125-26-037138",
          "derived": true
        },
        {
          "fiscal_year": 2026,
          "fiscal_quarter": 1,
          "period_label": "2026-Q1",
          "period_end": "2026-03-31",
          "value": 49295000.0,
          "filed": "2026-04-24",
          "accession": "0001193125-26-175715",
          "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.49,
          "filed": "2022-07-28",
          "accession": "0001564590-22-026857",
          "derived": false
        },
        {
          "fiscal_year": 2022,
          "fiscal_quarter": 3,
          "period_label": "2022-Q3",
          "period_end": "2022-09-30",
          "value": 0.47,
          "filed": "2022-10-28",
          "accession": "0000950170-22-020437",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 1,
          "period_label": "2023-Q1",
          "period_end": "2023-03-31",
          "value": 0.62,
          "filed": "2023-04-28",
          "accession": "0000950170-23-015838",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 2,
          "period_label": "2023-Q2",
          "period_end": "2023-06-30",
          "value": 0.63,
          "filed": "2023-07-28",
          "accession": "0000950170-23-035377",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 3,
          "period_label": "2023-Q3",
          "period_end": "2023-09-30",
          "value": 0.79,
          "filed": "2023-10-26",
          "accession": "0000950170-23-055604",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 1,
          "period_label": "2024-Q1",
          "period_end": "2024-03-31",
          "value": 0.86,
          "filed": "2024-04-26",
          "accession": "0000950170-24-049203",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 2,
          "period_label": "2024-Q2",
          "period_end": "2024-06-30",
          "value": 0.85,
          "filed": "2024-07-26",
          "accession": "0000950170-24-086805",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 3,
          "period_label": "2024-Q3",
          "period_end": "2024-09-30",
          "value": 1.03,
          "filed": "2024-10-25",
          "accession": "0000950170-24-117433",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 1,
          "period_label": "2025-Q1",
          "period_end": "2025-03-31",
          "value": 0.85,
          "filed": "2025-04-25",
          "accession": "0000950170-25-058642",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 2,
          "period_label": "2025-Q2",
          "period_end": "2025-06-30",
          "value": 0.93,
          "filed": "2025-07-25",
          "accession": "0000950170-25-098656",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 3,
          "period_label": "2025-Q3",
          "period_end": "2025-09-30",
          "value": 0.96,
          "filed": "2025-10-24",
          "accession": "0001193125-25-249633",
          "derived": false
        },
        {
          "fiscal_year": 2026,
          "fiscal_quarter": 1,
          "period_label": "2026-Q1",
          "period_end": "2026-03-31",
          "value": 0.82,
          "filed": "2026-04-24",
          "accession": "0001193125-26-175715",
          "derived": false
        }
      ]
    }
  ]
}
