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 | ||
|---|---|---|---|---|
Sep. 28, 2018 |
Sep. 29, 2017 |
Sep. 28, 2018 |
Sep. 29, 2017 |
|
| Earnings Per Share [Abstract] | ||||
| Net income | $ 9,866 | $ 5,800 | $ 25,173 | $ 17,930 |
| Weighted average common shares outstanding (in shares) | 11,248 | 11,075 | 11,210 | 10,991 |
| Add: Dilutive impact of stock options (in shares) | 68 | 68 | 75 | 63 |
| Add: Dilutive impact of restricted stock units (in shares) | 90 | 129 | 95 | 114 |
| Diluted weighted average common shares outstanding (in shares) | 11,406 | 11,272 | 11,380 | 11,168 |
| Earnings per share | ||||
| Basic (in dollars per share) | $ 0.88 | $ 0.52 | $ 2.25 | $ 1.63 |
| Diluted (in dollars per share) | $ 0.86 | $ 0.51 | $ 2.21 | $ 1.61 |