$4.96 (3.72%)
| date | 2025-12-31 | 2024-12-31 | 2023-12-31 | 2022-12-31 | 2021-12-31 |
|---|---|---|---|---|---|
| revenue | 3.75B | 2.85B | 2.85B | 2.7B | 2.05B |
| costOfRevenue | 3.29B | 2.51B | 2.53B | 2.42B | 1.8B |
| grossProfit | 454.09M | 339.45M | 321.92M | 276.05M | 247.94M |
| researchAndDevelopmentExpenses | - | - | - | - | - |
| generalAndAdministrativeExpenses | - | - | 27.1M | - | - |
| sellingAndMarketingExpenses | - | - | 81.08M | - | - |
| sellingGeneralAndAdministrativeExpenses | 189.34M | 149.54M | 108.18M | 111.4M | 102.18M |
| otherExpenses | - | - | 23.2M | - | - |
| operatingExpenses | 189.34M | 149.54M | 131.38M | 111.4M | 102.18M |
| costAndExpenses | 3.48B | 2.66B | 2.66B | 2.53B | 1.91B |
| netInterestIncome | -16.88M | -14.02M | -16.95M | -6.35M | -3.54M |
| interestIncome | 4.57M | - | 10.93M | - | - |
| interestExpense | 21.45M | 14.02M | 27.88M | 6.35M | 3.54M |
| depreciationAndAmortization | 28.8M | 25.27M | 23.15M | 21.47M | 20.27M |
| ebitda | 324.33M | 220.05M | 207.51M | 187.49M | 167.76M |
| ebit | 295.53M | 194.78M | 184.36M | 166.02M | 147.49M |
| nonOperatingIncomeExcludingInterest | -30.78M | -4.88M | 6.18M | -1.38M | -1.74M |
| operatingIncome | 264.75M | 189.91M | 190.54M | 164.64M | 145.75M |
| totalOtherIncomeExpensesNet | 9.33M | 3.04M | -8.03M | 925K | -925K |
| incomeBeforeTax | 274.08M | 192.94M | 182.52M | 165.57M | 144.83M |
| incomeTaxExpense | 72.31M | 49.52M | 45.29M | 40.79M | 35.43M |
| netIncomeFromContinuingOperations | 201.77M | 143.42M | 137.23M | 124.78M | 109.4M |
| netIncomeFromDiscontinuedOperations | - | - | - | - | - |
| otherAdjustmentsToNetIncome | - | - | - | - | - |
| netIncome | 201.77M | 143.42M | 137.23M | 124.78M | 109.4M |
| netIncomeDeductions | - | - | - | - | - |
| bottomLineNetIncome | 201.77M | 143.42M | 137.23M | 124.78M | 109.4M |
| eps | 3.94 | 2.81 | 2.69 | 2.45 | 2.15 |
| date | 2025-12-31 | 2024-12-31 | 2023-12-31 | 2022-12-31 |
|---|---|---|---|---|
| cashAndCashEquivalents | 170.5M | 86.01M | 1.57M | 2.11M |
| shortTermInvestments | - | - | - | - |
| cashAndShortTermInvestments | 170.5M | 86.01M | 1.57M | 2.11M |
| netReceivables | 769.83M | 757.08M | 667.37M | 735.91M |
| accountsReceivables | 769.83M | 757.08M | 444.37M | 571.32M |
| otherReceivables | - | - | 223M | 164.59M |
| inventory | 45.27M | 43.75M | 42.71M | 36.84M |
| prepaids | - | - | - | - |
| otherCurrentAssets | 310.78M | 30.39M | 17.65M | 13.26M |
| totalCurrentAssets | 1.3B | 917.23M | 729.3M | 788.13M |
| propertyPlantEquipmentNet | 257.2M | 201.45M | 169.25M | 163.25M |
| goodwill | 143.22M | 143.22M | 143.22M | 143.22M |
| intangibleAssets | 116K | 116K | 2M | 4.1M |
| goodwillAndIntangibleAssets | 143.22M | 143.34M | 145.23M | 147.33M |
| longTermInvestments | 27.08M | 21.29M | 8.41M | 3.41M |
| taxAssets | - | - | - | - |
| otherNonCurrentAssets | 4.84M | 5.15M | 272K | 33.48M |
| totalNonCurrentAssets | 432.35M | 371.23M | 323.16M | 347.46M |
| otherAssets | - | - | - | - |
| totalAssets | 1.73B | 1.29B | 1.05B | 1.14B |
| totalPayables | 232.75M | 144.86M | 139.74M | 165.85M |
| accountPayables | 226.26M | 138.1M | 116.57M | 138.88M |
| otherPayables | 6.48M | 6.77M | 23.17M | 26.97M |
| accruedExpenses | 62.47M | 52.03M | 48.34M | 50.8M |
| shortTermDebt | 15M | 15M | - | 27M |
| capitalLeaseObligationsCurrent | 33.9M | 26.35M | 21.14M | 19.96M |
| taxPayables | 6.48M | 6.77M | 8.56M | 13.78M |
| deferredRevenue | 305.11M | 207.3M | 140.11M | 166.19M |
| otherCurrentLiabilities | 86.96M | 67.82M | 44.72M | 43.9M |
| totalCurrentLiabilities | 736.19M | 513.37M | 394.06M | 473.7M |
| longTermDebt | 266.55M | 280.65M | 168.53M | 224.12M |
| capitalLeaseObligationsNonCurrent | 56.63M | 41.2M | 32.5M | 34.15M |
| deferredRevenueNonCurrent | - | - | - | - |
| deferredTaxLiabilitiesNonCurrent | 14.87M | 8.16M | 6.54M | 9.64M |
| otherNonCurrentLiabilities | 24.67M | 22.47M | 1.98M | 11.73M |
| totalNonCurrentLiabilities | 362.72M | 352.48M | 209.55M | 279.64M |
| otherLiabilities | - | - | - | - |
| capitalLeaseObligations | 90.54M | 67.55M | 53.65M | 54.11M |
| totalLiabilities | 1.1B | 865.85M | 603.61M | 753.34M |
| treasuryStock | - | - | - | - |
| preferredStock | - | - | - | - |
| commonStock | 510K | 510K | 1000 | 1000 |
| retainedEarnings | 485.74M | 283.97M | 312.66M | 245.95M |
| additionalPaidInCapital | 143.57M | 138.13M | 136.18M | 136.33M |
| date | 2025-12-31 | 2024-12-31 | 2023-12-31 | 2022-12-31 | 2021-12-31 |
|---|---|---|---|---|---|
| netIncome | 201.77M | 143.42M | 137.23M | 124.78M | 109.4M |
| depreciationAndAmortization | 28.8M | 25.27M | 23.15M | 21.47M | 20.27M |
| deferredIncomeTax | 6.34M | 1.63M | -3.1M | 1.06M | 4.99M |
| stockBasedCompensation | 6.31M | 1.56M | 804K | 1.07M | 1.71M |
| changeInWorkingCapital | -76.66M | -3.42M | 19.26M | -163.87M | -21.2M |
| accountsReceivables | -269.15M | -89.65M | 30.83M | -239.91M | -12.85M |
| inventory | -1.52M | -1.04M | -5.86M | -15.8M | -2.15M |
| accountsPayables | 88.37M | 14.3M | -21.78M | 66.47M | -20.53M |
| otherWorkingCapital | 105.65M | 72.98M | 16.07M | 25.37M | 14.33M |
| otherNonCashItems | -9.72M | -5.08M | -6M | -10M | -29.72M |
| netCashProvidedByOperatingActivities | 156.84M | 163.38M | 171.34M | -25.5M | 85.45M |
| investmentsInPropertyPlantAndEquipment | -66.84M | -48.28M | -35.59M | -35.84M | -27.28M |
| acquisitionsNet | - | 13.71M | - | 11.34M | -2.5M |
| purchasesOfInvestments | - | -2.49M | -596K | -58000 | -82000 |
| salesMaturitiesOfInvestments | - | - | - | - | - |
| otherInvestingActivities | 10.07M | - | 16.21M | - | 30.79M |
| netCashProvidedByInvestingActivities | -56.77M | -37.06M | -19.97M | -24.56M | 924K |
| netDebtIssuance | -15M | 300M | -72M | 27M | -7000 |
| longTermNetDebtIssuance | -15M | 300M | -45M | 27M | -7000 |
| shortTermNetDebtIssuance | - | - | -27M | - | - |
| netStockIssuance | - | - | - | - | - |
| netCommonStockIssuance | - | - | - | - | - |
| commonStockIssuance | - | - | - | - | - |
| commonStockRepurchased | - | - | - | - | - |
| netPreferredStockIssuance | - | - | - | - | - |
| netDividendsPaid | - | - | - | - | - |
| commonDividendsPaid | - | - | - | - | - |
| preferredDividendsPaid | - | - | - | - | - |
| otherFinancingActivities | -588K | -341.87M | -79.91M | 24.5M | -87.75M |
| netCashProvidedByFinancingActivities | -15.59M | -41.87M | -151.91M | 51.5M | -87.76M |
| date | 2026-03-31 | 2025-12-31 | 2025-09-30 | 2025-06-30 | 2025-03-31 | 2024-12-31 | 2024-09-30 | 2024-06-30 | 2024-03-31 | 2023-12-31 |
|---|---|---|---|---|---|---|---|---|---|---|
| revenue | 1.04B | 1.01B | 986.82M | 921.47M | 826.63M | 759.64M | 760.98M | 703.37M | 625.69M | 635.72M |
| costOfRevenue | 906.22M | 893.97M | 862.6M | 801.6M | 734.14M | 673.38M | 671.08M | 614.8M | 550.97M | 555.94M |
| grossProfit | 130.73M | 117.5M | 124.22M | 119.87M | 92.49M | 86.26M | 89.9M | 88.58M | 74.72M | 79.78M |
| researchAndDevelopmentExpenses | - | - | - | - | - | - | - | - | - | - |
| generalAndAdministrativeExpenses | - | - | - | - | - | - | 4.9M | - | - | 5.6M |
| sellingAndMarketingExpenses | - | - | - | - | - | - | 30.79M | - | - | 900K |
| sellingGeneralAndAdministrativeExpenses | 53.04M | 48.63M | 51.84M | 47.36M | 41.51M | 40.25M | 35.69M | 37.27M | 35.83M | 6.5M |
| otherExpenses | - | - | - | - | - | - | 500K | - | - | 22.36M |
| operatingExpenses | 53.04M | 48.63M | 51.84M | 47.36M | 41.51M | 40.25M | 36.19M | 37.27M | 35.83M | 28.86M |
| costAndExpenses | 959.27M | 942.59M | 914.44M | 848.96M | 775.64M | 713.63M | 707.28M | 652.06M | 586.8M | 584.79M |
| netInterestIncome | -2.3M | -3.3M | -4.07M | -4.81M | -4.69M | -5.2M | -2.85M | -3.25M | -2.73M | -14.4M |
| interestIncome | 2.32M | 1.72M | - | - | - | - | - | - | - | - |
| interestExpense | 4.62M | 5.01M | 4.07M | 4.81M | 4.69M | 5.2M | 2.85M | 3.25M | 2.73M | 14.4M |
| depreciationAndAmortization | 8.07M | 7.49M | 7.29M | 7.13M | 6.89M | 6.77M | 6.32M | 6.19M | 5.98M | 5.92M |
| ebitda | 88.63M | 86.5M | 88.96M | 81.54M | 58.44M | 53.97M | 61.1M | 59.19M | 45.78M | 69.27M |
| ebit | 80.56M | 79M | 81.67M | 74.42M | 51.55M | 47.2M | 54.78M | 53M | 39.8M | 63.36M |
| nonOperatingIncomeExcludingInterest | -2.88M | -10.13M | -9.28M | -1.91M | -567K | -1.19M | -1.07M | -1.69M | -918K | -12.44M |
| operatingIncome | 77.68M | 68.88M | 72.38M | 72.51M | 50.98M | 46M | 53.71M | 51.31M | 38.88M | 50.92M |
| totalOtherIncomeExpensesNet | -1.74M | 5.11M | 5.21M | -256K | -739K | 380K | 2.05M | 1.3M | -693K | -1.97M |
| incomeBeforeTax | 75.94M | 73.99M | 77.59M | 72.25M | 50.24M | 46.38M | 55.76M | 52.61M | 38.19M | 48.96M |
| incomeTaxExpense | 17.62M | 18.71M | 20.62M | 19.41M | 13.57M | 11.92M | 14M | 13.63M | 9.98M | 12.46M |
| netIncomeFromContinuingOperations | 58.32M | 55.28M | 56.98M | 52.84M | 36.67M | 34.47M | 41.77M | 38.97M | 28.21M | 36.49M |
| netIncomeFromDiscontinuedOperations | - | - | - | - | - | - | - | - | - | - |
| otherAdjustmentsToNetIncome | - | - | - | - | - | - | - | - | - | - |
| netIncome | 58.32M | 55.28M | 56.98M | 52.84M | 36.67M | 34.47M | 41.77M | 38.97M | 28.21M | 36.49M |
| netIncomeDeductions | - | - | - | - | - | - | - | - | - | - |
| bottomLineNetIncome | 58.32M | 55.28M | 56.98M | 52.84M | 36.67M | 34.47M | 41.77M | 38.97M | 28.21M | 36.49M |
| eps | 1.14 | 1.08 | 1.12 | 1.04 | 0.72 | 0.68 | 0.82 | 0.76 | 0.66 | 0.35 |
| date | 2026-03-31 | 2025-12-31 | 2025-09-30 | 2025-06-30 | 2025-03-31 | 2024-12-31 | 2024-09-30 | 2024-06-30 | 2024-03-31 | 2023-12-31 |
|---|---|---|---|---|---|---|---|---|---|---|
| cashAndCashEquivalents | 293.36M | 170.5M | 149.17M | 84.71M | 54.3M | 86.01M | 553K | 59.14M | - | 1.57M |
| shortTermInvestments | - | - | - | - | - | - | - | - | - | - |
| cashAndShortTermInvestments | 293.36M | 170.5M | 149.17M | 84.71M | 54.3M | 86.01M | 553K | 59.14M | 1.57M | 1.57M |
| netReceivables | 781.56M | 1.03B | 994.21M | 927.45M | 814.72M | 757.08M | 818.5M | 782.14M | - | 667.37M |
| accountsReceivables | 781.56M | 763.73M | 994.21M | 927.45M | 587.67M | 757.08M | 625.92M | 619.66M | - | 444.37M |
| otherReceivables | - | 261.87M | - | - | 227.05M | - | 192.59M | 162.49M | - | 223M |
| inventory | 47.98M | 45.27M | 47.96M | 48.05M | 47.4M | 43.75M | 46.9M | 48.57M | - | 42.71M |
| prepaids | - | - | - | - | - | - | - | - | - | - |
| otherCurrentAssets | 298.36M | 55.02M | 24.06M | 28.81M | 54.55M | 30.39M | 20.58M | 17.76M | -1.57M | 17.65M |
| totalCurrentAssets | 1.42B | 1.3B | 1.22B | 1.09B | 970.97M | 917.23M | 886.53M | 907.62M | - | 729.3M |
| propertyPlantEquipmentNet | 256.66M | 257.2M | 234.97M | 224.15M | 213.54M | 201.45M | 198.21M | 181.3M | - | 169.25M |
| goodwill | 143.22M | 143.22M | 143.22M | 143.22M | 143.22M | 143.22M | 143.22M | 143.22M | - | 143.22M |
| intangibleAssets | - | - | - | - | - | 116K | 466K | 960K | - | 2M |
| goodwillAndIntangibleAssets | 143.22M | 143.22M | 143.22M | 143.22M | 143.22M | 143.34M | 143.69M | 144.18M | - | 145.23M |
| longTermInvestments | 22.18M | 27.08M | 25.74M | 20.38M | 23.5M | 21.29M | 17.65M | 13.42M | - | 8.41M |
| taxAssets | - | - | - | - | - | - | - | - | - | - |
| otherNonCurrentAssets | 4.42M | 4.84M | 4.41M | 4.6M | 4.61M | 5.15M | 33.21M | 32.18M | - | 272K |
| totalNonCurrentAssets | 426.49M | 432.35M | 408.34M | 392.35M | 384.88M | 371.23M | 392.76M | 371.08M | - | 323.16M |
| otherAssets | - | - | - | - | - | - | - | - | - | - |
| totalAssets | 1.85B | 1.73B | 1.62B | 1.48B | 1.36B | 1.29B | 1.28B | 1.28B | - | 1.05B |
| totalPayables | 282M | 232.75M | 224.81M | 209.37M | 206.84M | 144.86M | 190.75M | 159.44M | - | 139.74M |
| accountPayables | 259.87M | 226.26M | 213.06M | 199.09M | 182.34M | 138.1M | 160.87M | 148.61M | - | 116.57M |
| otherPayables | 22.13M | 6.48M | 11.76M | 10.28M | 24.51M | 6.77M | 29.88M | 10.83M | - | 23.17M |
| accruedExpenses | 58.98M | 62.47M | - | 118.72M | 56.9M | 52.03M | 54.08M | 67.09M | - | 48.34M |
| shortTermDebt | 15M | 15M | 45.93M | 15M | 15M | 15M | - | - | - | - |
| capitalLeaseObligationsCurrent | 32.9M | 33.9M | - | 28.91M | 27.76M | 26.35M | 26.11M | 22.89M | - | 21.14M |
| taxPayables | 22.13M | 6.48M | 11.76M | 10.28M | 24.51M | 6.77M | 14.01M | 10.83M | - | 8.56M |
| deferredRevenue | 344.96M | 305.11M | - | 230.35M | 186.57M | 207.3M | 221.66M | 189.69M | - | 140.11M |
| otherCurrentLiabilities | 70.2M | 86.96M | 421.11M | 11.96M | 52.86M | 67.82M | 66.96M | 45.31M | - | 44.72M |
| totalCurrentLiabilities | 804.04M | 736.19M | 691.85M | 614.31M | 545.94M | 513.37M | 559.56M | 484.42M | - | 394.06M |
| longTermDebt | 263.02M | 266.55M | 270.07M | 273.6M | 277.12M | 280.65M | 214.52M | 335.8M | - | 168.53M |
| capitalLeaseObligationsNonCurrent | 51.66M | 56.63M | 53.58M | 45.5M | 40.47M | 41.2M | 43.25M | 40.57M | - | 32.5M |
| deferredRevenueNonCurrent | - | - | - | - | - | - | - | - | - | - |
| deferredTaxLiabilitiesNonCurrent | 14.91M | 14.87M | 12.44M | 10.83M | 9.21M | 8.16M | 965K | 4.94M | - | 6.54M |
| otherNonCurrentLiabilities | 27.17M | 24.67M | 22.75M | 22.72M | 22.9M | 22.47M | 7.69M | 12.65M | -448.85M | 1.98M |
| totalNonCurrentLiabilities | 356.76M | 362.72M | 358.84M | 352.65M | 349.71M | 352.48M | 266.43M | 393.96M | -448.85M | 209.55M |
| otherLiabilities | - | - | - | - | - | - | - | - | - | - |
| capitalLeaseObligations | 84.56M | 90.54M | 53.58M | 74.41M | 68.24M | 67.55M | 69.36M | 63.46M | - | 53.65M |
| totalLiabilities | 1.16B | 1.1B | 1.05B | 966.97M | 895.65M | 865.85M | 825.99M | 878.38M | -448.85M | 603.61M |
| treasuryStock | - | - | - | - | - | - | - | - | - | - |
| preferredStock | - | - | - | - | - | - | - | - | - | - |
| commonStock | 510K | 510K | 510K | 510K | 510K | 510K | 1000 | 510K | - | 1000 |
| retainedEarnings | 544.06M | 485.74M | 430.46M | 373.49M | 320.64M | 283.97M | 315.36M | 263.95M | - | 312.66M |
| additionalPaidInCapital | 142.38M | 143.57M | 142.07M | 140.41M | 139.04M | 138.13M | 137.95M | 135.87M | - | 136.18M |
| date | 2026-03-31 | 2025-12-31 | 2025-09-30 | 2025-06-30 | 2025-03-31 | 2024-12-31 | 2024-09-30 | 2024-06-30 | 2024-03-31 | 2023-12-31 |
|---|---|---|---|---|---|---|---|---|---|---|
| netIncome | 58.32M | 55.28M | 56.98M | 52.84M | 36.67M | 34.47M | 41.77M | 38.97M | 28.21M | 36.49M |
| depreciationAndAmortization | 8.07M | 7.49M | 7.18M | 7.24M | 6.89M | 6.77M | 6.32M | 6.19M | 5.98M | 5.92M |
| deferredIncomeTax | 41000 | 2.43M | 1.61M | 1.26M | 1.05M | 7.2M | -3.97M | -1.79M | 193K | -2.37M |
| stockBasedCompensation | 2M | 1.52M | 1.92M | 1.12M | 1.75M | 525K | 345K | 345K | 344K | 287K |
| changeInWorkingCapital | 69.39M | -18.93M | 14.5M | -39.33M | -32.9M | 38.66M | 45.34M | -58.11M | -13.9M | 73.51M |
| accountsReceivables | -14M | -33.53M | -66.98M | -112.73M | -55.91M | 24.66M | -24.31M | -92.38M | -15.92M | 80.08M |
| inventory | -2.71M | 2.69M | 95000 | -639K | -3.66M | 3.17M | 1.65M | -4.93M | -937K | 3.12M |
| accountsPayables | 33.54M | 13.3M | 14.53M | 16.92M | 43.62M | -29.97M | 14.71M | 27.23M | 2.32M | -10.66M |
| otherWorkingCapital | 52.56M | -1.38M | 66.85M | 57.12M | -16.95M | 40.79M | 53.29M | 11.97M | 641K | 966K |
| otherNonCashItems | 5.85M | 412K | -6M | 2.2M | -6.33M | -4.78M | -10.88M | -3.71M | 1.02M | -3.86M |
| netCashProvidedByOperatingActivities | 143.68M | 48.2M | 76.17M | 25.34M | 7.13M | 82.84M | 78.93M | -18.1M | 21.86M | 109.98M |
| investmentsInPropertyPlantAndEquipment | -15.47M | -24.72M | -10.5M | -13.08M | -18.54M | -13.77M | -17.99M | -7.3M | -9.22M | -7.46M |
| acquisitionsNet | - | 5.64M | -5.64M | 2.32M | 3.31M | 4.12M | - | - | - | 3.97M |
| purchasesOfInvestments | - | -1.87M | 1.87M | -106K | -1.77M | -1.92M | - | - | - | -61000 |
| salesMaturitiesOfInvestments | - | 2.17M | -2.17M | - | 2.17M | - | - | - | - | - |
| otherInvestingActivities | 1.17M | -4.34M | 8.47M | - | - | - | 4M | 2.21M | 2.81M | - |
| netCashProvidedByInvestingActivities | -14.3M | -23.12M | -7.96M | -10.86M | -14.82M | -11.57M | -13.99M | -5.08M | -6.41M | -3.55M |
| netDebtIssuance | -3.75M | -3.75M | -3.75M | -3.75M | -3.75M | 75.45M | 12.51M | - | - | -76.27M |
| longTermNetDebtIssuance | -3.75M | -3.75M | -3.75M | -3.75M | -3.75M | 77.6M | 14.07M | - | - | -73.11M |
| shortTermNetDebtIssuance | - | - | - | - | - | -2.14M | -1.56M | - | - | -3.16M |
| netStockIssuance | - | - | - | - | - | - | - | - | - | - |
| netCommonStockIssuance | - | - | - | - | - | - | - | - | - | - |
| commonStockIssuance | - | - | - | - | - | - | - | - | - | - |
| commonStockRepurchased | - | - | - | - | - | - | - | - | - | - |
| netPreferredStockIssuance | - | - | - | - | - | - | - | - | - | - |
| netDividendsPaid | - | - | - | - | - | - | - | - | - | - |
| commonDividendsPaid | - | - | - | - | - | - | - | - | - | - |
| preferredDividendsPaid | - | - | - | - | - | - | - | - | - | - |
| otherFinancingActivities | -2.77M | - | - | - | -588K | -61.26M | -77.22M | 22.97M | -16.47M | -29.14M |
| netCashProvidedByFinancingActivities | -6.52M | -3.75M | -3.75M | -3.75M | -4.34M | 14.19M | -64.71M | 22.97M | -16.47M | -105.41M |