Condensed Consolidated Statements of Changes in Stockholders’ Equity (Deficit) - USD ($) shares in Thousands, $ in Thousands | Total | Additional Paid-in Capital | Accumulated Deficit | Accumulated Other Comprehensive Loss | Common Class A Common Stock | Common Class B Common Stock | Common Class B Treasury Stock |
Beginning balance (in shares) at Dec. 31, 2021 | | | | | 87,843 | 30,571 | |
Beginning balance at Dec. 31, 2021 | $ 234,968 | $ 303,395 | $ (67,784) | $ 0 | $ 1 | $ 0 | $ (644) |
Beginning balance (in shares) at Dec. 31, 2021 | | | | | | | (195) |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | | |
Conversion of Class B stock to Class A stock (in shares) | | | | | 1,446 | (1,446) | |
Issuance of common stock upon exercise of options (in shares) | | | | | | 1,180 | |
Issuance of common stock upon exercise of options | 2,078 | 2,078 | | | | | |
Issuance of common stock upon the vesting and settlement of RSUs (in shares) | | | | | 354 | 433 | |
Stock-based compensation | 21,112 | 21,112 | | | | | |
Shares withheld related to net share settlement (in shares) | | | | | (133) | (181) | |
Shares withheld related to net share settlement | (5,902) | (5,902) | | | | | |
Stock issued under employee stock purchase plan (in shares) | | | | | 290 | | |
Shares issued under employee stock purchase plan | 5,293 | 5,293 | | | | | |
Repurchase and retirement of common stock (in shares) | | | | | (2,420) | | |
Repurchase and retirement of common stock | (62,349) | (62,349) | | | | | |
Net income | 8,417 | | 8,417 | | | | |
Ending balance (in shares) at Mar. 31, 2022 | | | | | 87,380 | 30,557 | |
Ending balance at Mar. 31, 2022 | 203,617 | 263,627 | (59,367) | 0 | $ 1 | $ 0 | $ (644) |
Ending balance (in shares) at Mar. 31, 2022 | | | | | | | (195) |
Beginning balance (in shares) at Dec. 31, 2021 | | | | | 87,843 | 30,571 | |
Beginning balance at Dec. 31, 2021 | 234,968 | 303,395 | (67,784) | 0 | $ 1 | $ 0 | $ (644) |
Beginning balance (in shares) at Dec. 31, 2021 | | | | | | | (195) |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | | |
Net income | 42,083 | | | | | | |
Other comprehensive income (loss) | (146) | | | | | | |
Ending balance (in shares) at Sep. 30, 2022 | | | | | 81,090 | 30,557 | |
Ending balance at Sep. 30, 2022 | 133,262 | 159,752 | (25,701) | (146) | $ 1 | $ 0 | $ (644) |
Ending balance (in shares) at Sep. 30, 2022 | | | | | | | (195) |
Beginning balance (in shares) at Mar. 31, 2022 | | | | | 87,380 | 30,557 | |
Beginning balance at Mar. 31, 2022 | 203,617 | 263,627 | (59,367) | 0 | $ 1 | $ 0 | $ (644) |
Beginning balance (in shares) at Mar. 31, 2022 | | | | | | | (195) |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | | |
Conversion of Class B stock to Class A stock (in shares) | | | | | 663 | (663) | |
Issuance of common stock upon exercise of options (in shares) | | | | | 5 | 460 | |
Issuance of common stock upon exercise of options | 1,099 | 1,099 | | | | | |
Issuance of common stock upon the vesting and settlement of RSUs (in shares) | | | | | 275 | 348 | |
Vesting of early exercised options | 97 | 97 | | | | | |
Stock-based compensation | 18,200 | 18,200 | | | | | |
Shares withheld related to net share settlement (in shares) | | | | | (94) | (145) | |
Shares withheld related to net share settlement | (3,665) | (3,665) | | | | | |
Repurchase and retirement of common stock (in shares) | | | | | (4,807) | | |
Repurchase and retirement of common stock | (82,878) | (82,878) | | | | | |
Net income | 13,110 | | 13,110 | | | | |
Ending balance (in shares) at Jun. 30, 2022 | | | | | 83,422 | 30,557 | |
Ending balance at Jun. 30, 2022 | 149,580 | 196,480 | (46,257) | 0 | $ 1 | $ 0 | $ (644) |
Ending balance (in shares) at Jun. 30, 2022 | | | | | | | (195) |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | | |
Conversion of Class B stock to Class A stock (in shares) | | | | | 619 | (619) | |
Issuance of common stock upon exercise of options (in shares) | | | | | | 421 | |
Issuance of common stock upon exercise of options | 646 | 646 | | | | | |
Issuance of common stock upon the vesting and settlement of RSUs (in shares) | | | | | 380 | 341 | |
Stock-based compensation | 19,844 | 19,844 | | | | | |
Shares withheld related to net share settlement (in shares) | | | | | (127) | (143) | |
Shares withheld related to net share settlement | (5,168) | (5,168) | | | | | |
Stock issued under employee stock purchase plan (in shares) | | | | | 159 | | |
Shares issued under employee stock purchase plan | 2,836 | 2,836 | | | | | |
Repurchase and retirement of common stock (in shares) | | | | | (3,363) | | |
Repurchase and retirement of common stock | (54,886) | (54,886) | | | | | |
Net income | 20,556 | | 20,556 | | | | |
Other comprehensive income (loss) | (146) | | | (146) | | | |
Ending balance (in shares) at Sep. 30, 2022 | | | | | 81,090 | 30,557 | |
Ending balance at Sep. 30, 2022 | 133,262 | 159,752 | (25,701) | (146) | $ 1 | $ 0 | $ (644) |
Ending balance (in shares) at Sep. 30, 2022 | | | | | | | (195) |
Beginning balance (in shares) at Dec. 31, 2022 | | | | | 74,320 | 30,379 | |
Beginning balance at Dec. 31, 2022 | $ 28,620 | 35,926 | (6,290) | (373) | $ 1 | $ 0 | $ (644) |
Beginning balance (in shares) at Dec. 31, 2022 | (195) | | | | | | (195) |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | | |
Conversion of Class B stock to Class A stock (in shares) | | | | | 4,568 | (4,568) | |
Issuance of common stock upon exercise of options (in shares) | | | | | 6 | 658 | |
Issuance of common stock upon exercise of options | $ 1,298 | 1,298 | | | | | |
Issuance of common stock upon the vesting and settlement of RSUs (in shares) | | | | | 525 | 269 | |
Stock-based compensation | 22,088 | 22,088 | | | | | |
Shares withheld related to net share settlement (in shares) | | | | | (191) | (109) | |
Shares withheld related to net share settlement | (4,511) | (4,511) | | | | | |
Stock issued under employee stock purchase plan (in shares) | | | | | 237 | | |
Shares issued under employee stock purchase plan | 4,221 | 4,221 | | | | | |
Repurchase and retirement of common stock (in shares) | | | | | (3,806) | | |
Repurchase and retirement of common stock | (60,292) | (59,022) | (1,270) | | | | |
Share repurchase excise tax | (459) | | (459) | | | | |
Net income | 5,011 | | 5,011 | | | | |
Other comprehensive income (loss) | 161 | | | 161 | | | |
Ending balance (in shares) at Mar. 31, 2023 | | | | | 75,659 | 26,629 | |
Ending balance at Mar. 31, 2023 | (3,863) | 0 | (3,008) | (212) | $ 1 | $ 0 | $ (644) |
Ending balance (in shares) at Mar. 31, 2023 | | | | | | | (195) |
Beginning balance (in shares) at Dec. 31, 2022 | | | | | 74,320 | 30,379 | |
Beginning balance at Dec. 31, 2022 | $ 28,620 | 35,926 | (6,290) | (373) | $ 1 | $ 0 | $ (644) |
Beginning balance (in shares) at Dec. 31, 2022 | (195) | | | | | | (195) |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | | |
Net income | $ 43,467 | | | | | | |
Other comprehensive income (loss) | 246 | | | | | | |
Ending balance (in shares) at Sep. 30, 2023 | | | | | 76,199 | 22,829 | |
Ending balance at Sep. 30, 2023 | $ (11,932) | 0 | (11,162) | (127) | $ 1 | $ 0 | $ (644) |
Ending balance (in shares) at Sep. 30, 2023 | (195) | | | | | | (195) |
Beginning balance (in shares) at Mar. 31, 2023 | | | | | 75,659 | 26,629 | |
Beginning balance at Mar. 31, 2023 | $ (3,863) | 0 | (3,008) | (212) | $ 1 | $ 0 | $ (644) |
Beginning balance (in shares) at Mar. 31, 2023 | | | | | | | (195) |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | | |
Conversion of Class B stock to Class A stock (in shares) | | | | | 558 | (558) | |
Issuance of common stock upon exercise of options (in shares) | | | | | 6 | 449 | |
Issuance of common stock upon exercise of options | 1,224 | 1,224 | | | | | |
Issuance of common stock upon the vesting and settlement of RSUs (in shares) | | | | | 570 | 198 | |
Stock-based compensation | 18,040 | 18,040 | | | | | |
Shares withheld related to net share settlement (in shares) | | | | | (187) | (89) | |
Shares withheld related to net share settlement | (4,585) | (4,585) | | | | | |
Repurchase and retirement of common stock (in shares) | | | | | (3,188) | | |
Repurchase and retirement of common stock | (50,592) | (14,679) | (35,913) | | | | |
Share repurchase excise tax | (392) | | (392) | | | | |
Net income | 14,380 | | 14,380 | | | | |
Other comprehensive income (loss) | (64) | | | (64) | | | |
Ending balance (in shares) at Jun. 30, 2023 | | | | | 73,418 | 26,629 | |
Ending balance at Jun. 30, 2023 | (25,852) | 0 | (24,933) | (276) | $ 1 | $ 0 | $ (644) |
Ending balance (in shares) at Jun. 30, 2023 | | | | | | | (195) |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | | |
Conversion of Class B stock to Class A stock (in shares) | | | | | 4,161 | (4,161) | |
Issuance of common stock upon exercise of options (in shares) | | | | | 5 | 268 | |
Issuance of common stock upon exercise of options | 965 | 965 | | | | | |
Issuance of common stock upon the vesting and settlement of RSUs (in shares) | | | | | 603 | 169 | |
Stock-based compensation | 19,331 | 19,331 | | | | | |
Shares withheld related to net share settlement (in shares) | | | | | (209) | (76) | |
Shares withheld related to net share settlement | (4,321) | (4,321) | | | | | |
Stock issued under employee stock purchase plan (in shares) | | | | | 153 | | |
Shares issued under employee stock purchase plan | 2,175 | 2,175 | | | | | |
Repurchase and retirement of common stock (in shares) | | | | | (1,932) | | |
Repurchase and retirement of common stock | (28,269) | (18,150) | (10,119) | | | | |
Share repurchase excise tax | (186) | | (186) | | | | |
Net income | 24,076 | | 24,076 | | | | |
Other comprehensive income (loss) | 149 | | | 149 | | | |
Ending balance (in shares) at Sep. 30, 2023 | | | | | 76,199 | 22,829 | |
Ending balance at Sep. 30, 2023 | $ (11,932) | $ 0 | $ (11,162) | $ (127) | $ 1 | $ 0 | $ (644) |
Ending balance (in shares) at Sep. 30, 2023 | (195) | | | | | | (195) |