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. 29, 2017 |
Sep. 30, 2016 |
Sep. 29, 2017 |
Sep. 30, 2016 |
|
| Earnings Per Share [Abstract] | ||||
| Net income | $ 5,800 | $ 6,607 | $ 17,930 | $ 19,246 |
| Weighted Average Number of Shares Outstanding Reconciliation [Abstract] | ||||
| Weighted average common shares outstanding - basic (in shares) | 11,075 | 10,733 | 10,991 | 10,688 |
| Add: Dilutive impact of stock options (in shares) | 68 | 142 | 63 | 109 |
| Add: Dilutive impact of restricted stock units (in shares) | 129 | 186 | 114 | 169 |
| Diluted weighted average common shares outstanding (in shares) | 11,272 | 11,061 | 11,168 | 10,966 |
| Basic earnings per share (in dollars per share) | $ 0.52 | $ 0.62 | $ 1.63 | $ 1.80 |
| Diluted earnings per share (in dollars per share) | $ 0.51 | $ 0.60 | $ 1.61 | $ 1.76 |