{
  "ticker": "WSO",
  "name": "WATSCO INC",
  "cik": "0000105016",
  "sic": "5070",
  "sic_description": "Wholesale-Hardware & Plumbing & Heating Equipment & Supplies",
  "source": "SEC XBRL companyfacts",
  "source_url": "https://data.sec.gov/api/xbrl/companyfacts/CIK0000105016.json",
  "as_of": "2026-02-27",
  "note": "Verified SEC companyfacts-derived facts; derived metrics (margins, ratios, free cash flow) are computed from those facts. Descriptive data, not investment advice.",
  "annual": [
    {
      "metric_id": "revenue",
      "label": "Revenue",
      "concept": "Revenues",
      "unit": "USD",
      "derived": false,
      "source_concepts": [
        "us-gaap:Revenues"
      ],
      "points": [
        {
          "fiscal_year": 2016,
          "period_end": "2016-12-31",
          "value": 4220702000.0,
          "filed": "2019-02-28",
          "accession": "0001193125-19-057858"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 4341955000.0,
          "filed": "2020-02-28",
          "accession": "0001193125-20-056004"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 4546653000.0,
          "filed": "2021-02-26",
          "accession": "0001193125-21-060167"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 4770362000.0,
          "filed": "2022-02-25",
          "accession": "0001193125-22-054394"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 5054928000.0,
          "filed": "2023-02-24",
          "accession": "0001193125-23-048758"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 6280192000.0,
          "filed": "2024-02-23",
          "accession": "0001193125-24-044609"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 7274344000.0,
          "filed": "2025-02-28",
          "accession": "0001193125-25-041730"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 7283767000.0,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 7618317000.0,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 7239290000.0,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        }
      ]
    },
    {
      "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": 182810000.0,
          "filed": "2019-02-28",
          "accession": "0001193125-19-057858"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 208221000.0,
          "filed": "2020-02-28",
          "accession": "0001193125-20-056004"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 242932000.0,
          "filed": "2021-02-26",
          "accession": "0001193125-21-060167"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 245950000.0,
          "filed": "2022-02-25",
          "accession": "0001193125-22-054394"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 269579000.0,
          "filed": "2023-02-24",
          "accession": "0001193125-23-048758"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 418945000.0,
          "filed": "2024-02-23",
          "accession": "0001193125-24-044609"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 601167000.0,
          "filed": "2025-02-28",
          "accession": "0001193125-25-041730"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 536337000.0,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 536286000.0,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 496994000.0,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        }
      ]
    },
    {
      "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": 345632000.0,
          "filed": "2019-02-28",
          "accession": "0001193125-19-057858"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 353874000.0,
          "filed": "2020-02-28",
          "accession": "0001193125-20-056004"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 372082000.0,
          "filed": "2021-02-26",
          "accession": "0001193125-21-060167"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 366884000.0,
          "filed": "2022-02-25",
          "accession": "0001193125-22-054394"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 401034000.0,
          "filed": "2023-02-24",
          "accession": "0001193125-23-048758"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 628528000.0,
          "filed": "2024-02-23",
          "accession": "0001193125-24-044609"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 831578000.0,
          "filed": "2025-02-28",
          "accession": "0001193125-25-041730"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 794810000.0,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 781775000.0,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 720347000.0,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        }
      ]
    },
    {
      "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": 1034584000.0,
          "filed": "2019-02-28",
          "accession": "0001193125-19-057858"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 1065659000.0,
          "filed": "2020-02-28",
          "accession": "0001193125-20-056004"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 1120252000.0,
          "filed": "2021-02-26",
          "accession": "0001193125-21-060167"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 1156956000.0,
          "filed": "2022-02-25",
          "accession": "0001193125-22-054394"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 1222821000.0,
          "filed": "2023-02-24",
          "accession": "0001193125-23-048758"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 1667545000.0,
          "filed": "2024-02-23",
          "accession": "0001193125-24-044609"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 2030289000.0,
          "filed": "2025-02-28",
          "accession": "0001193125-25-041730"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 1992140000.0,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 2044713000.0,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 2030464000.0,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        }
      ]
    },
    {
      "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": 5.15,
          "filed": "2019-02-28",
          "accession": "0001193125-19-057858"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 5.81,
          "filed": "2020-02-28",
          "accession": "0001193125-20-056004"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 6.49,
          "filed": "2021-02-26",
          "accession": "0001193125-21-060167"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 6.5,
          "filed": "2022-02-25",
          "accession": "0001193125-22-054394"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 7.01,
          "filed": "2023-02-24",
          "accession": "0001193125-23-048758"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 10.78,
          "filed": "2024-02-23",
          "accession": "0001193125-24-044609"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 15.41,
          "filed": "2025-02-28",
          "accession": "0001193125-25-041730"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 13.67,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 13.3,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 12.25,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        }
      ]
    },
    {
      "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": 281731000.0,
          "filed": "2019-02-28",
          "accession": "0001193125-19-057858"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 306520000.0,
          "filed": "2020-02-28",
          "accession": "0001193125-20-056004"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 170557000.0,
          "filed": "2021-02-26",
          "accession": "0001193125-21-060167"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 335771000.0,
          "filed": "2022-02-25",
          "accession": "0001193125-22-054394"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 534379000.0,
          "filed": "2023-02-24",
          "accession": "0001193125-23-048758"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 349566000.0,
          "filed": "2024-02-23",
          "accession": "0001193125-24-044609"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 571964000.0,
          "filed": "2025-02-28",
          "accession": "0001193125-25-041730"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 561954000.0,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 773102000.0,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 569613000.0,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        }
      ]
    },
    {
      "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": 43577000.0,
          "filed": "2019-02-28",
          "accession": "0001193125-19-057858"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 17876000.0,
          "filed": "2020-02-28",
          "accession": "0001193125-20-056004"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 17153000.0,
          "filed": "2021-02-26",
          "accession": "0001193125-21-060167"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 17805000.0,
          "filed": "2022-02-25",
          "accession": "0001193125-22-054394"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 16436000.0,
          "filed": "2023-02-24",
          "accession": "0001193125-23-048758"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 25464000.0,
          "filed": "2024-02-23",
          "accession": "0001193125-24-044609"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 35652000.0,
          "filed": "2025-02-28",
          "accession": "0001193125-25-041730"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 35478000.0,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 30090000.0,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 34550000.0,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        }
      ]
    },
    {
      "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": 127604000.0,
          "filed": "2019-02-28",
          "accession": "0001193125-19-057858"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 164147000.0,
          "filed": "2020-02-28",
          "accession": "0001193125-20-056004"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 209218000.0,
          "filed": "2021-02-26",
          "accession": "0001193125-21-060167"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 241412000.0,
          "filed": "2022-02-25",
          "accession": "0001193125-22-054394"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 265713000.0,
          "filed": "2023-02-24",
          "accession": "0001193125-23-048758"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 294522000.0,
          "filed": "2024-02-23",
          "accession": "0001193125-24-044609"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 332447000.0,
          "filed": "2025-02-28",
          "accession": "0001193125-25-041730"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 382646000.0,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 423521000.0,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 473765000.0,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        }
      ]
    },
    {
      "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": 1874649000.0,
          "filed": "2018-03-01",
          "accession": "0001193125-18-067229"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 2046877000.0,
          "filed": "2019-02-28",
          "accession": "0001193125-19-057858"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 2161033000.0,
          "filed": "2020-02-28",
          "accession": "0001193125-20-056004"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 2556161000.0,
          "filed": "2021-02-26",
          "accession": "0001193125-21-060167"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 2484347000.0,
          "filed": "2022-02-25",
          "accession": "0001193125-22-054394"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 3085861000.0,
          "filed": "2023-02-24",
          "accession": "0001193125-23-048758"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 3488214000.0,
          "filed": "2024-02-23",
          "accession": "0001193125-24-044609"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 3729182000.0,
          "filed": "2025-02-28",
          "accession": "0001193125-25-041730"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 4479523000.0,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 4414805000.0,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        }
      ]
    },
    {
      "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": 1005828000.0,
          "filed": "2018-03-01",
          "accession": "0001193125-18-067229"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 1297953000.0,
          "filed": "2019-02-28",
          "accession": "0001193125-19-057858"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 1347849000.0,
          "filed": "2020-02-28",
          "accession": "0001193125-20-056004"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 1435427000.0,
          "filed": "2021-02-26",
          "accession": "0001193125-21-060167"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 1486678000.0,
          "filed": "2022-02-25",
          "accession": "0001193125-22-054394"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 1664948000.0,
          "filed": "2023-02-24",
          "accession": "0001193125-23-048758"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 1889237000.0,
          "filed": "2024-02-23",
          "accession": "0001193125-24-044609"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 2229839000.0,
          "filed": "2025-02-28",
          "accession": "0001193125-25-041730"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 2656990000.0,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 2781376000.0,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        }
      ]
    },
    {
      "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": 56010000.0,
          "filed": "2020-02-28",
          "accession": "0001193125-20-056004"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 80496000.0,
          "filed": "2021-02-26",
          "accession": "0001193125-21-060167"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 82894000.0,
          "filed": "2022-02-25",
          "accession": "0001193125-22-054394"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 74454000.0,
          "filed": "2022-02-25",
          "accession": "0001193125-22-054394"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 146067000.0,
          "filed": "2022-02-25",
          "accession": "0001193125-22-054394"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 118268000.0,
          "filed": "2023-02-24",
          "accession": "0001193125-23-048758"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 147505000.0,
          "filed": "2024-02-23",
          "accession": "0001193125-24-044609"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 210112000.0,
          "filed": "2025-02-28",
          "accession": "0001193125-25-041730"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 526271000.0,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 433283000.0,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        }
      ]
    },
    {
      "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": 238154000.0,
          "filed": "2019-02-28",
          "accession": "0001193125-19-057858"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 288644000.0,
          "filed": "2020-02-28",
          "accession": "0001193125-20-056004"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 153404000.0,
          "filed": "2021-02-26",
          "accession": "0001193125-21-060167"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 317966000.0,
          "filed": "2022-02-25",
          "accession": "0001193125-22-054394"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 517943000.0,
          "filed": "2023-02-24",
          "accession": "0001193125-23-048758"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 324102000.0,
          "filed": "2024-02-23",
          "accession": "0001193125-24-044609"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 536312000.0,
          "filed": "2025-02-28",
          "accession": "0001193125-25-041730"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 526476000.0,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 743012000.0,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 535063000.0,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        }
      ]
    },
    {
      "metric_id": "net_margin",
      "label": "Net margin",
      "concept": "NetIncomeLoss / Revenues",
      "unit": "Percent",
      "derived": true,
      "source_concepts": [
        "us-gaap:NetIncomeLoss",
        "us-gaap:Revenues"
      ],
      "points": [
        {
          "fiscal_year": 2016,
          "period_end": "2016-12-31",
          "value": 4.331270011481502,
          "filed": "2019-02-28",
          "accession": "0001193125-19-057858"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 4.7955586826671395,
          "filed": "2020-02-28",
          "accession": "0001193125-20-056004"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 5.343095239509151,
          "filed": "2021-02-26",
          "accession": "0001193125-21-060167"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 5.155793208146467,
          "filed": "2022-02-25",
          "accession": "0001193125-22-054394"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 5.3329938626227715,
          "filed": "2023-02-24",
          "accession": "0001193125-23-048758"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 6.670894775191587,
          "filed": "2024-02-23",
          "accession": "0001193125-24-044609"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 8.264209116313443,
          "filed": "2025-02-28",
          "accession": "0001193125-25-041730"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 7.363456299467021,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 7.039428787224265,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 6.865231258866546,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        }
      ]
    },
    {
      "metric_id": "operating_margin",
      "label": "Operating margin",
      "concept": "OperatingIncomeLoss / Revenues",
      "unit": "Percent",
      "derived": true,
      "source_concepts": [
        "us-gaap:OperatingIncomeLoss",
        "us-gaap:Revenues"
      ],
      "points": [
        {
          "fiscal_year": 2016,
          "period_end": "2016-12-31",
          "value": 8.18896951265453,
          "filed": "2019-02-28",
          "accession": "0001193125-19-057858"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 8.150107497659464,
          "filed": "2020-02-28",
          "accession": "0001193125-20-056004"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 8.18364629981659,
          "filed": "2021-02-26",
          "accession": "0001193125-21-060167"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 7.690904799258422,
          "filed": "2022-02-25",
          "accession": "0001193125-22-054394"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 7.9335254626772125,
          "filed": "2023-02-24",
          "accession": "0001193125-23-048758"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 10.008101663133866,
          "filed": "2024-02-23",
          "accession": "0001193125-24-044609"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 11.43165624281722,
          "filed": "2025-02-28",
          "accession": "0001193125-25-041730"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 10.912073381809167,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 10.26178091565368,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 9.950520009558948,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        }
      ]
    },
    {
      "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": 18.175075659059004,
          "filed": "2019-02-28",
          "accession": "0001193125-19-057858"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 16.04226039001412,
          "filed": "2020-02-28",
          "accession": "0001193125-20-056004"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 18.023680694202394,
          "filed": "2021-02-26",
          "accession": "0001193125-21-060167"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 17.134274330913378,
          "filed": "2022-02-25",
          "accession": "0001193125-22-054394"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 18.132978358460942,
          "filed": "2023-02-24",
          "accession": "0001193125-23-048758"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 25.162647722331265,
          "filed": "2024-02-23",
          "accession": "0001193125-24-044609"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 31.8206238814929,
          "filed": "2025-02-28",
          "accession": "0001193125-25-041730"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 24.05272308897638,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 20.183967572328086,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 17.868637681492903,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        }
      ]
    },
    {
      "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.751692183443406,
          "filed": "2019-02-28",
          "accession": "0001193125-19-057858"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 10.172619067975262,
          "filed": "2020-02-28",
          "accession": "0001193125-20-056004"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 11.241475720176416,
          "filed": "2021-02-26",
          "accession": "0001193125-21-060167"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 9.6218508928037,
          "filed": "2022-02-25",
          "accession": "0001193125-22-054394"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 10.851100913036706,
          "filed": "2023-02-24",
          "accession": "0001193125-23-048758"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 13.576275794664763,
          "filed": "2024-02-23",
          "accession": "0001193125-24-044609"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 17.234235055532718,
          "filed": "2025-02-28",
          "accession": "0001193125-25-041730"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 14.382162093456422,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 11.97194433425166,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 11.257439456555838,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        }
      ]
    },
    {
      "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": 3.938403495846142,
          "filed": "2018-03-01",
          "accession": "0001193125-18-067229"
        },
        {
          "fiscal_year": 2017,
          "period_end": "2017-12-31",
          "value": 3.2112145448608205,
          "filed": "2019-02-28",
          "accession": "0001193125-19-057858"
        },
        {
          "fiscal_year": 2018,
          "period_end": "2018-12-31",
          "value": 4.032279355419699,
          "filed": "2020-02-28",
          "accession": "0001193125-20-056004"
        },
        {
          "fiscal_year": 2019,
          "period_end": "2019-12-31",
          "value": 3.349952460056701,
          "filed": "2021-02-26",
          "accession": "0001193125-21-060167"
        },
        {
          "fiscal_year": 2020,
          "period_end": "2020-12-31",
          "value": 3.047234396329635,
          "filed": "2022-02-25",
          "accession": "0001193125-22-054394"
        },
        {
          "fiscal_year": 2021,
          "period_end": "2021-12-31",
          "value": 2.698968794119347,
          "filed": "2023-02-24",
          "accession": "0001193125-23-048758"
        },
        {
          "fiscal_year": 2022,
          "period_end": "2022-12-31",
          "value": 2.5357785028934763,
          "filed": "2024-02-23",
          "accession": "0001193125-24-044609"
        },
        {
          "fiscal_year": 2023,
          "period_end": "2023-12-31",
          "value": 3.3593970326342815,
          "filed": "2025-02-28",
          "accession": "0001193125-25-041730"
        },
        {
          "fiscal_year": 2024,
          "period_end": "2024-12-31",
          "value": 3.1303769383301776,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        },
        {
          "fiscal_year": 2025,
          "period_end": "2025-12-31",
          "value": 4.116390012009886,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486"
        }
      ]
    }
  ],
  "quarterly": [
    {
      "metric_id": "revenue",
      "label": "Revenue",
      "concept": "Revenues",
      "unit": "USD",
      "source_concepts": [
        "us-gaap:Revenues"
      ],
      "points": [
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 2,
          "period_label": "2023-Q2",
          "period_end": "2023-06-30",
          "value": 2003084000.0,
          "filed": "2023-08-03",
          "accession": "0001193125-23-202974",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 3,
          "period_label": "2023-Q3",
          "period_end": "2023-09-30",
          "value": 2126845000.0,
          "filed": "2023-11-03",
          "accession": "0001193125-23-270352",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 4,
          "period_label": "2023-Q4",
          "period_end": "2023-12-31",
          "value": 1603197000.0,
          "filed": "2024-02-23",
          "accession": "0001193125-24-044609",
          "derived": true
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 1,
          "period_label": "2024-Q1",
          "period_end": "2024-03-31",
          "value": 1564991000.0,
          "filed": "2024-05-03",
          "accession": "0001193125-24-130664",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 2,
          "period_label": "2024-Q2",
          "period_end": "2024-06-30",
          "value": 2139328000.0,
          "filed": "2024-08-02",
          "accession": "0001193125-24-192839",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 3,
          "period_label": "2024-Q3",
          "period_end": "2024-09-30",
          "value": 2160036000.0,
          "filed": "2024-11-01",
          "accession": "0001193125-24-249900",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 4,
          "period_label": "2024-Q4",
          "period_end": "2024-12-31",
          "value": 1753962000.0,
          "filed": "2025-02-28",
          "accession": "0001193125-25-041730",
          "derived": true
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 1,
          "period_label": "2025-Q1",
          "period_end": "2025-03-31",
          "value": 1531086000.0,
          "filed": "2025-05-09",
          "accession": "0001193125-25-116461",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 2,
          "period_label": "2025-Q2",
          "period_end": "2025-06-30",
          "value": 2062442000.0,
          "filed": "2025-08-08",
          "accession": "0001193125-25-176973",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 3,
          "period_label": "2025-Q3",
          "period_end": "2025-09-30",
          "value": 2067005000.0,
          "filed": "2025-11-07",
          "accession": "0001193125-25-272272",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 4,
          "period_label": "2025-Q4",
          "period_end": "2025-12-31",
          "value": 1578757000.0,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486",
          "derived": true
        },
        {
          "fiscal_year": 2026,
          "fiscal_quarter": 1,
          "period_label": "2026-Q1",
          "period_end": "2026-03-31",
          "value": 1533010000.0,
          "filed": "2026-05-08",
          "accession": "0001193125-26-214570",
          "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": 172764000.0,
          "filed": "2023-08-03",
          "accession": "0001193125-23-202974",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 3,
          "period_label": "2023-Q3",
          "period_end": "2023-09-30",
          "value": 170953000.0,
          "filed": "2023-11-03",
          "accession": "0001193125-23-270352",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 4,
          "period_label": "2023-Q4",
          "period_end": "2023-12-31",
          "value": 82547000.0,
          "filed": "2024-02-23",
          "accession": "0001193125-24-044609",
          "derived": true
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 1,
          "period_label": "2024-Q1",
          "period_end": "2024-03-31",
          "value": 87004000.0,
          "filed": "2024-05-03",
          "accession": "0001193125-24-130664",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 2,
          "period_label": "2024-Q2",
          "period_end": "2024-06-30",
          "value": 181410000.0,
          "filed": "2024-08-02",
          "accession": "0001193125-24-192839",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 3,
          "period_label": "2024-Q3",
          "period_end": "2024-09-30",
          "value": 171031000.0,
          "filed": "2024-11-01",
          "accession": "0001193125-24-249900",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 4,
          "period_label": "2024-Q4",
          "period_end": "2024-12-31",
          "value": 96841000.0,
          "filed": "2025-02-28",
          "accession": "0001193125-25-041730",
          "derived": true
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 1,
          "period_label": "2025-Q1",
          "period_end": "2025-03-31",
          "value": 80061000.0,
          "filed": "2025-05-09",
          "accession": "0001193125-25-116461",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 2,
          "period_label": "2025-Q2",
          "period_end": "2025-06-30",
          "value": 183613000.0,
          "filed": "2025-08-08",
          "accession": "0001193125-25-176973",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 3,
          "period_label": "2025-Q3",
          "period_end": "2025-09-30",
          "value": 161575000.0,
          "filed": "2025-11-07",
          "accession": "0001193125-25-272272",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 4,
          "period_label": "2025-Q4",
          "period_end": "2025-12-31",
          "value": 71745000.0,
          "filed": "2026-02-27",
          "accession": "0001193125-26-082486",
          "derived": true
        },
        {
          "fiscal_year": 2026,
          "fiscal_quarter": 1,
          "period_label": "2026-Q1",
          "period_end": "2026-03-31",
          "value": 79074000.0,
          "filed": "2026-05-08",
          "accession": "0001193125-26-214570",
          "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": 4.93,
          "filed": "2022-08-04",
          "accession": "0001193125-22-212504",
          "derived": false
        },
        {
          "fiscal_year": 2022,
          "fiscal_quarter": 3,
          "period_label": "2022-Q3",
          "period_end": "2022-09-30",
          "value": 4.03,
          "filed": "2022-11-03",
          "accession": "0001193125-22-276863",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 1,
          "period_label": "2023-Q1",
          "period_end": "2023-03-31",
          "value": 2.83,
          "filed": "2023-05-05",
          "accession": "0001193125-23-137075",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 2,
          "period_label": "2023-Q2",
          "period_end": "2023-06-30",
          "value": 4.42,
          "filed": "2023-08-03",
          "accession": "0001193125-23-202974",
          "derived": false
        },
        {
          "fiscal_year": 2023,
          "fiscal_quarter": 3,
          "period_label": "2023-Q3",
          "period_end": "2023-09-30",
          "value": 4.35,
          "filed": "2023-11-03",
          "accession": "0001193125-23-270352",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 1,
          "period_label": "2024-Q1",
          "period_end": "2024-03-31",
          "value": 2.17,
          "filed": "2024-05-03",
          "accession": "0001193125-24-130664",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 2,
          "period_label": "2024-Q2",
          "period_end": "2024-06-30",
          "value": 4.49,
          "filed": "2024-08-02",
          "accession": "0001193125-24-192839",
          "derived": false
        },
        {
          "fiscal_year": 2024,
          "fiscal_quarter": 3,
          "period_label": "2024-Q3",
          "period_end": "2024-09-30",
          "value": 4.22,
          "filed": "2024-11-01",
          "accession": "0001193125-24-249900",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 1,
          "period_label": "2025-Q1",
          "period_end": "2025-03-31",
          "value": 1.93,
          "filed": "2025-05-09",
          "accession": "0001193125-25-116461",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 2,
          "period_label": "2025-Q2",
          "period_end": "2025-06-30",
          "value": 4.52,
          "filed": "2025-08-08",
          "accession": "0001193125-25-176973",
          "derived": false
        },
        {
          "fiscal_year": 2025,
          "fiscal_quarter": 3,
          "period_label": "2025-Q3",
          "period_end": "2025-09-30",
          "value": 3.98,
          "filed": "2025-11-07",
          "accession": "0001193125-25-272272",
          "derived": false
        },
        {
          "fiscal_year": 2026,
          "fiscal_quarter": 1,
          "period_label": "2026-Q1",
          "period_end": "2026-03-31",
          "value": 1.87,
          "filed": "2026-05-08",
          "accession": "0001193125-26-214570",
          "derived": false
        }
      ]
    }
  ]
}
