Pay vs Performance Disclosure - USD ($) |
12 Months Ended | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec. 31, 2025 |
Dec. 31, 2024 |
Dec. 31, 2023 |
Dec. 31, 2022 |
Dec. 31, 2021 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Pay vs Performance Disclosure | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Pay vs Performance Disclosure, Table |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Company Selected Measure Name | Income before Income Taxes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Named Executive Officers, Footnote | Our CEO, Theodore Wahl, is listed in the table as the principal executive officer (“PEO”) for each year.The non-PEO NEOs included in the calculation for average summary compensation and compensation actually paid for each applicable year are the following: •2025: Vikas Singh, John C. Shea, Andrew W. Kush, and Patrick J. Orr •2024: Vikas Singh, John C. Shea, Andrew W. Kush, Patrick J. Orr, and Andrew M. Brophy (former Principal Financial Officer) •2023: John C. Shea, Andrew W. Kush, Patrick J. Orr, and Andrew M. Brophy •2022: John C. Shea, Andrew W. Kush, Patrick J. Orr, Jason J. Bundick, and Andrew M. Brophy •2021: John C. Shea, Michael E. McBryan (former Executive Vice President, Chief Revenue Officer & Director), Andrew W. Kush, and Jason J. Bundick
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Peer Group Issuers, Footnote | For purposes of the peer group TSR, the Company used the peer group it uses for purposes of Regulation S-K Item 201(e)(1)(ii), please see the Company’s Annual Report on Form 10-K filed with the SEC on February 13, 2026 for further information (the “2025 Form 10-K”).
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| PEO Total Compensation Amount | $ 4,725,723 | $ 4,683,646 | $ 4,559,910 | $ 4,414,263 | $ 4,405,773 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| PEO Actually Paid Compensation Amount | $ 12,211,134 | 5,888,034 | 3,337,578 | 2,445,181 | 1,424,534 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Adjustment To PEO Compensation, Footnote | Below is the reconciliation of the Summary Compensation Table to Compensation Actually Paid for the PEO:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Non-PEO NEO Average Total Compensation Amount | $ 1,448,577 | 972,136 | 1,090,770 | 1,027,589 | 986,045 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Non-PEO NEO Average Compensation Actually Paid Amount | $ 2,668,332 | 1,136,770 | 953,222 | 765,385 | 593,330 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Adjustment to Non-PEO NEO Compensation Footnote | Below is the reconciliation of the Summary Compensation Table to Compensation Actually Paid to the non-PEO NEOs:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Compensation Actually Paid vs. Total Shareholder Return | Below is a graphical depiction of the relationship between the compensation actually paid calculation for the PEO and the non-PEO Named Executive Officers to the TSR and peer group TSR: ![]() *Value of initial fixed investment of $100.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Compensation Actually Paid vs. Net Income | Below is a graphical depiction of the relationship between the compensation actually paid calculation for the PEO and the non-PEO Named Executive Officers to net income: ![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Compensation Actually Paid vs. Company Selected Measure | Below is a graphical depiction of the relationship between the compensation actually paid calculation for the PEO and the non-PEO Named Executive Officers to income before income taxes: ![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Total Shareholder Return Vs Peer Group | Below is a graphical depiction of the relationship between the compensation actually paid calculation for the PEO and the non-PEO Named Executive Officers to the TSR and peer group TSR: ![]() *Value of initial fixed investment of $100.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Tabular List, Table |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Total Shareholder Return Amount | $ 74 | 45 | 40 | 47 | 65 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Peer Group Total Shareholder Return Amount | 155 | 164 | 144 | 123 | 142 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Net Income (Loss) | $ 59,059,000 | $ 39,471,000 | $ 38,386,000 | $ 34,243,000 | $ 48,543,000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Company Selected Measure Amount | 67,866,000 | 52,941,000 | 53,056,000 | 44,553,000 | 65,512,000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| PEO Name | Theodore Wahl | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Additional 402(v) Disclosure | Compensation actually paid is defined in Item 402(v)(2)(iii) of Regulation S-K. Reconciliation of the amounts included in the Summary Compensation Table to compensation actually paid is provided in the “Narrative Disclosure to Pay Versus Performance Table” section below.Total shareholder return (TSR) is calculated based on the return of $100 invested four years prior to the applicable year-end date in stock or index, including reinvestment of dividendsOur company-selected measure is Income before Income Taxes. Our Consolidated Statements of Comprehensive Income included on our Form 10-K provides details of how this is calculated. Differences in the calculations of compensation in the summary compensation and the compensation actually paid are driven primarily on the determination of fair value used to calculate GAAP stock compensation expense and the SEC definition in the compensation actually paid calculation and the timing of equity awards issued during the years ended December 31, 2025, 2024, 2023, 2022 and 2021. For each of the periods included in the CAP table, we have granted the vast majority of our equity awards to the NEOs, including the PEO, and other employees during the first quarter of each fiscal year. Expense for GAAP purposes (which is included in the Summary Compensation Table) for these grants is measured at fair value at the grant date using the current stock price and other inputs that are determined at the grant date, which is then recorded as straight-line stock compensation expense over the vesting period for each grant. In the CAP calculation, the fair value of each equity award is revalued at the end of each fiscal year (instead of the grant date) or upon vesting. For unvested RSUs, we calculated the fair value of outstanding units as the total number of unvested shares times the year-end stock price. For unvested stock options, we calculated the fair value of outstanding unvested options using an updated Black- Scholes model with inputs updated for each respective year-end date. For unvested PSUs, we calculated the fair value of unvested units using an updated Monte-Carlo model with inputs updated for each respective year-end date. Changes in fair value from the grant date, or the previous year-end, to the end of each year in the table were primarily driven by changes in our stock price. No changes were made to the valuation methods or models used in calculating the fair value as of year-end versus each grant date, and no significant changes were made to assumptions used in the models. As equity awards are a significant portion of the compensation package provided to our NEOs, our CAP may fluctuate significantly from period to period based on changes in our stock price. Only two measures are identified reflecting the sole two financial performance measures currently used in our executive compensation framework. Given total shareholder return is already included in the pay versus performance table above, Company income before income taxes is identified as our company-selected measure. Further details on how these performance measures are used in our incentive plans can be found in the Compensation Discussion and Analysis section.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Measure:: 1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Pay vs Performance Disclosure | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Name | Income before income taxes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Measure:: 2 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Pay vs Performance Disclosure | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Name | Total shareholder return | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| PEO | Aggregate Grant Date Fair Value of Equity Award Amounts Reported in Summary Compensation Table | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Pay vs Performance Disclosure | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Adjustment to Compensation, Amount | $ (3,294,001) | $ (3,320,182) | $ (3,193,867) | $ (2,951,289) | $ (3,092,728) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| PEO | Year-end Fair Value of Equity Awards Granted in Covered Year that are Outstanding and Unvested | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Pay vs Performance Disclosure | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Adjustment to Compensation, Amount | 5,852,392 | 3,717,865 | 2,043,205 | 1,695,607 | 1,322,617 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| PEO | Year-over-Year Change in Fair Value of Equity Awards Granted in Prior Years That are Outstanding and Unvested | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Pay vs Performance Disclosure | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Adjustment to Compensation, Amount | 4,035,304 | 660,788 | (126,179) | (961,109) | (1,452,692) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| PEO | Vesting Date Fair Value of Equity Awards Granted and Vested in Covered Year | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Pay vs Performance Disclosure | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Adjustment to Compensation, Amount | 86,575 | 50,378 | 57,375 | 74,167 | 62,953 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| PEO | Change in Fair Value as of Vesting Date of Prior Year Equity Awards Vested in Covered Year | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Pay vs Performance Disclosure | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Adjustment to Compensation, Amount | 805,141 | 95,539 | (2,866) | 10,543 | 10,543 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| PEO | Prior Year End Fair Value of Equity Awards Granted in Any Prior Year that Fail to Meet Applicable Vesting Conditions During Covered Year | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Pay vs Performance Disclosure | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Adjustment to Compensation, Amount | 0 | 0 | 0 | 0 | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| PEO | Dividends or Other Earnings Paid on Equity Awards not Otherwise Reflected in Total Compensation for Covered Year | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Pay vs Performance Disclosure | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Adjustment to Compensation, Amount | 0 | 0 | 0 | 162,999 | 168,068 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Non-PEO NEO | Aggregate Grant Date Fair Value of Equity Award Amounts Reported in Summary Compensation Table | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Pay vs Performance Disclosure | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Adjustment to Compensation, Amount | (657,218) | (396,168) | (430,864) | (421,208) | (404,679) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Non-PEO NEO | Year-end Fair Value of Equity Awards Granted in Covered Year that are Outstanding and Unvested | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Pay vs Performance Disclosure | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Adjustment to Compensation, Amount | 1,146,682 | 458,214 | 289,006 | 242,410 | 187,532 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Non-PEO NEO | Year-over-Year Change in Fair Value of Equity Awards Granted in Prior Years That are Outstanding and Unvested | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Pay vs Performance Disclosure | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Adjustment to Compensation, Amount | 586,545 | 73,246 | (15,443) | (127,340) | (218,593) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Non-PEO NEO | Vesting Date Fair Value of Equity Awards Granted and Vested in Covered Year | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Pay vs Performance Disclosure | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Adjustment to Compensation, Amount | 34,124 | 10,815 | 21,347 | 20,827 | 18,401 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Non-PEO NEO | Change in Fair Value as of Vesting Date of Prior Year Equity Awards Vested in Covered Year | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Pay vs Performance Disclosure | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Adjustment to Compensation, Amount | 109,622 | 18,527 | (1,594) | 1,272 | 1,429 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Non-PEO NEO | Prior Year End Fair Value of Equity Awards Granted in Any Prior Year that Fail to Meet Applicable Vesting Conditions During Covered Year | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Pay vs Performance Disclosure | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Adjustment to Compensation, Amount | 0 | 0 | 0 | 0 | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Non-PEO NEO | Dividends or Other Earnings Paid on Equity Awards not Otherwise Reflected in Total Compensation for Covered Year | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Pay vs Performance Disclosure | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Adjustment to Compensation, Amount | $ 0 | $ 0 | $ 0 | $ 21,835 | $ 23,195 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||