{
  "ticker": "BMI",
  "name": "BADGER METER INC",
  "cik": "0000009092",
  "sic": "3824",
  "sic_description": "Totalizing Fluid Meters & Counting Devices",
  "source": "SEC XBRL companyfacts",
  "source_url": "https://data.sec.gov/api/xbrl/companyfacts/CIK0000009092.json",
  "as_of": "2026-02-17",
  "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": 393761000.0,
          "filed": "2019-02-26",
          "accession": "0001564590-19-004479"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 402440000.0,
          "filed": "2020-02-21",
          "accession": "0001564590-20-005707"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 433732000.0,
          "filed": "2021-02-24",
          "accession": "0001564590-21-008150"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 424625000.0,
          "filed": "2022-02-23",
          "accession": "0001564590-22-006284"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 425544000.0,
          "filed": "2023-02-22",
          "accession": "0000950170-23-003676"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 505198000.0,
          "filed": "2024-02-16",
          "accession": "0000950170-24-016245"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 565568000.0,
          "filed": "2025-02-14",
          "accession": "0000950170-25-020889"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 703592000.0,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 826558000.0,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 916663000.0,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        }
      ]
    },
    {
      "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": 32295000.0,
          "filed": "2019-02-26",
          "accession": "0001564590-19-004479"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 34571000.0,
          "filed": "2020-02-21",
          "accession": "0001564590-20-005707"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 27790000.0,
          "filed": "2021-02-24",
          "accession": "0001564590-21-008150"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 47177000.0,
          "filed": "2022-02-23",
          "accession": "0001564590-22-006284"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 49343000.0,
          "filed": "2023-02-22",
          "accession": "0000950170-23-003676"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 60884000.0,
          "filed": "2024-02-16",
          "accession": "0000950170-24-016245"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 66496000.0,
          "filed": "2025-02-14",
          "accession": "0000950170-25-020889"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 92598000.0,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 124942000.0,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 141634000.0,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        }
      ]
    },
    {
      "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": 52672000.0,
          "filed": "2019-02-26",
          "accession": "0001564590-19-004479"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 56595000.0,
          "filed": "2020-02-21",
          "accession": "0001564590-20-005707"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 56869000.0,
          "filed": "2021-02-24",
          "accession": "0001564590-21-008150"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 62148000.0,
          "filed": "2022-02-23",
          "accession": "0001564590-22-006284"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 65156000.0,
          "filed": "2023-02-22",
          "accession": "0000950170-23-003676"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 78723000.0,
          "filed": "2024-02-16",
          "accession": "0000950170-24-016245"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 87295000.0,
          "filed": "2025-02-14",
          "accession": "0000950170-25-020889"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 118049000.0,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 157936000.0,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 183421000.0,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        }
      ]
    },
    {
      "metric_id": "gross_profit",
      "label": "Gross profit",
      "concept": "GrossProfit",
      "unit": "USD",
      "derived": false,
      "source_concepts": [
        "us-gaap:GrossProfit"
      ],
      "points": [
        {
          "fiscal_year": 2016,
          "period_end": "2016-12-31",
          "value": 150576000.0,
          "filed": "2019-02-26",
          "accession": "0001564590-19-004479"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 155746000.0,
          "filed": "2020-02-21",
          "accession": "0001564590-20-005707"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 162349000.0,
          "filed": "2021-02-24",
          "accession": "0001564590-21-008150"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 163528000.0,
          "filed": "2022-02-23",
          "accession": "0001564590-22-006284"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 168249000.0,
          "filed": "2023-02-22",
          "accession": "0000950170-23-003676"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 205484000.0,
          "filed": "2024-02-16",
          "accession": "0000950170-24-016245"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 219970000.0,
          "filed": "2025-02-14",
          "accession": "0000950170-25-020889"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 276438000.0,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 329184000.0,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 382070000.0,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        }
      ]
    },
    {
      "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.11,
          "filed": "2019-02-26",
          "accession": "0001564590-19-004479"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 1.19,
          "filed": "2020-02-21",
          "accession": "0001564590-20-005707"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 0.95,
          "filed": "2021-02-24",
          "accession": "0001564590-21-008150"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 1.61,
          "filed": "2022-02-23",
          "accession": "0001564590-22-006284"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 1.69,
          "filed": "2023-02-22",
          "accession": "0000950170-23-003676"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 2.08,
          "filed": "2024-02-16",
          "accession": "0000950170-24-016245"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 2.26,
          "filed": "2025-02-14",
          "accession": "0000950170-25-020889"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 3.14,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 4.23,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 4.79,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        }
      ]
    },
    {
      "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": 56185000.0,
          "filed": "2019-02-26",
          "accession": "0001564590-19-004479"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 49751000.0,
          "filed": "2020-02-21",
          "accession": "0001564590-20-005707"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 60350000.0,
          "filed": "2021-02-24",
          "accession": "0001564590-21-008150"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 80714000.0,
          "filed": "2022-02-23",
          "accession": "0001564590-22-006284"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 89578000.0,
          "filed": "2023-02-22",
          "accession": "0000950170-23-003676"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 87510000.0,
          "filed": "2024-02-16",
          "accession": "0000950170-24-016245"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 82451000.0,
          "filed": "2025-02-14",
          "accession": "0000950170-25-020889"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 110117000.0,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 155034000.0,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 183698000.0,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        }
      ]
    },
    {
      "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": 10596000.0,
          "filed": "2019-02-26",
          "accession": "0001564590-19-004479"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 15069000.0,
          "filed": "2020-02-21",
          "accession": "0001564590-20-005707"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 8643000.0,
          "filed": "2021-02-24",
          "accession": "0001564590-21-008150"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 7496000.0,
          "filed": "2022-02-23",
          "accession": "0001564590-22-006284"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 9059000.0,
          "filed": "2023-02-22",
          "accession": "0000950170-23-003676"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 6746000.0,
          "filed": "2024-02-16",
          "accession": "0000950170-24-016245"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 5891000.0,
          "filed": "2025-02-14",
          "accession": "0000950170-25-020889"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 12003000.0,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 12818000.0,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 14026000.0,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        }
      ]
    },
    {
      "metric_id": "dividends_paid",
      "label": "Dividends paid",
      "concept": "PaymentsOfDividendsCommonStock",
      "unit": "USD",
      "derived": false,
      "source_concepts": [
        "us-gaap:PaymentsOfDividendsCommonStock"
      ],
      "points": [
        {
          "fiscal_year": 2016,
          "period_end": "2016-12-31",
          "value": 12461000.0,
          "filed": "2019-02-26",
          "accession": "0001564590-19-004479"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 14215000.0,
          "filed": "2020-02-21",
          "accession": "0001564590-20-005707"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 16265000.0,
          "filed": "2021-02-24",
          "accession": "0001564590-21-008150"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 18595000.0,
          "filed": "2022-02-23",
          "accession": "0001564590-22-006284"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 20340000.0,
          "filed": "2023-02-22",
          "accession": "0000950170-23-003676"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 22155000.0,
          "filed": "2024-02-16",
          "accession": "0000950170-24-016245"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 24881000.0,
          "filed": "2025-02-14",
          "accession": "0000950170-25-020889"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 29052000.0,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 35847000.0,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 43529000.0,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        }
      ]
    },
    {
      "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": 0.0,
          "filed": "2019-02-26",
          "accession": "0001564590-19-004479"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 4402000.0,
          "filed": "2020-02-21",
          "accession": "0001564590-20-005707"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 4795000.0,
          "filed": "2021-02-24",
          "accession": "0001564590-21-008150"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 5207000.0,
          "filed": "2022-02-23",
          "accession": "0001564590-22-006284"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 3116000.0,
          "filed": "2023-02-22",
          "accession": "0000950170-23-003676"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 460000.0,
          "filed": "2024-02-16",
          "accession": "0000950170-24-016245"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 427000.0,
          "filed": "2025-02-14",
          "accession": "0000950170-25-020889"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 0.0,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 0.0,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 15002000.0,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        }
      ]
    },
    {
      "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": 349699000.0,
          "filed": "2018-03-01",
          "accession": "0000009092-18-000002"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 391727000.0,
          "filed": "2019-02-26",
          "accession": "0001564590-19-004479"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 392691000.0,
          "filed": "2020-02-21",
          "accession": "0001564590-20-005707"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 421893000.0,
          "filed": "2021-02-24",
          "accession": "0001564590-21-008150"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 471217000.0,
          "filed": "2022-02-23",
          "accession": "0001564590-22-006284"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 530818000.0,
          "filed": "2023-02-22",
          "accession": "0000950170-23-003676"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 603047000.0,
          "filed": "2024-02-16",
          "accession": "0000950170-24-016245"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 716919000.0,
          "filed": "2025-02-14",
          "accession": "0000950170-25-020889"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 816413000.0,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 973577000.0,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        }
      ]
    },
    {
      "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": 256209000.0,
          "filed": "2020-02-21",
          "accession": "0001564590-20-005707"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 277452000.0,
          "filed": "2021-02-24",
          "accession": "0001564590-21-008150"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 303503000.0,
          "filed": "2022-02-23",
          "accession": "0001564590-22-006284"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 331068000.0,
          "filed": "2023-02-22",
          "accession": "0000950170-23-003676"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 361259000.0,
          "filed": "2024-02-16",
          "accession": "0000950170-24-016245"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 403070000.0,
          "filed": "2025-02-14",
          "accession": "0000950170-25-020889"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 442422000.0,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 516482000.0,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 606232000.0,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 713294000.0,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        }
      ]
    },
    {
      "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": 45589000.0,
          "filed": "2019-02-26",
          "accession": "0001564590-19-004479"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 34682000.0,
          "filed": "2020-02-21",
          "accession": "0001564590-20-005707"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 51707000.0,
          "filed": "2021-02-24",
          "accession": "0001564590-21-008150"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 73218000.0,
          "filed": "2022-02-23",
          "accession": "0001564590-22-006284"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 80519000.0,
          "filed": "2023-02-22",
          "accession": "0000950170-23-003676"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 80764000.0,
          "filed": "2024-02-16",
          "accession": "0000950170-24-016245"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 76560000.0,
          "filed": "2025-02-14",
          "accession": "0000950170-25-020889"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 98114000.0,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 142216000.0,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 169672000.0,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        }
      ]
    },
    {
      "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": 8.201675635728272,
          "filed": "2019-02-26",
          "accession": "0001564590-19-004479"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 8.590348871881522,
          "filed": "2020-02-21",
          "accession": "0001564590-20-005707"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 6.407182315346804,
          "filed": "2021-02-24",
          "accession": "0001564590-21-008150"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 11.11027377097439,
          "filed": "2022-02-23",
          "accession": "0001564590-22-006284"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 11.595275694170287,
          "filed": "2023-02-22",
          "accession": "0000950170-23-003676"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 12.051512476296422,
          "filed": "2024-02-16",
          "accession": "0000950170-24-016245"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 11.757383727509335,
          "filed": "2025-02-14",
          "accession": "0000950170-25-020889"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 13.16075225414729,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 15.115938627416345,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 15.451043622356309,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        }
      ]
    },
    {
      "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": 13.376642176345548,
          "filed": "2019-02-26",
          "accession": "0001564590-19-004479"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 14.062965907961436,
          "filed": "2020-02-21",
          "accession": "0001564590-20-005707"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 13.111552756079792,
          "filed": "2021-02-24",
          "accession": "0001564590-21-008150"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 14.635972917279952,
          "filed": "2022-02-23",
          "accession": "0001564590-22-006284"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 15.31122516120542,
          "filed": "2023-02-22",
          "accession": "0000950170-23-003676"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 15.582603256544958,
          "filed": "2024-02-16",
          "accession": "0000950170-24-016245"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 15.434925596922033,
          "filed": "2025-02-14",
          "accession": "0000950170-25-020889"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 16.77804750480392,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 19.107673024760512,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 20.009643674938335,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        }
      ]
    },
    {
      "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": 12.604943620247532,
          "filed": "2020-02-21",
          "accession": "0001564590-19-004479"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 12.46017329123596,
          "filed": "2021-02-24",
          "accession": "0001564590-20-005707"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 9.15641690526947,
          "filed": "2022-02-23",
          "accession": "0001564590-21-008150"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 14.249942609977406,
          "filed": "2023-02-22",
          "accession": "0001564590-22-006284"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 13.658621653716585,
          "filed": "2024-02-16",
          "accession": "0000950170-23-003676"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 15.105068598506463,
          "filed": "2025-02-14",
          "accession": "0000950170-24-016245"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 15.029993987640758,
          "filed": "2026-02-17",
          "accession": "0000950170-25-020889"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 17.92860157759612,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 20.6096016046662,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 19.85632852652623,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        }
      ]
    },
    {
      "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": 9.23508503026889,
          "filed": "2019-02-26",
          "accession": "0001564590-19-004479"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 8.825278829388834,
          "filed": "2020-02-21",
          "accession": "0001564590-20-005707"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 7.076811029537219,
          "filed": "2021-02-24",
          "accession": "0001564590-21-008150"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 11.182219188277596,
          "filed": "2022-02-23",
          "accession": "0001564590-22-006284"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 10.471396405477732,
          "filed": "2023-02-22",
          "accession": "0000950170-23-003676"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 11.469844654853453,
          "filed": "2024-02-16",
          "accession": "0000950170-24-016245"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 11.026669563068882,
          "filed": "2025-02-14",
          "accession": "0000950170-25-020889"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 12.91610349286321,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 15.303773947744585,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 14.547796424936084,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        }
      ]
    },
    {
      "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.9912444948442733,
          "filed": "2018-03-01",
          "accession": "0000009092-18-000002"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 1.7036269318755437,
          "filed": "2019-02-26",
          "accession": "0001564590-19-004479"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 2.7436307589769227,
          "filed": "2020-02-21",
          "accession": "0001564590-20-005707"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 3.495274861564798,
          "filed": "2021-02-24",
          "accession": "0001564590-21-008150"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 3.287788817684755,
          "filed": "2022-02-23",
          "accession": "0001564590-22-006284"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 3.181652180264407,
          "filed": "2023-02-22",
          "accession": "0000950170-23-003676"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 3.15316556675611,
          "filed": "2024-02-16",
          "accession": "0000950170-24-016245"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 3.351145905962955,
          "filed": "2025-02-14",
          "accession": "0000950170-25-020889"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 4.569316018780931,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 3.3644536744605746,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739"
        }
      ]
    }
  ],
  "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": 175858000.0,
          "filed": "2023-07-25",
          "accession": "0000950170-23-034361",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 3,
          "period_label": "2023-Q3",
          "period_end": "2023-09-30",
          "value": 186193000.0,
          "filed": "2023-10-24",
          "accession": "0000950170-23-054838",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 4,
          "period_label": "2023-Q4",
          "period_end": "2023-12-31",
          "value": 182440000.0,
          "filed": "2024-02-16",
          "accession": "0000950170-24-016245",
          "derived": true
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 1,
          "period_label": "2024-Q1",
          "period_end": "2024-03-31",
          "value": 196280000.0,
          "filed": "2024-04-19",
          "accession": "0000950170-24-045898",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 2,
          "period_label": "2024-Q2",
          "period_end": "2024-06-30",
          "value": 216658000.0,
          "filed": "2024-07-22",
          "accession": "0000950170-24-085171",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 3,
          "period_label": "2024-Q3",
          "period_end": "2024-09-30",
          "value": 208438000.0,
          "filed": "2024-10-18",
          "accession": "0000950170-24-115576",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 4,
          "period_label": "2024-Q4",
          "period_end": "2024-12-31",
          "value": 205182000.0,
          "filed": "2025-02-14",
          "accession": "0000950170-25-020889",
          "derived": true
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 1,
          "period_label": "2025-Q1",
          "period_end": "2025-03-31",
          "value": 222211000.0,
          "filed": "2025-04-18",
          "accession": "0000950170-25-055763",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 2,
          "period_label": "2025-Q2",
          "period_end": "2025-06-30",
          "value": 238095000.0,
          "filed": "2025-07-23",
          "accession": "0000950170-25-097847",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 3,
          "period_label": "2025-Q3",
          "period_end": "2025-09-30",
          "value": 235651000.0,
          "filed": "2025-10-22",
          "accession": "0001193125-25-246630",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 4,
          "period_label": "2025-Q4",
          "period_end": "2025-12-31",
          "value": 220706000.0,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739",
          "derived": true
        },
        {
          "fiscal_year": 2026,
          "fiscal_quarter": 1,
          "period_label": "2026-Q1",
          "period_end": "2026-03-31",
          "value": 202277000.0,
          "filed": "2026-04-20",
          "accession": "0001193125-26-163625",
          "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": 22493000.0,
          "filed": "2023-07-25",
          "accession": "0000950170-23-034361",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 3,
          "period_label": "2023-Q3",
          "period_end": "2023-09-30",
          "value": 25969000.0,
          "filed": "2023-10-24",
          "accession": "0000950170-23-054838",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 4,
          "period_label": "2023-Q4",
          "period_end": "2023-12-31",
          "value": 24721000.0,
          "filed": "2024-02-16",
          "accession": "0000950170-24-016245",
          "derived": true
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 1,
          "period_label": "2024-Q1",
          "period_end": "2024-03-31",
          "value": 29131000.0,
          "filed": "2024-04-19",
          "accession": "0000950170-24-045898",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 2,
          "period_label": "2024-Q2",
          "period_end": "2024-06-30",
          "value": 33056000.0,
          "filed": "2024-07-22",
          "accession": "0000950170-24-085171",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 3,
          "period_label": "2024-Q3",
          "period_end": "2024-09-30",
          "value": 32038000.0,
          "filed": "2024-10-18",
          "accession": "0000950170-24-115576",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 4,
          "period_label": "2024-Q4",
          "period_end": "2024-12-31",
          "value": 30717000.0,
          "filed": "2025-02-14",
          "accession": "0000950170-25-020889",
          "derived": true
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 1,
          "period_label": "2025-Q1",
          "period_end": "2025-03-31",
          "value": 38398000.0,
          "filed": "2025-04-18",
          "accession": "0000950170-25-055763",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 2,
          "period_label": "2025-Q2",
          "period_end": "2025-06-30",
          "value": 34584000.0,
          "filed": "2025-07-23",
          "accession": "0000950170-25-097847",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 3,
          "period_label": "2025-Q3",
          "period_end": "2025-09-30",
          "value": 35077000.0,
          "filed": "2025-10-22",
          "accession": "0001193125-25-246630",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 4,
          "period_label": "2025-Q4",
          "period_end": "2025-12-31",
          "value": 33575000.0,
          "filed": "2026-02-17",
          "accession": "0001193125-26-054739",
          "derived": true
        },
        {
          "fiscal_year": 2026,
          "fiscal_quarter": 1,
          "period_label": "2026-Q1",
          "period_end": "2026-03-31",
          "value": 27335000.0,
          "filed": "2026-04-20",
          "accession": "0001193125-26-163625",
          "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.57,
          "filed": "2022-07-26",
          "accession": "0000950170-22-013097",
          "derived": false
        },
        {
          "fiscal_year": 2022,
          "fiscal_quarter": 3,
          "period_label": "2022-Q3",
          "period_end": "2022-09-30",
          "value": 0.61,
          "filed": "2022-10-25",
          "accession": "0000950170-22-020003",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 1,
          "period_label": "2023-Q1",
          "period_end": "2023-03-31",
          "value": 0.66,
          "filed": "2023-04-25",
          "accession": "0000950170-23-014389",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 2,
          "period_label": "2023-Q2",
          "period_end": "2023-06-30",
          "value": 0.76,
          "filed": "2023-07-25",
          "accession": "0000950170-23-034361",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 3,
          "period_label": "2023-Q3",
          "period_end": "2023-09-30",
          "value": 0.88,
          "filed": "2023-10-24",
          "accession": "0000950170-23-054838",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 1,
          "period_label": "2024-Q1",
          "period_end": "2024-03-31",
          "value": 0.99,
          "filed": "2024-04-19",
          "accession": "0000950170-24-045898",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 2,
          "period_label": "2024-Q2",
          "period_end": "2024-06-30",
          "value": 1.12,
          "filed": "2024-07-22",
          "accession": "0000950170-24-085171",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 3,
          "period_label": "2024-Q3",
          "period_end": "2024-09-30",
          "value": 1.08,
          "filed": "2024-10-18",
          "accession": "0000950170-24-115576",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 1,
          "period_label": "2025-Q1",
          "period_end": "2025-03-31",
          "value": 1.3,
          "filed": "2025-04-18",
          "accession": "0000950170-25-055763",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 2,
          "period_label": "2025-Q2",
          "period_end": "2025-06-30",
          "value": 1.17,
          "filed": "2025-07-23",
          "accession": "0000950170-25-097847",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 3,
          "period_label": "2025-Q3",
          "period_end": "2025-09-30",
          "value": 1.19,
          "filed": "2025-10-22",
          "accession": "0001193125-25-246630",
          "derived": false
        },
        {
          "fiscal_year": 2026,
          "fiscal_quarter": 1,
          "period_label": "2026-Q1",
          "period_end": "2026-03-31",
          "value": 0.93,
          "filed": "2026-04-20",
          "accession": "0001193125-26-163625",
          "derived": false
        }
      ]
    }
  ]
}
