Earnings Per Share - Reconciliation of Basic and Diluted Weighted Average Shares Outstanding (Details) - USD ($) $ / shares in Units, shares in Thousands, $ in Thousands |
3 Months Ended | 12 Months Ended | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
Dec. 31, 2020 |
Oct. 02, 2020 |
Jul. 03, 2020 |
Apr. 03, 2020 |
Dec. 31, 2019 |
Sep. 27, 2019 |
Jun. 28, 2019 |
Mar. 29, 2019 |
Dec. 31, 2020 |
Dec. 31, 2019 |
Dec. 31, 2018 |
|
| Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items] | |||||||||||
| Net income | $ 16,781 | $ 10,391 | $ 1,111 | $ 8,668 | $ 10,644 | $ 7,841 | $ 7,617 | $ 7,074 | $ 36,951 | $ 33,176 | $ 35,086 |
| Weighted average common shares outstanding - basic (in shares) | 11,624 | 11,621 | 11,607 | 11,545 | 11,515 | 11,506 | 11,455 | 11,292 | 11,599 | 11,444 | 11,224 |
| Add: Dilutive impact of stock options (in shares) | 37 | 47 | 63 | ||||||||
| Weighted average number of shares outstanding - diluted (in shares) | 11,782 | 11,751 | 11,745 | 11,745 | 11,728 | 11,678 | 11,605 | 11,399 | 11,751 | 11,612 | 11,378 |
| Basic earnings per share (in dollars per share) | $ 1.44 | $ 0.89 | $ 0.10 | $ 0.75 | $ 0.92 | $ 0.69 | $ 0.66 | $ 0.63 | $ 3.19 | $ 2.90 | $ 3.13 |
| Diluted earnings per share (in dollars per share) | $ 1.42 | $ 0.88 | $ 0.09 | $ 0.74 | $ 0.91 | $ 0.67 | $ 0.66 | $ 0.62 | $ 3.14 | $ 2.86 | $ 3.08 |
| Anti-dilutive restricted stock units | |||||||||||
| Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items] | |||||||||||
| Add: Dilutive impact of restricted stock units (in shares) | 115 | 121 | 91 | ||||||||