Quarterly
Annual
| Unit: USD | 2023-12-31 | 2023-09-30 | 2023-06-30 | 2023-03-31 | 2022-12-31 | 2022-09-30 | 2022-06-30 | 2022-03-31 | 2021-12-31 | 2021-09-30 | 2021-06-30 | 2021-03-31 | 2020-12-31 | 2020-09-30 | 2020-06-30 | 2020-03-31 | 2019-12-31 | 2019-09-30 | 2019-06-30 | 2019-03-31 | 2018-12-31 | 2018-09-30 | 2018-06-30 | 2018-03-31 | 2017-12-31 | 2017-09-30 | 2017-06-30 | 2017-03-31 | 2016-12-31 | 2016-09-30 | 2016-06-30 | 2016-03-31 | 2015-12-31 | 2015-09-30 | 2015-06-30 | 2015-03-31 | 2014-12-31 | 2014-09-30 | 2014-06-30 | 2014-03-31 | 2013-12-31 | 2013-09-30 | 2013-06-30 | 2013-03-31 | 2012-12-31 | 2012-09-30 | 2012-06-30 | 2012-03-31 | 2011-12-31 | 2011-09-30 | 2011-06-30 | 2011-03-31 | 2010-12-31 | 2010-09-30 | 2010-06-30 | 2010-03-31 | 2009-12-31 | 2009-09-30 | 2009-06-30 | 2009-03-31 | 2008-12-31 | 2008-09-30 | 2008-06-30 | 2008-03-31 | 2007-12-31 | 2007-09-30 | 2007-06-30 | 2007-03-31 | 2006-12-31 | 2006-09-30 | 2006-06-30 | 2006-03-31 | 2005-12-31 | 2005-09-30 | 2005-06-30 | 2005-03-31 | 2004-12-31 | 2004-09-30 | 2004-06-30 | 2004-03-31 | 2003-12-31 | 2003-09-30 | 2003-06-30 | 2003-03-31 | 2002-12-31 | 2002-09-30 | 2002-06-30 | 2002-03-31 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
revenue | 44,581,000 | 41,092,000 | 19,592,000 | 21,652,000 | 22,807,000 | 26,143,000 | 26,379,000 | 26,080,000 | 26,950,000 | 26,706,000 | 25,228,000 | 25,445,000 | 24,594,000 | 24,218,000 | 22,419,000 | 20,867,000 | 19,429,000 | 19,154,000 | 17,923,000 | 18,008,000 | 17,358,000 | 17,699,000 | 17,226,000 | 17,329,000 | 17,452,000 | 17,149,000 | 17,273,000 | 16,403,000 | 16,355,000 | 16,410,000 | 15,884,000 | 15,644,000 | 16,619,000 | 15,464,000 | 15,109,000 | 14,651,000 | 14,668,000 | 14,779,000 | 14,310,000 | 14,361,000 | 13,835,000 | 13,756,000 | 13,421,000 | 13,045,000 | 13,071,000 | 12,811,000 | 13,737,000 | 12,625,000 | 13,190,000 | 12,894,000 | 12,529,000 | 13,148,000 | 13,367,000 | 13,703,000 | 12,985,000 | 12,452,000 | 13,243,000 | 12,804,000 | 13,710,000 | 15,779,000 | 14,539,000 | 14,682,000 | 14,404,000 | 13,712,000 | 13,550,000 | 13,702,000 | 13,823,000 | 13,181,000 | 13,845,132 | 13,871,837 | 13,796,696 | 13,424,335 | 12,889,551 | 12,394,467 | 12,482,562 | 12,123,308 | 12,157,256 | 11,775,905 | 11,410,772 | 11,008,979 | 11,984,743 | 10,664,541 | 9,615,421 | 9,362,240 | 9,806,810 | 9,532,988 | 9,357,715 | 8,906,876 |
cost of revenue | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 134,000 | 0 | 0 | 0 | 125,000 | 0 | 0 | 0 | 112,000 | 0 | 0 | 404,000 | 109,000 | 0 | 0 | 109,000 | 114,000 | 0 | 0 | 0 | 146,000 | 0 | 0 | 0 | 582,000 | 0 | 0 | 0 | 521,000 | 0 | 0 | 130,000 | 125,000 | 122,000 | 0 | 120,000 | 684,000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
gross profit | 44,581,000 | 41,092,000 | 19,592,000 | 21,652,000 | 22,807,000 | 26,143,000 | 26,379,000 | 26,080,000 | 26,816,000 | 26,706,000 | 25,228,000 | 25,445,000 | 24,469,000 | 24,218,000 | 22,419,000 | 20,867,000 | 19,317,000 | 19,154,000 | 17,923,000 | 17,604,000 | 17,249,000 | 17,699,000 | 17,226,000 | 17,220,000 | 17,338,000 | 17,149,000 | 17,273,000 | 16,403,000 | 16,209,000 | 16,410,000 | 15,884,000 | 15,644,000 | 16,037,000 | 15,464,000 | 15,109,000 | 14,651,000 | 14,147,000 | 14,779,000 | 14,310,000 | 14,231,000 | 13,710,000 | 13,634,000 | 13,421,000 | 12,925,000 | 12,387,000 | 12,811,000 | 13,737,000 | 12,625,000 | 13,190,000 | 12,894,000 | 12,529,000 | 13,148,000 | 13,367,000 | 13,703,000 | 12,985,000 | 12,452,000 | 13,243,000 | 12,804,000 | 13,710,000 | 15,779,000 | 14,539,000 | 14,682,000 | 14,404,000 | 13,712,000 | 13,550,000 | 13,702,000 | 13,823,000 | 13,181,000 | 13,845,132 | 13,871,837 | 13,796,696 | 13,424,335 | 12,889,551 | 12,394,467 | 12,482,562 | 12,123,308 | 12,157,256 | 11,775,905 | 11,410,772 | 11,008,979 | 11,984,743 | 10,664,541 | 9,615,421 | 9,362,240 | 9,806,810 | 9,532,988 | 9,357,715 | 8,906,876 |
operating expenses | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
research and development | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
sales, general and administrative | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
total operating expenses | 4,194,000 | 254,000 | 287,000 | 250,000 | 672,000 | 250,000 | 202,000 | 217,000 | -8,675,000 | 212,000 | 268,000 | 283,000 | -10,534,000 | 230,000 | 200,000 | 239,000 | 814,000 | 204,000 | 209,000 | 234,000 | 840,000 | 196,000 | 178,000 | 234,000 | 1,075,000 | 184,000 | 248,000 | 293,000 | 774,000 | 189,000 | 196,000 | 234,000 | 748,000 | 194,000 | 177,000 | 204,000 | 944,000 | 249,000 | 221,000 | 264,000 | 1,200,000 | 286,000 | 333,000 | 303,000 | 1,064,000 | 276,000 | 287,000 | 292,000 | -12,139,000 | 297,000 | 237,000 | 222,000 | -11,826,000 | 230,000 | 226,000 | -9,113,000 | -3,670,000 | -9,814,000 | -39,074,000 | 5,532,000 | -4,129,000 | -8,381,000 | -854,000 | -3,282,000 | 3,461,000 | 4,347,000 | 4,972,000 | 4,183,000 | 3,892,674 | 4,487,792 | 3,734,798 | 2,150,736 | 2,406,402 | 1,685,413 | 694,228 | -104,008 | -206,041 | -929,915 | -1,420,273 | -1,660,229 | -2,799,300 | -825,748 | -389,492 | -390,315 | 211,086 | 353,524 | 349,823 | 604,614 |
operating income | 40,387,000 | 7,351,000 | 7,256,000 | 28,065,000 | 25,768,000 | 23,987,000 | 21,659,000 | 19,592,000 | 18,141,000 | 19,174,000 | 19,810,000 | 18,004,000 | 13,935,000 | 13,754,000 | 14,015,000 | 17,077,000 | 17,243,000 | 17,934,000 | 16,584,000 | 16,226,000 | 15,122,000 | 15,873,000 | 13,602,000 | 13,206,000 | 13,393,000 | 12,804,000 | 12,310,000 | 10,908,000 | 10,858,000 | 10,422,000 | 9,793,000 | 9,755,000 | 10,066,000 | 9,333,000 | 9,098,000 | 8,935,000 | 7,487,000 | 8,996,000 | 8,465,000 | 7,897,000 | 7,848,000 | 8,161,000 | 7,863,000 | 7,397,000 | 7,871,000 | 7,697,000 | 8,429,000 | 8,242,000 | 15,268,000 | 7,202,000 | 8,686,000 | 9,267,000 | 13,383,000 | 9,609,000 | 9,240,000 | 3,339,000 | 9,573,000 | 2,990,000 | -25,364,000 | 10,386,000 | 10,410,000 | 6,301,000 | 13,550,000 | 10,430,000 | 17,011,000 | 18,049,000 | 18,795,000 | 17,364,000 | 17,737,806 | 18,359,629 | 17,531,494 | 15,575,071 | 15,295,953 | 14,079,880 | 13,176,790 | 12,019,300 | 11,951,215 | 10,845,990 | 9,990,499 | 9,348,750 | 9,185,443 | 9,838,793 | 9,225,929 | 8,971,925 | 10,017,896 | 9,886,512 | 9,707,538 | 9,511,490 |
net income | 4,525,000 | 5,906,000 | 5,862,000 | 7,844,000 | 8,946,000 | 11,602,000 | 12,667,000 | 13,184,000 | 11,910,000 | 12,706,000 | 13,239,000 | 11,752,000 | 8,554,000 | 8,100,000 | 7,969,000 | 8,089,000 | 7,607,000 | 7,526,000 | 6,658,000 | 6,899,000 | 7,227,000 | 7,133,000 | 6,764,000 | 7,384,000 | 4,194,000 | 6,405,000 | 6,365,000 | 6,106,000 | 6,031,000 | 5,813,000 | 5,476,000 | 5,696,000 | 5,941,000 | 5,426,000 | 5,272,000 | 5,103,000 | 5,838,000 | 5,063,000 | 4,739,000 | 4,400,000 | 4,282,000 | 4,363,000 | 4,298,000 | 3,948,000 | 3,899,000 | 3,752,000 | 4,383,000 | 3,977,000 | 3,732,000 | 3,083,000 | 3,923,000 | 4,530,000 | 3,500,000 | 3,941,000 | 2,603,000 | 3,339,000 | 2,816,000 | 1,905,000 | -22,279,000 | 2,941,000 | 2,108,000 | -360,000 | 4,514,000 | 1,374,000 | 4,402,000 | 4,947,000 | 5,127,000 | 4,444,000 | 5,003,228 | 4,976,665 | 4,881,886 | 4,545,221 | 5,284,781 | 4,962,704 | 4,984,787 | 4,842,481 | 4,992,584 | 4,806,826 | 4,553,100 | 4,261,967 | 4,417,357 | 4,563,845 | 4,250,861 | 4,050,565 | 4,377,387 | 4,170,189 | 4,008,927 | 3,819,301 |
The information provided in this report is taken from www.sec.gov and many other data providers. While we have conducted our best efforts to ensure that the parsed data is accurate, we cannot guarantee its accuracy. Please use caution and understand that any consequences of its use are your own responsibility.
