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 | 6 Months Ended | ||
|---|---|---|---|---|
Jun. 30, 2017 |
Jul. 01, 2016 |
Jun. 30, 2017 |
Jul. 01, 2016 |
|
| Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items] | ||||
| Net income | $ 5,461 | $ 6,050 | $ 12,129 | $ 12,640 |
| Weighted average common shares outstanding - basic (in shares) | 10,987 | 10,702 | 10,948 | 10,665 |
| Add: Dilutive impact of stock options (in shares) | 78 | 103 | 60 | 89 |
| Diluted weighted average common shares outstanding (in shares) | 11,191 | 10,958 | 11,132 | 10,913 |
| Basic earnings per share (in dollars per share) | $ 0.50 | $ 0.57 | $ 1.11 | $ 1.19 |
| Diluted earnings per share (in dollars per share) | $ 0.49 | $ 0.55 | $ 1.09 | $ 1.16 |
| Restricted Stock Units (RSUs) | ||||
| Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items] | ||||
| Add: Dilutive impact of restricted stock units (in shares) | 126 | 153 | 124 | 159 |