CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY - USD ($) shares in Thousands, $ in Thousands | Total | Common Stock | Additional Paid-In Capital | Retained Earnings |
Balance at beginning of period at Dec. 31, 2017 | $ 245,583 | | $ 209,603 | $ 35,980 |
Balance at beginning of period (in shares) at Dec. 31, 2017 | | 41,641 | | |
Exercise of common stock options | 1,212 | | 1,212 | |
Exercise of common stock options (in shares) | | 415 | | |
Stock-based compensation | 7,427 | | 7,427 | |
Restricted stock award grants, net of forfeitures and shares withheld for taxes | (361) | | (361) | |
Restricted stock award grants, net of forfeitures and shares withheld for taxes (in shares) | | 13 | | |
Net income | 9,070 | | | 9,070 |
Balance at end of period at Mar. 31, 2018 | 262,931 | | 217,881 | 45,050 |
Balance at end of period (in shares) at Mar. 31, 2018 | | 42,069 | | |
Balance at beginning of period at Dec. 31, 2017 | 245,583 | | 209,603 | 35,980 |
Balance at beginning of period (in shares) at Dec. 31, 2017 | | 41,641 | | |
Net income | 48,705 | | | |
Balance at end of period at Sep. 30, 2018 | 337,014 | | 252,329 | 84,685 |
Balance at end of period (in shares) at Sep. 30, 2018 | | 43,185 | | |
Balance at beginning of period at Mar. 31, 2018 | 262,931 | | 217,881 | 45,050 |
Balance at beginning of period (in shares) at Mar. 31, 2018 | | 42,069 | | |
Exercise of common stock options | 1,997 | | 1,997 | |
Exercise of common stock options (in shares) | | 365 | | |
Stock-based compensation | 9,872 | | 9,872 | |
Issuance of common stock under employee stock purchase plan | 7,014 | | 7,014 | |
Issuance of common stock under employee stock purchase plan (in shares) | | 392 | | |
Restricted stock award grants, net of forfeitures and shares withheld for taxes | (183) | | (183) | |
Restricted stock award grants, net of forfeitures and shares withheld for taxes (in shares) | | 28 | | |
Net income | 19,343 | | | 19,343 |
Balance at end of period at Jun. 30, 2018 | 300,974 | | 236,581 | 64,393 |
Balance at end of period (in shares) at Jun. 30, 2018 | | 42,854 | | |
Exercise of common stock options | 3,956 | | 3,956 | |
Exercise of common stock options (in shares) | | 330 | | |
Stock-based compensation | 11,851 | | 11,851 | |
Restricted stock award grants, net of forfeitures and shares withheld for taxes | (59) | | (59) | |
Restricted stock award grants, net of forfeitures and shares withheld for taxes (in shares) | | 1 | | |
Net income | 20,292 | | | 20,292 |
Balance at end of period at Sep. 30, 2018 | 337,014 | | 252,329 | 84,685 |
Balance at end of period (in shares) at Sep. 30, 2018 | | 43,185 | | |
Balance at beginning of period at Dec. 31, 2018 | 394,567 | | 270,447 | 124,120 |
Balance at beginning of period (in shares) at Dec. 31, 2018 | | 43,864 | | |
Exercise of common stock options | 9,502 | | 9,502 | |
Exercise of common stock options (in shares) | | 592 | | |
Stock-based compensation | 16,324 | | 16,324 | |
Restricted stock award grants, net of forfeitures and shares withheld for taxes | (1,146) | | (1,146) | |
Restricted stock award grants, net of forfeitures and shares withheld for taxes (in shares) | | 23 | | |
Net income | 10,151 | | | 10,151 |
Balance at end of period at Mar. 31, 2019 | 429,398 | | 295,127 | 134,271 |
Balance at end of period (in shares) at Mar. 31, 2019 | | 44,479 | | |
Balance at beginning of period at Dec. 31, 2018 | 394,567 | | $ 270,447 | $ 124,120 |
Balance at beginning of period (in shares) at Dec. 31, 2018 | | 43,864 | | |
Net income | 57,373 | | | |
Balance at end of period at Sep. 30, 2019 | $ 535,392 | | | |
Balance at end of period (in shares) at Sep. 30, 2019 | 535,392 | 45,121 | 353,899 | 181,493 |
Balance at beginning of period at Mar. 31, 2019 | $ 429,398 | | $ 295,127 | $ 134,271 |
Balance at beginning of period (in shares) at Mar. 31, 2019 | | 44,479 | | |
Exercise of common stock options | 7,473 | | 7,473 | |
Exercise of common stock options (in shares) | | 284 | | |
Stock-based compensation | 21,390 | | 21,390 | |
Issuance of common stock under employee stock purchase plan | 8,648 | | 8,648 | |
Issuance of common stock under employee stock purchase plan (in shares) | | 153 | | |
Restricted stock award grants, net of forfeitures and shares withheld for taxes | (2,488) | | (2,488) | |
Restricted stock award grants, net of forfeitures and shares withheld for taxes (in shares) | | 7 | | |
Net income | 27,800 | | | 27,800 |
Balance at end of period at Jun. 30, 2019 | 492,221 | | 330,150 | 162,071 |
Balance at end of period (in shares) at Jun. 30, 2019 | | 44,923 | | |
Exercise of common stock options | 4,936 | | 4,936 | |
Exercise of common stock options (in shares) | | 196 | | |
Stock-based compensation | 19,923 | | 19,923 | |
Restricted stock award grants, net of forfeitures and shares withheld for taxes | (1,110) | | $ (1,110) | |
Restricted stock award grants, net of forfeitures and shares withheld for taxes (in shares) | | 2 | | |
Net income | 19,422 | | | $ 19,422 |
Balance at end of period at Sep. 30, 2019 | $ 535,392 | | | |
Balance at end of period (in shares) at Sep. 30, 2019 | 535,392 | 45,121 | 353,899 | 181,493 |