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 | 9 Months Ended | ||||||
|---|---|---|---|---|---|---|---|---|
Oct. 02, 2020 |
Jul. 03, 2020 |
Apr. 03, 2020 |
Sep. 27, 2019 |
Jun. 28, 2019 |
Mar. 29, 2019 |
Oct. 02, 2020 |
Sep. 27, 2019 |
|
| Earnings Per Share [Abstract] | ||||||||
| Net income | $ 10,391 | $ 1,111 | $ 8,668 | $ 7,841 | $ 7,617 | $ 7,074 | $ 20,170 | $ 22,532 |
| Weighted average common shares outstanding (in shares) | 11,621 | 11,506 | 11,590 | 11,420 | ||||
| Add: Dilutive impact of stock options (in shares) | 34 | 37 | 38 | 45 | ||||
| Add: Dilutive impact of restricted stock units (in shares) | 96 | 135 | 115 | 101 | ||||
| Diluted weighted average common shares outstanding (in shares) | 11,751 | 11,678 | 11,743 | 11,566 | ||||
| Earnings per share | ||||||||
| Basic (in dollars per share) | $ 0.89 | $ 0.68 | $ 1.74 | $ 1.97 | ||||
| Diluted (in dollars per share) | $ 0.88 | $ 0.67 | $ 1.72 | $ 1.95 | ||||