Note 17 - Quarterly Results (Unaudited) - Quarterly Financial Information (Details) - USD ($) $ / shares in Units, $ in Thousands |
3 Months Ended | 12 Months Ended | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Mar. 31, 2017 |
Dec. 31, 2016 |
Sep. 30, 2016 |
Jun. 30, 2016 |
Mar. 31, 2016 |
Dec. 31, 2015 |
Sep. 30, 2015 |
Jun. 30, 2015 |
Mar. 31, 2015 |
Dec. 31, 2014 |
Sep. 30, 2014 |
Jun. 30, 2014 |
Mar. 31, 2017 |
Mar. 31, 2016 |
Mar. 31, 2015 |
|
| Gross profit | $ 13,964 | $ 13,537 | $ 13,724 | $ 12,014 | $ 14,996 | $ 12,209 | $ 13,067 | $ 11,141 | $ 11,512 | $ 11,052 | $ 11,123 | $ 9,705 | $ 53,239 | $ 51,413 | $ 43,392 |
| Net income | $ 3,643 | $ 3,252 | $ 2,358 | $ 1,930 | $ 3,991 | $ 2,597 | $ 1,826 | $ 2,755 | $ 2,239 | $ 2,403 | $ 3,060 | $ 1,881 | $ 11,183 | $ 11,169 | $ 9,583 |
| Net Income per share – basic (in dollars per share) | $ 0.98 | $ 0.88 | $ 0.64 | $ 0.53 | $ 1.10 | $ 0.72 | $ 0.51 | $ 0.77 | $ 0.63 | $ 0.68 | $ 0.87 | $ 0.54 | $ 3.04 | $ 3.10 | $ 2.72 |
| Net Income per share – diluted (in dollars per share) | $ 0.94 | $ 0.84 | $ 0.62 | $ 0.51 | $ 1.06 | $ 0.69 | $ 0.48 | $ 0.74 | $ 0.61 | $ 0.66 | $ 0.84 | $ 0.51 | |||
| Revenues | $ 24,299 | $ 23,843 | $ 24,409 | $ 21,114 | $ 24,812 | $ 19,913 | $ 21,776 | $ 18,158 | $ 18,560 | $ 17,830 | $ 18,540 | $ 16,400 | $ 93,665 | $ 84,659 | $ 71,330 |