$0.66 (1.2%)
| date | 2025-12-31 | 2024-12-31 | 2023-12-31 | 2022-12-31 | 2021-12-31 | 2020-12-31 | 2019-12-31 | 2018-12-31 | 2017-12-31 | 2016-12-31 |
|---|---|---|---|---|---|---|---|---|---|---|
| revenue | 359.02M | 336.26M | 319.98M | 293.07M | 270.88M | 245.63M | 279.33M | 253.34M | 238.52M | 199.57M |
| costOfRevenue | 180.45M | 175.64M | 166.82M | 155.51M | 143.05M | 129.09M | 148.81M | 126.01M | 115.25M | 97.54M |
| grossProfit | 178.58M | 160.62M | 153.16M | 137.56M | 127.84M | 116.54M | 130.52M | 127.33M | 119.38M | 102.03M |
| researchAndDevelopmentExpenses | 20.81M | 18.09M | 16.99M | 16.85M | 14.1M | 12.77M | 13.91M | 6.22M | 3.16M | 2.9M |
| generalAndAdministrativeExpenses | 62.46M | 56.24M | 56.64M | 48.7M | 46.12M | 49.7M | 55.17M | 47.69M | 47.59M | 40.23M |
| sellingAndMarketingExpenses | 18.38M | 15.27M | 13.64M | 13.33M | 13.26M | 12.04M | 12.78M | 11.34M | 12.25M | 10.07M |
| sellingGeneralAndAdministrativeExpenses | 80.83M | 71.51M | 70.28M | 62.03M | 59.38M | 61.74M | 67.94M | 59.03M | 59.84M | 50.3M |
| otherExpenses | - | -148K | -58000 | -92000 | -256K | 14.2M | - | -306K | -147K | 836K |
| operatingExpenses | 101.64M | 89.45M | 87.21M | 78.79M | 73.22M | 88.71M | 81.86M | 64.95M | 62.85M | 54.03M |
| costAndExpenses | 282.09M | 265.24M | 254.08M | 234.39M | 216.52M | 217.8M | 230.67M | 191.65M | 178.25M | 150.74M |
| netInterestIncome | -1.85M | -8000 | -247K | -1.58M | -1.71M | -1.89M | -2.11M | 176K | 1.67M | 2.22M |
| interestIncome | - | 2.01M | 1.65M | 995K | 538K | 302K | 500K | 704K | 1.67M | 2.22M |
| interestExpense | 1.85M | 2.02M | 1.9M | 2.58M | 2.25M | 2.19M | 2.61M | 528K | - | - |
| depreciationAndAmortization | 19.17M | 20.08M | 21.07M | 20.13M | 18.1M | 18.83M | 22.84M | 14.61M | 13.52M | 11.64M |
| ebitda | 95.92M | 93.35M | 87.37M | 75.54M | 69.31M | 50.06M | 48.66M | 91.37M | 69.06M | 61.69M |
| ebit | 76.75M | 73.27M | 66.3M | 55.41M | 51.22M | 31.23M | 25.81M | 76.76M | 55.55M | 50.05M |
| nonOperatingIncomeExcludingInterest | 186K | -2.25M | -404K | 3.27M | 3.14M | 10.8M | 22.85M | -15.07M | 842K | -1.22M |
| operatingIncome | 76.94M | 71.02M | 65.9M | 58.68M | 54.36M | 42.03M | 48.66M | 61.69M | 56.39M | 48.83M |
| totalOtherIncomeExpensesNet | -2.04M | 105K | -2.2M | -6.44M | -5.49M | -13.83M | -28.66M | 18.76M | 7.68M | 771K |
| incomeBeforeTax | 74.9M | 71.13M | 63.7M | 52.24M | 48.87M | 28.2M | 20M | 80.45M | 64.07M | 49.6M |
| incomeTaxExpense | 14.9M | 14.58M | 13.36M | 12.74M | 11.85M | 10.86M | 12.23M | 17.27M | 17.7M | 14.88M |
| netIncomeFromContinuingOperations | 60M | 56.55M | 50.34M | 39.5M | 37.01M | 17.34M | 7.77M | 63.18M | 46.36M | 34.73M |
| netIncomeFromDiscontinuedOperations | - | - | - | - | - | - | - | - | - | - |
| otherAdjustmentsToNetIncome | - | - | - | - | - | - | - | - | - | - |
| netIncome | 57.97M | 53.65M | 48.14M | 37.1M | 34.26M | 16.12M | 6.89M | 64.54M | 43.79M | 32.14M |
| netIncomeDeductions | - | - | - | - | - | - | - | - | - | - |
| bottomLineNetIncome | 57.97M | 53.65M | 48.14M | 37.1M | 34.26M | 16.12M | 6.89M | 60.68M | 43.79M | 32.14M |
| eps | 2.92 | 2.7 | 2.41 | 1.82 | 1.65 | 0.77 | 0.52 | 3.06 | 2.09 | 1.53 |
| date | 2025-12-31 | 2024-12-31 | 2023-12-31 | 2022-12-31 | 2021-12-31 | 2020-12-31 | 2019-12-31 | 2018-12-31 | 2017-12-31 | 2016-12-31 |
|---|---|---|---|---|---|---|---|---|---|---|
| cashAndCashEquivalents | 107.55M | 77.36M | 53.43M | 27.85M | 50.31M | 72.18M | 53.96M | 51.4M | 36.91M | 31.09M |
| shortTermInvestments | 3000 | 10000 | 119K | 316K | 4.4M | 6.66M | 358K | 1.9M | 3.56M | 398K |
| cashAndShortTermInvestments | 107.55M | 77.37M | 53.55M | 28.17M | 54.71M | 78.85M | 54.32M | 53.3M | 40.46M | 31.48M |
| netReceivables | 58.52M | 47.69M | 45.39M | 45.82M | 43.92M | 39.34M | 45.09M | 54.26M | 41.01M | 33.86M |
| accountsReceivables | 58.52M | 47.69M | 45.39M | 45.82M | 43.92M | 39.34M | 45.09M | 54.26M | 41.01M | 33.86M |
| otherReceivables | - | - | - | - | - | - | - | - | - | - |
| inventory | 23.21M | 23.43M | 26.87M | 28.51M | 27.13M | 22.62M | 25.54M | 28.37M | 14.24M | 14.35M |
| prepaids | - | 29.43M | 37.83M | 32.34M | 21.97M | 24.28M | 33.65M | 35.96M | 28.03M | 22.48M |
| otherCurrentAssets | 48.36M | 16.64M | 14.89M | 15.82M | 15M | 14.34M | 15.56M | 17.02M | 13.37M | 9M |
| totalCurrentAssets | 237.64M | 194.56M | 178.54M | 150.65M | 162.73M | 179.44M | 174.15M | 188.91M | 137.11M | 111.19M |
| propertyPlantEquipmentNet | 48.26M | 42.03M | 50.03M | 55.15M | 40.34M | 43.2M | 61.49M | 50.46M | 39.05M | 35.64M |
| goodwill | 39.83M | 39.32M | 39.4M | 39.51M | 40M | 39.86M | 50.09M | 69.87M | 3.78M | 3.41M |
| intangibleAssets | 8.84M | 9.01M | 10.83M | 12.62M | 16.75M | 19.38M | 23.36M | 39.04M | 38000 | 23000 |
| goodwillAndIntangibleAssets | 48.67M | 48.34M | 50.23M | 52.13M | 56.75M | 59.24M | 73.44M | 108.91M | 3.82M | 3.43M |
| longTermInvestments | 2.06M | 2.01M | 2.93M | 2.97M | 2.75M | 2.17M | 4.93M | 11.35M | 16.22M | 12.06M |
| taxAssets | 15.68M | 12.27M | 14.45M | 11.4M | 11.09M | 11.36M | 10.38M | 12.13M | 8.4M | 6.31M |
| otherNonCurrentAssets | 33.89M | 27.68M | 22.51M | 18.28M | 19.35M | 16.51M | 14.84M | 12.72M | 10.57M | 9.38M |
| totalNonCurrentAssets | 148.57M | 132.32M | 140.15M | 140.28M | 130.29M | 133.04M | 165.08M | 184.89M | 78.05M | 66.83M |
| otherAssets | - | - | - | - | - | - | - | - | - | - |
| totalAssets | 386.21M | 326.88M | 318.69M | 290.93M | 293.02M | 312.47M | 339.24M | 373.79M | 215.16M | 178.02M |
| totalPayables | 29.51M | 27.12M | 26.93M | 26.12M | 25.68M | 21.18M | 27.72M | 28.81M | 28.26M | 22.82M |
| accountPayables | 19.08M | 18.85M | 20.84M | 21.94M | 21.28M | 19.72M | 22.66M | 23.99M | 23.26M | 18.62M |
| otherPayables | 10.43M | 8.28M | 6.09M | 4.18M | 4.4M | 1.46M | 5.07M | 4.82M | 4.99M | 4.19M |
| accruedExpenses | 31.84M | 25.37M | 25.34M | 20.3M | 23.36M | 23.72M | 16.74M | 17.51M | 20.14M | 17.05M |
| shortTermDebt | - | 114K | 355K | 11.84M | 17.75M | 20.39M | 18.11M | 10.56M | 48000 | 3000 |
| capitalLeaseObligationsCurrent | 4.13M | 3.38M | 3.3M | 3.02M | 2.94M | 2.86M | 1.79M | - | - | - |
| taxPayables | - | - | - | - | - | - | - | - | - | - |
| deferredRevenue | 27.21M | 22.86M | 27.12M | 21.78M | 24.33M | 24.35M | 29.15M | 37.67M | 12.8M | 10.76M |
| otherCurrentLiabilities | 11.42M | 8.88M | 9.43M | 9.91M | 10.06M | 20.23M | 7.56M | 10.14M | 4.5M | 5.49M |
| totalCurrentLiabilities | 104.1M | 87.72M | 92.46M | 92.97M | 104.13M | 112.73M | 101.06M | 104.69M | 65.75M | 56.13M |
| longTermDebt | - | - | 237K | 345K | 13.67M | 34.07M | 49.8M | 62.62M | - | - |
| capitalLeaseObligationsNonCurrent | 4.74M | 5.56M | 4.77M | 6.89M | 1.75M | 2.69M | 10.84M | - | - | - |
| deferredRevenueNonCurrent | 14.88M | 12.23M | 13.26M | 13.04M | 8.9M | 8.54M | 9.76M | 8.22M | 1.24M | 1.03M |
| deferredTaxLiabilitiesNonCurrent | 531K | 418K | 1.12M | 1.53M | 1.95M | 2.49M | 2.87M | 6.46M | - | - |
| otherNonCurrentLiabilities | 37.47M | 29.69M | 26.59M | 23.3M | 24.81M | 22.06M | 28.98M | 31.6M | 14.94M | 12.69M |
| totalNonCurrentLiabilities | 57.62M | 47.9M | 45.98M | 45.1M | 51.09M | 69.85M | 102.26M | 108.9M | 16.18M | 13.72M |
| otherLiabilities | - | - | - | - | - | - | - | - | - | - |
| capitalLeaseObligations | 8.88M | 8.95M | 8.07M | 9.9M | 4.69M | 5.55M | 12.63M | - | - | - |
| totalLiabilities | 161.73M | 135.62M | 138.44M | 137.72M | 155.22M | 182.57M | 203.32M | 209.77M | 81.93M | 69.85M |
| treasuryStock | -67.39M | - | -64.29M | -57.67M | -49.23M | -41.95M | -41.95M | -35.95M | -30.05M | -30.05M |
| preferredStock | - | - | - | - | - | - | - | 14.5M | - | - |
| commonStock | 1.98M | 1.98M | 1.98M | 1.98M | 1.98M | 1.98M | 1.98M | 1.98M | 1.98M | 1.98M |
| retainedEarnings | 244.4M | - | 203.56M | 168.96M | 143.26M | 127.68M | 116.48M | 129.58M | 92.06M | 71.72M |
| additionalPaidInCapital | 78.38M | - | 78.37M | 78.36M | 78.33M | 78.3M | 78.68M | 78.68M | 71.55M | 71.55M |
| date | 2025-12-31 | 2024-12-31 | 2023-12-31 | 2022-12-31 | 2021-12-31 | 2020-12-31 | 2019-12-31 | 2018-12-31 | 2017-12-31 | 2016-12-31 |
|---|---|---|---|---|---|---|---|---|---|---|
| netIncome | 57.97M | 53.65M | 48.14M | 37.1M | 34.26M | 16.12M | 6.89M | 60.68M | 43.79M | 32.14M |
| depreciationAndAmortization | 19.17M | 20.08M | 21.07M | 20.13M | 18.1M | 18.83M | 22.84M | 14.61M | 13.52M | 11.64M |
| deferredIncomeTax | -1.61M | - | - | - | - | - | - | - | - | - |
| stockBasedCompensation | - | - | - | - | - | - | - | - | - | - |
| changeInWorkingCapital | 7.41M | -1.71M | 4.21M | -21.59M | -3.24M | 21.24M | 10.1M | -664K | -12.53M | -8.82M |
| accountsReceivables | -3.73M | -5.23M | -26000 | -5.1M | -3.99M | 4.5M | 10.7M | 6.18M | -4.77M | -4.55M |
| inventory | 2.61M | 3.37M | 1.1M | -5.84M | -3.84M | 3.12M | 3.82M | 3.58M | 1.63M | -1.42M |
| accountsPayables | -2.14M | - | - | - | - | - | - | - | - | - |
| otherWorkingCapital | 10.66M | 151K | 3.13M | -10.65M | 4.59M | 13.62M | -4.42M | -10.43M | -9.39M | -2.84M |
| otherNonCashItems | 5.64M | 2.24M | 3.81M | 9.47M | 6.68M | 3.88M | 19.85M | -21.36M | -878K | 6.52M |
| netCashProvidedByOperatingActivities | 88.58M | 74.27M | 77.22M | 45.12M | 55.79M | 60.07M | 59.68M | 53.26M | 43.91M | 41.47M |
| investmentsInPropertyPlantAndEquipment | -21.78M | -13.63M | -14.24M | -26.5M | -16.63M | -10.23M | -18.31M | -21.74M | -16.16M | -13.64M |
| acquisitionsNet | 901K | - | - | - | - | - | - | -68.97M | - | - |
| purchasesOfInvestments | -38000 | - | - | - | - | - | - | - | - | - |
| salesMaturitiesOfInvestments | 57000 | - | - | - | - | - | - | - | - | - |
| otherInvestingActivities | -3.32M | -2.31M | -2.99M | -849K | -1.9M | -1.24M | 23000 | 5.86M | 1.47M | -6.22M |
| netCashProvidedByInvestingActivities | -24.18M | -15.94M | -17.23M | -27.35M | -18.52M | -11.48M | -18.29M | -84.85M | -14.68M | -19.86M |
| netDebtIssuance | -114K | -433K | -11.73M | -16.45M | -23.77M | -18.16M | -8.94M | 73.7M | - | - |
| longTermNetDebtIssuance | - | - | -11.73M | -16.45M | -23.77M | -18.16M | -8.94M | 73.7M | - | - |
| shortTermNetDebtIssuance | -114K | -433K | - | - | - | - | - | - | - | - |
| netStockIssuance | -3.1M | - | -6.61M | -8.44M | -7.28M | - | -6M | - | - | - |
| netCommonStockIssuance | -3.1M | - | -6.61M | -8.44M | -7.28M | - | -6M | - | - | - |
| commonStockIssuance | - | - | - | - | - | - | - | - | - | - |
| commonStockRepurchased | -3.1M | - | -6.61M | -8.44M | -7.28M | - | -6M | - | - | - |
| netPreferredStockIssuance | - | - | - | - | - | - | - | - | - | - |
| netDividendsPaid | -37.58M | -28.05M | -11.56M | -11.46M | -15.81M | -9.97M | -19.85M | -20.22M | -22.64M | -17.09M |
| commonDividendsPaid | -37.58M | -28.05M | -11.56M | -11.46M | -15.81M | -9.97M | -19.85M | -20.22M | -22.64M | -17.09M |
| preferredDividendsPaid | - | - | - | - | - | - | - | - | - | - |
| otherFinancingActivities | -1.91M | -3.29M | -3.03M | - | -11.8M | -1.32M | -4.14M | -3.71M | -1.62M | -1.15M |
| netCashProvidedByFinancingActivities | -42.71M | -31.77M | -32.93M | -36.36M | -58.67M | -29.45M | -38.93M | 49.77M | -24.27M | -18.23M |
| 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 | 102.67M | 93.5M | 92.28M | 86.79M | 86.46M | 82.88M | 83.48M | 84.87M | 85.03M | 77.81M |
| costOfRevenue | 53.22M | 46.28M | 45.85M | 43.87M | 44.44M | 41.77M | 43.32M | 45.06M | 45.48M | 39.41M |
| grossProfit | 49.44M | 47.21M | 46.42M | 42.92M | 42.02M | 41.12M | 40.16M | 39.8M | 39.54M | 38.4M |
| researchAndDevelopmentExpenses | 5.02M | 5.15M | 5.73M | 5.06M | 4.86M | 4.48M | 4.49M | 4.59M | 4.52M | 4.24M |
| generalAndAdministrativeExpenses | 17.32M | 16.87M | 16.22M | 15.13M | 14.24M | 14.67M | 13.26M | 13.85M | 14.46M | 14.3M |
| sellingAndMarketingExpenses | 5.23M | 4.89M | 4.86M | 4.38M | 4.26M | 3.98M | 4.02M | 3.7M | 3.57M | 3.54M |
| sellingGeneralAndAdministrativeExpenses | 22.55M | 21.76M | 21.07M | 19.51M | 18.5M | 18.65M | 17.28M | 17.55M | 18.03M | 17.84M |
| otherExpenses | -180K | - | -9000 | 21000 | 6000 | -49000 | 24000 | -84000 | -39000 | -185K |
| operatingExpenses | 27.38M | 26.91M | 26.8M | 24.58M | 23.36M | 23.08M | 21.8M | 22.06M | 22.51M | 21.9M |
| costAndExpenses | 80.61M | 73.19M | 72.66M | 68.44M | 67.8M | 64.9M | 65.1M | 67.21M | 68.04M | 61.49M |
| netInterestIncome | - | -732K | -340K | -1.33M | 546K | -85000 | 34000 | 56000 | 75000 | 348K |
| interestIncome | - | - | - | - | 546K | - | 34000 | 56000 | 75000 | 348K |
| interestExpense | - | 732K | 340K | 1.33M | - | 85000 | - | - | - | - |
| depreciationAndAmortization | 4.65M | 4.93M | 5.01M | 4.6M | 4.63M | 4.5M | 4.94M | 5.35M | 5.3M | 5.41M |
| ebitda | 27.25M | 25.1M | 24.64M | 22.94M | 23.83M | 22.53M | 23.33M | 23.15M | 22.4M | 21.92M |
| ebit | 22.6M | 20.17M | 19.63M | 18.34M | 19.2M | 18.04M | 18.39M | 17.8M | 17.1M | 16.51M |
| nonOperatingIncomeExcludingInterest | -542K | 137K | -9000 | 21000 | -540K | -49000 | -10000 | -140K | -114K | -190K |
| operatingIncome | 22.06M | 20.3M | 19.62M | 18.36M | 18.66M | 17.99M | 18.38M | 17.66M | 16.99M | 16.32M |
| totalOtherIncomeExpensesNet | 542K | -869K | -344K | -1.33M | 506K | 142K | -169K | 99000 | 33000 | -1.35M |
| incomeBeforeTax | 22.6M | 19.43M | 19.27M | 17.02M | 19.17M | 18.13M | 18.22M | 17.76M | 17.02M | 14.97M |
| incomeTaxExpense | 5.57M | 3.68M | 3.89M | 3.26M | 4.07M | 3.34M | 4.03M | 3.78M | 3.43M | 2.53M |
| netIncomeFromContinuingOperations | 17.03M | 15.76M | 15.38M | 13.76M | 15.1M | 14.78M | 14.19M | 13.98M | 13.59M | 12.44M |
| netIncomeFromDiscontinuedOperations | - | - | - | - | - | - | - | - | - | - |
| otherAdjustmentsToNetIncome | - | - | - | - | - | - | - | - | - | - |
| netIncome | 16.77M | 15.28M | 14.64M | 13.45M | 14.59M | 13.84M | 13.65M | 13.13M | 13.04M | 12.02M |
| netIncomeDeductions | - | - | - | - | - | - | - | - | - | - |
| bottomLineNetIncome | 16.77M | 15.28M | 14.64M | 13.45M | 14.59M | 13.84M | 13.65M | 13.13M | 13.04M | 12.02M |
| eps | 0.85 | 0.77 | 0.74 | 0.68 | 0.73 | 0.7 | 0.69 | 0.66 | 0.66 | 0.6 |
| 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 | 107.97M | 107.55M | 93.07M | 88.74M | 75.68M | 77.36M | 67.46M | 63.21M | 54.04M | 53.43M |
| shortTermInvestments | 3000 | 3000 | 2000 | 2000 | 2000 | 10000 | 32000 | 81000 | 221K | 119K |
| cashAndShortTermInvestments | 107.97M | 107.55M | 93.07M | 88.74M | 75.68M | 77.37M | 67.5M | 63.29M | 54.26M | 53.55M |
| netReceivables | 68.1M | 58.52M | 62.06M | 59.9M | 54.22M | 47.69M | 47.88M | 49.17M | 49.27M | 45.39M |
| accountsReceivables | 68.1M | 58.52M | 62.06M | 59.9M | 54.22M | 47.69M | 47.88M | 49.17M | 49.27M | 45.39M |
| otherReceivables | - | - | - | - | - | - | - | - | - | - |
| inventory | 20.97M | 23.21M | 25.67M | 24.7M | 23.28M | 23.43M | 23.96M | 24.81M | 26.14M | 26.87M |
| prepaids | - | - | - | - | - | 29.43M | - | - | - | 37.83M |
| otherCurrentAssets | 51.91M | 48.36M | 49.4M | 48.28M | 48.18M | 16.64M | 51.19M | 50.15M | 54.47M | 14.89M |
| totalCurrentAssets | 248.95M | 237.64M | 230.2M | 221.61M | 201.36M | 194.56M | 190.52M | 187.41M | 184.13M | 178.54M |
| propertyPlantEquipmentNet | 48.45M | 48.26M | 48.29M | 47.37M | 45.07M | 42.03M | 41.26M | 42.92M | 47.16M | 50.03M |
| goodwill | 39.86M | 39.83M | 39.69M | 39.61M | 39.26M | 39.32M | 39.26M | 39.22M | 39.35M | 39.4M |
| intangibleAssets | 9.01M | 8.84M | 8.93M | 9.09M | 8.69M | 9.01M | 9.11M | 9.49M | 10.26M | 10.83M |
| goodwillAndIntangibleAssets | 48.87M | 48.67M | 48.62M | 48.7M | 47.94M | 48.34M | 48.37M | 48.71M | 49.6M | 50.23M |
| longTermInvestments | 2.12M | 2.06M | 2.33M | 2.35M | 2.01M | 2.01M | 2.85M | 2.8M | 2.68M | 2.93M |
| taxAssets | 17.25M | 15.68M | 14.83M | 13.95M | 12.58M | 12.27M | 13.78M | 14.12M | 14.8M | 14.45M |
| otherNonCurrentAssets | 35.55M | 33.89M | 31.78M | 30.47M | 27.58M | 27.68M | 23.87M | 22.8M | 22.81M | 22.51M |
| totalNonCurrentAssets | 152.25M | 148.57M | 145.86M | 142.84M | 135.18M | 132.32M | 130.14M | 131.34M | 137.06M | 140.15M |
| otherAssets | - | - | - | - | - | - | - | - | - | - |
| totalAssets | 401.2M | 386.21M | 376.06M | 364.45M | 336.55M | 326.88M | 320.67M | 318.75M | 321.2M | 318.69M |
| totalPayables | 22.18M | 29.51M | 20.38M | 20.62M | 20.04M | 27.12M | 17.25M | 20.91M | 19.9M | 26.93M |
| accountPayables | 22.18M | 19.08M | 20.38M | 20.62M | 20.04M | 18.85M | 17.25M | 20.91M | 19.9M | 20.84M |
| otherPayables | - | 10.43M | - | - | - | 8.28M | - | - | - | 6.09M |
| accruedExpenses | - | 31.84M | - | - | - | 25.37M | - | - | - | 25.34M |
| shortTermDebt | - | - | - | - | - | 114K | 169K | 236K | 320K | 355K |
| capitalLeaseObligationsCurrent | - | 4.13M | - | - | - | 3.38M | - | - | - | 3.3M |
| taxPayables | - | - | - | - | - | - | - | - | - | - |
| deferredRevenue | 30.38M | 27.21M | 26.62M | 24.53M | 24.34M | 22.86M | 24.11M | 25.56M | 28.01M | 27.12M |
| otherCurrentLiabilities | 78.69M | 11.42M | 55.4M | 53.18M | 48.96M | 8.88M | 45.24M | 45.22M | 44.62M | 9.43M |
| totalCurrentLiabilities | 131.25M | 104.1M | 102.4M | 98.34M | 93.34M | 87.72M | 86.77M | 91.92M | 92.85M | 92.46M |
| longTermDebt | - | - | - | - | - | - | - | - | - | 237K |
| capitalLeaseObligationsNonCurrent | 4.32M | 4.74M | 4.85M | 5.18M | 5.36M | 5.56M | 4.33M | 4.46M | 4.71M | 4.77M |
| deferredRevenueNonCurrent | 13.56M | 14.88M | 14.64M | 14.75M | 11.7M | 12.23M | 12.59M | 12.64M | 13.23M | 13.26M |
| deferredTaxLiabilitiesNonCurrent | 692K | 531K | 520K | 566K | 439K | 418K | 562K | 703K | 842K | 1.12M |
| otherNonCurrentLiabilities | 37.62M | 37.47M | 35.14M | 33.95M | 30.2M | 29.69M | 28.34M | 27.38M | 27.02M | 26.59M |
| totalNonCurrentLiabilities | 56.2M | 57.62M | 55.15M | 54.44M | 47.69M | 47.9M | 45.82M | 45.17M | 45.8M | 45.98M |
| otherLiabilities | - | - | - | - | - | - | - | - | - | - |
| capitalLeaseObligations | 4.32M | 8.88M | 4.85M | 5.18M | 5.36M | 8.95M | 4.33M | 4.46M | 4.71M | 8.07M |
| totalLiabilities | 187.45M | 161.73M | 157.55M | 152.78M | 141.03M | 135.62M | 132.6M | 137.09M | 138.65M | 138.44M |
| treasuryStock | - | -67.39M | - | - | - | - | - | - | - | -64.29M |
| preferredStock | - | - | - | - | - | - | - | - | - | - |
| commonStock | - | 1.98M | - | - | - | 1.98M | - | - | 177.11M | 1.98M |
| retainedEarnings | - | 244.4M | - | - | - | - | - | - | - | 203.56M |
| additionalPaidInCapital | - | 78.38M | - | - | - | - | - | - | - | 78.37M |
| 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 | 17.03M | 15.28M | 14.64M | 13.45M | 14.59M | 13.84M | 13.65M | 13.13M | 13.04M | 12.02M |
| depreciationAndAmortization | 4.65M | 4.93M | 5.01M | 4.6M | 4.63M | 4.5M | 4.94M | 5.35M | 5.3M | 5.41M |
| deferredIncomeTax | -1.21M | -772.74K | -542.8K | - | - | - | - | - | - | - |
| stockBasedCompensation | - | - | - | - | - | - | - | - | - | - |
| changeInWorkingCapital | -2.21M | 8.52M | 899.52K | 4.11M | -5.27M | 929K | 2.26M | 2.6M | -7.51M | 3.37M |
| accountsReceivables | -8.87M | 4.89M | -1.12M | -1.13M | -6.56M | -435K | 1.75M | -1.7M | -4.84M | 1.77M |
| inventory | 2.5M | 3.72M | -894.3K | 72000 | -130K | 775K | 1.06M | 1.01M | 521K | 201K |
| accountsPayables | 2.3M | -1.42M | -724.46K | - | - | - | - | - | - | - |
| otherWorkingCapital | 1.85M | 1.32M | 3.63M | 5.16M | 1.42M | 589K | -550K | 3.3M | -3.19M | 1.4M |
| otherNonCashItems | -11000 | 4.06M | 3.85M | 262K | 1.51M | 3.43M | -3.62M | 1.85M | 574K | 985K |
| netCashProvidedByOperatingActivities | 18.25M | 32.02M | 23.86M | 22.43M | 15.46M | 22.69M | 17.24M | 22.94M | 11.4M | 21.78M |
| investmentsInPropertyPlantAndEquipment | -5.3M | -5.14M | -6.02M | -5.26M | -6.61M | -4.49M | -2.84M | -3.18M | -3.13M | -4.05M |
| acquisitionsNet | -48000 | 365.87K | 133.55K | - | - | - | - | - | - | - |
| purchasesOfInvestments | - | 10932 | 82404 | - | - | - | - | - | - | - |
| salesMaturitiesOfInvestments | - | 23857 | 36597 | - | - | - | - | - | - | - |
| otherInvestingActivities | -873K | -1.1M | -1.57M | -451K | -80000 | -277K | -889K | -793K | -349K | -600K |
| netCashProvidedByInvestingActivities | -6.22M | -5.84M | -7.34M | -5.72M | -6.69M | -4.76M | -3.72M | -3.97M | -3.48M | -4.65M |
| netDebtIssuance | - | -1708 | -4653 | - | -114K | -49000 | -53000 | -58000 | -273K | -244K |
| longTermNetDebtIssuance | - | - | - | - | - | - | - | - | - | -244K |
| shortTermNetDebtIssuance | - | -1708 | -4653 | - | -114K | -49000 | -53000 | -58000 | -273K | - |
| netStockIssuance | -531K | -1.75M | -1.54M | - | - | - | - | - | - | - |
| netCommonStockIssuance | -531K | -1.75M | -1.54M | - | - | - | - | - | - | - |
| commonStockIssuance | - | - | - | - | - | - | - | - | - | - |
| commonStockRepurchased | -531K | -1.75M | -1.54M | - | - | - | - | - | - | - |
| netPreferredStockIssuance | - | - | - | - | - | - | - | - | - | - |
| netDividendsPaid | -9.92M | -10.95M | -11.12M | -9.95M | -7.76M | -7.76M | -7.76M | -7.76M | -4.77M | -2.94M |
| commonDividendsPaid | -9.92M | -10.95M | -11.12M | -9.95M | -7.76M | -7.76M | -7.76M | -7.76M | -4.77M | -2.94M |
| preferredDividendsPaid | - | - | - | - | - | - | - | - | - | - |
| otherFinancingActivities | -1.91M | -270.13K | -68455 | - | -1.68M | -25000 | -1.63M | - | -1.63M | -1.19M |
| netCashProvidedByFinancingActivities | -12.36M | -12.97M | -12.74M | -9.95M | -9.55M | -7.83M | -9.44M | -7.82M | -6.68M | -4.37M |