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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
revenue | 31,550,000 | 17,518,000 | 17,463,000 | 18,931,000 | 20,721,000 | 21,324,000 | 20,488,000 | 19,175,000 | 19,020,000 | 19,676,000 | 20,177,000 | 19,043,000 | 18,643,000 | 16,181,000 | 15,817,000 | 16,187,000 | 15,535,000 | 15,781,000 | 15,057,000 | 14,351,000 | 14,009,000 | 13,367,000 | 12,244,000 | 11,890,000 | 11,270,000 | 10,705,000 | 10,394,000 | 9,651,000 | 9,770,000 | 8,804,000 | 18,915,000 | 9,928,000 | 9,586,000 | 10,469,000 | 9,313,000 | 9,317,000 | 9,117,000 | 11,908,000 | 9,993,000 | 9,168,000 | 8,151,000 | 9,127,000 | 8,795,000 | 8,342,000 | 9,235,000 | 8,250,000 | 8,163,000 | 8,946,000 | 9,029,000 | 8,313,000 | 9,239,000 | 10,316,000 | 8,853,000 | 8,545,000 | 8,468,000 | 7,301,000 | 7,629,000 | 6,554,000 | 6,323,000 | 5,345,000 | 6,203,000 | 4,397,000 | 4,319,000 | 4,215,000 | 4,293,288 | 4,585,027 | 4,137,621 | 4,066,064 | 3,697,014 | 3,702,056 | 3,499,162 | 3,411,359 | 3,193,136 | 2,861,230 | 2,910,097 | 2,583,993 | 2,430,933 | 2,317,449 | 2,121,783 | 2,010,476 | 1,984,812 | 1,906,573 | 1,686,157 | 1,464,270 |
cost of revenue | 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 | 1,688,000 | 0 | 1,000 | 0 | 0 | 0 | 1,000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 7,000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 251,000 | 0 | 218,000 | 173,000 | 305,000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
gross profit | 31,550,000 | 17,518,000 | 17,463,000 | 18,931,000 | 20,721,000 | 21,324,000 | 20,488,000 | 19,175,000 | 19,020,000 | 19,676,000 | 20,177,000 | 19,043,000 | 18,643,000 | 16,181,000 | 15,817,000 | 16,187,000 | 15,535,000 | 15,781,000 | 15,057,000 | 14,351,000 | 14,009,000 | 13,367,000 | 12,244,000 | 11,890,000 | 11,270,000 | 10,705,000 | 10,394,000 | 9,651,000 | 9,770,000 | 8,804,000 | 17,227,000 | 9,928,000 | 9,585,000 | 10,469,000 | 9,313,000 | 9,317,000 | 9,116,000 | 11,908,000 | 9,993,000 | 9,168,000 | 8,151,000 | 9,127,000 | 8,795,000 | 8,342,000 | 9,228,000 | 8,250,000 | 8,163,000 | 8,946,000 | 9,029,000 | 8,313,000 | 9,239,000 | 10,316,000 | 8,853,000 | 8,545,000 | 8,468,000 | 7,301,000 | 7,629,000 | 6,554,000 | 6,323,000 | 5,094,000 | 6,203,000 | 4,179,000 | 4,146,000 | 3,910,000 | 4,293,288 | 4,585,027 | 4,137,621 | 4,066,064 | 3,697,014 | 3,702,056 | 3,499,162 | 3,411,359 | 3,193,136 | 2,861,230 | 2,910,097 | 2,583,993 | 2,430,933 | 2,317,449 | 2,121,783 | 2,010,476 | 1,984,812 | 1,906,573 | 1,686,157 | 1,464,270 |
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 |
sales and marketing | 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 | -34,000 | 0 | 0 | 34,000 | 59,000 | 75,000 | 57,000 | 56,000 | 54,162 | 74,762 | 73,594 | 67,483 | 76,215 | 57,393 | 73,481 | 53,428 | 78,440 | 74,361 | 100,690 | 33,827 | 35,993 | 27,246 | 56,106 | 45,213 | 101,857 | -59,271 | 34,174 | 25,097 |
general and administrative | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
total operating expenses | 3,258,000 | 3,222,000 | 3,287,000 | 3,866,000 | 3,110,000 | 3,084,000 | 2,717,000 | 2,975,000 | 2,642,000 | 2,542,000 | 2,766,000 | 2,886,000 | 3,162,000 | 2,727,000 | 2,842,000 | 2,686,000 | 2,479,000 | 2,244,000 | 2,353,000 | 2,168,000 | 2,425,000 | 2,170,000 | 2,045,000 | 2,031,000 | 2,170,000 | 1,754,000 | 1,763,000 | 1,971,000 | 1,857,000 | 1,835,000 | 1,955,000 | 2,261,000 | 2,111,000 | 2,045,000 | 2,089,000 | 2,155,000 | 2,238,000 | 1,830,000 | 2,012,000 | 2,084,000 | 2,024,000 | 1,910,000 | 2,020,000 | 1,906,000 | 1,562,000 | 1,796,000 | 1,795,000 | 1,806,000 | 1,608,000 | 1,690,000 | 1,865,000 | 1,866,000 | 1,923,000 | 1,467,000 | 1,586,000 | 1,490,000 | 1,393,000 | 1,225,000 | 1,459,000 | 1,241,000 | 905,000 | 800,000 | 861,000 | 872,000 | 777,759 | 853,089 | 700,318 | 785,835 | 717,591 | 722,097 | 636,028 | 676,497 | 465,805 | 560,614 | 532,850 | 526,032 | 292,051 | 479,440 | 384,966 | 410,812 | 292,865 | 290,363 | 374,815 | 314,821 |
operating income | 2,467,000 | -16,149,000 | -6,872,000 | 4,483,000 | -1,460,000 | -3,850,000 | 1,460,000 | -3,142,000 | -2,774,000 | -2,371,000 | -2,504,000 | -2,612,000 | -3,121,000 | -1,899,000 | -1,413,000 | -63,000 | -7,495,000 | 461,000 | 425,000 | -49,000 | -6,850,000 | -889,000 | -925,000 | -1,811,000 | -6,019,000 | -1,962,000 | -2,577,000 | -2,347,000 | -6,551,000 | -3,180,000 | -1,711,000 | -4,185,000 | -6,673,000 | -4,808,000 | -3,929,000 | -3,952,000 | -6,289,000 | -4,897,000 | -4,841,000 | -4,282,000 | -6,199,000 | -4,377,000 | -3,917,000 | -3,195,000 | -5,397,000 | -3,378,000 | -4,261,000 | -3,872,000 | -5,421,000 | 1,718,000 | 1,902,000 | 1,886,000 | -4,543,000 | 1,515,000 | -2,196,000 | 1,508,000 | -3,959,000 | 1,575,000 | 2,647,000 | 34,000 | -2,721,000 | 75,000 | 57,000 | 56,000 | -2,555,081 | 2,651,999 | 2,680,493 | 1,899,810 | 1,704,256 | 1,561,133 | 1,187,977 | 802,312 | 524,459 | 431,180 | 104,699 | -100,775 | -291,810 | -104,685 | -185,378 | -86,779 | -189,804 | -31,928 | -237,813 | -119,259 |
net income | 29,083,000 | 1,369,000 | 10,591,000 | 23,414,000 | 19,807,000 | 17,474,000 | 16,958,000 | 16,033,000 | 16,246,000 | 17,305,000 | 17,673,000 | 16,431,000 | 15,522,000 | 14,282,000 | 14,404,000 | 16,124,000 | 16,255,000 | 16,242,000 | 15,482,000 | 14,302,000 | 13,096,000 | 12,478,000 | 11,319,000 | 10,079,000 | 8,674,000 | 8,743,000 | 7,817,000 | 7,304,000 | 7,083,000 | 5,624,000 | 15,516,000 | 5,743,000 | 6,945,000 | 5,661,000 | 5,384,000 | 5,365,000 | 4,714,000 | 7,011,000 | 5,152,000 | 4,886,000 | 3,615,000 | 4,750,000 | 4,878,000 | 5,147,000 | 5,007,000 | 4,872,000 | 4,026,000 | 5,074,000 | 4,384,000 | 5,043,000 | 6,020,000 | 6,579,000 | 5,587,000 | 5,828,000 | 6,272,000 | 5,898,000 | 6,172,000 | 6,527,000 | 5,976,000 | 9,488,000 | 6,303,000 | 8,962,000 | 8,719,000 | 8,527,000 | 7,169,986 | 7,237,026 | 6,818,114 | 5,965,874 | 5,401,270 | 5,263,189 | 4,687,139 | 4,213,671 | 3,717,595 | 3,292,410 | 3,014,796 | 2,483,218 | 2,139,123 | 2,212,764 | 1,936,405 | 1,923,697 | 1,795,008 | 1,874,645 | 1,448,344 | 1,345,011 |
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.
