Quarterly
Annual
| Unit: USD | 2023-10-29 | 2023-07-30 | 2023-04-30 | 2023-01-29 | 2022-10-30 | 2022-07-31 | 2022-05-01 | 2022-01-30 | 2021-10-31 | 2021-08-01 | 2021-05-02 | 2021-04-30 | 2021-01-31 | 2020-11-01 | 2020-08-02 | 2020-05-03 | 2020-02-02 | 2019-11-03 | 2019-08-04 | 2019-05-05 | 2019-02-03 | 2018-10-28 | 2018-07-29 | 2018-04-29 | 2018-01-28 | 2017-10-29 | 2017-07-30 | 2017-04-30 | 2017-01-29 | 2016-10-30 | 2016-07-31 | 2016-05-01 | 2016-01-31 | 2015-11-01 | 2015-08-02 | 2015-05-03 | 2015-02-01 | 2014-11-02 | 2014-08-03 | 2014-05-04 | 2014-02-02 | 2013-11-03 | 2013-08-04 | 2013-05-05 | 2013-02-03 | 2012-10-28 | 2012-07-29 | 2012-04-29 | 2012-01-29 | 2011-10-30 | 2011-07-31 | 2011-05-01 | 2011-01-30 | 2010-10-31 | 2010-08-01 | 2010-05-02 | 2010-01-31 | 2009-11-01 | 2009-08-02 | 2009-05-03 | 2009-02-01 | 2008-11-02 | 2008-08-03 | 2008-05-04 | 2008-02-03 | 2007-10-28 | 2007-07-29 | 2007-04-29 | 2007-01-28 | 2006-11-30 | 2006-08-31 | 2006-05-31 | 2006-02-28 | 2005-11-30 | 2005-08-31 | 2005-05-31 | 2005-02-28 | 2004-11-30 | 2004-08-31 | 2004-05-31 | 2004-02-29 | 2003-11-30 | 2003-08-31 | 2003-05-31 | 2003-02-28 | 2002-11-30 | 2002-08-31 | 2002-05-31 | 2002-02-28 | 2001-11-30 | 2001-08-31 | 2001-05-31 | 2001-02-28 | 2000-11-30 | 2000-08-31 | 2000-05-31 | 2000-02-29 | 2000-02-28 | 1999-11-30 | 1999-08-31 | 1999-05-31 | 1999-02-28 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
revenue | 116,831,000 | 97,806,000 | 121,815,000 | 131,299,000 | 151,580,000 | 152,908,000 | 147,314,000 | 134,805,000 | 133,428,000 | 162,519,000 | 162,861,000 | 162,861,000 | 155,259,000 | 149,687,000 | 130,537,000 | 104,597,000 | 164,882,000 | 158,176,000 | 152,248,000 | 135,518,000 | 200,475,000 | 171,474,000 | 168,661,000 | 142,892,000 | 175,519,000 | 157,934,000 | 156,308,000 | 130,872,000 | 173,927,000 | 145,298,000 | 136,163,000 | 121,831,000 | 60,565,000 | 65,338,000 | 60,140,000 | 60,956,000 | 64,903,000 | 63,168,000 | 54,883,000 | 61,396,000 | 57,572,000 | 59,125,000 | 55,301,000 | 56,295,000 | 59,641,000 | 56,803,000 | 50,185,000 | 51,730,000 | 54,358,000 | 54,180,000 | 55,574,000 | 58,393,000 | 54,964,000 | 55,735,000 | 53,377,000 | 51,353,000 | 52,701,000 | 52,605,000 | 45,978,000 | 52,063,000 | 56,511,000 | 68,996,000 | 64,628,000 | 71,027,000 | 82,298,000 | 83,768,000 | 73,441,000 | 77,294,000 | 49,061,000 | 90,987,000 | 83,006,000 | 90,694,000 | 85,339,000 | 90,153,000 | 82,398,000 | 88,698,000 | 80,526,000 | 91,923,000 | 84,309,000 | 91,490,000 | 78,222,000 | 79,666,000 | 74,749,000 | 80,115,000 | 74,475,000 | 70,438,000 | 54,726,000 | 62,253,000 | 60,929,000 | 59,181,000 | 50,606,000 | 55,578,000 | 55,924,000 | 66,300,000 | 61,500,000 | 66,013,000 | 56,289,000 | 56,289,000 | 61,500,000 | 54,400,000 | 59,400,000 | 52,600,000 |
cost of revenue | 83,121,000 | 74,465,000 | 93,909,000 | 130,527,000 | 119,572,000 | 121,853,000 | 117,855,000 | 118,409,000 | 113,421,000 | 130,802,000 | 129,279,000 | 129,279,000 | 121,648,000 | 116,204,000 | 103,537,000 | 85,944,000 | 133,665,000 | 129,777,000 | 123,422,000 | 110,001,000 | 156,935,000 | 135,638,000 | 133,016,000 | 110,926,000 | 135,800,000 | 123,656,000 | 123,191,000 | 102,729,000 | 133,809,000 | 114,372,000 | 107,685,000 | 95,232,000 | 42,510,000 | 47,173,000 | 44,047,000 | 44,581,000 | 47,401,000 | 47,137,000 | 41,226,000 | 45,786,000 | 43,618,000 | 45,527,000 | 42,044,000 | 42,379,000 | 42,842,000 | 43,243,000 | 38,920,000 | 40,808,000 | 41,428,000 | 41,443,000 | 43,411,000 | 47,360,000 | 44,082,000 | 43,460,000 | 41,421,000 | 39,584,000 | 37,884,000 | 39,928,000 | 36,283,000 | 40,836,000 | 55,627,000 | 49,188,000 | 46,328,000 | 49,735,000 | 56,767,000 | 57,132,000 | 50,440,000 | 55,216,000 | 35,446,000 | 63,018,000 | 59,546,000 | 63,888,000 | 62,360,000 | 64,654,000 | 61,165,000 | 64,459,000 | 59,595,000 | 65,484,000 | 61,169,000 | 66,004,000 | 57,810,000 | 58,381,000 | 55,073,000 | 59,473,000 | 53,953,000 | 48,209,000 | 39,590,000 | 46,231,000 | 45,528,000 | 44,911,000 | 39,825,000 | 42,948,000 | 42,324,000 | 51,000,000 | 45,100,000 | 48,403,000 | 41,787,000 | 41,787,000 | 45,400,000 | 40,700,000 | 43,700,000 | 38,800,000 |
gross profit | 33,710,000 | 23,341,000 | 27,906,000 | 772,000 | 32,008,000 | 31,055,000 | 29,459,000 | 16,396,000 | 20,007,000 | 31,717,000 | 33,582,000 | 33,582,000 | 33,611,000 | 33,483,000 | 27,000,000 | 18,653,000 | 31,217,000 | 28,399,000 | 28,826,000 | 25,517,000 | 43,540,000 | 35,836,000 | 35,645,000 | 31,966,000 | 39,719,000 | 34,278,000 | 33,117,000 | 28,143,000 | 40,118,000 | 30,926,000 | 28,478,000 | 26,599,000 | 18,055,000 | 18,165,000 | 16,093,000 | 16,375,000 | 17,502,000 | 16,031,000 | 13,657,000 | 15,610,000 | 13,954,000 | 13,598,000 | 13,257,000 | 13,916,000 | 16,799,000 | 13,560,000 | 11,265,000 | 10,922,000 | 12,930,000 | 12,737,000 | 12,163,000 | 11,033,000 | 10,882,000 | 12,275,000 | 11,956,000 | 11,769,000 | 14,817,000 | 12,677,000 | 9,695,000 | 11,227,000 | 884,000 | 19,808,000 | 18,300,000 | 21,292,000 | 25,531,000 | 26,636,000 | 23,001,000 | 22,078,000 | 13,615,000 | 27,969,000 | 23,460,000 | 26,806,000 | 22,979,000 | 25,499,000 | 21,233,000 | 24,239,000 | 20,931,000 | 26,439,000 | 23,140,000 | 25,486,000 | 20,412,000 | 21,285,000 | 19,676,000 | 20,642,000 | 20,522,000 | 22,229,000 | 15,136,000 | 16,022,000 | 15,401,000 | 14,270,000 | 10,781,000 | 12,630,000 | 13,600,000 | 15,300,000 | 16,400,000 | 17,610,000 | 14,502,000 | 14,502,000 | 16,100,000 | 13,700,000 | 15,700,000 | 13,800,000 |
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 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
sales and marketing | 0 | 0 | 0 | 2,000,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 | 42,222,000 | 0 | 0 | 0 | 39,606,000 | 0 | 0 | 0 | 40,375,000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 50,680,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 | 100,000 | 0 | 0 | 0 | -100,000 | -0 | 0 | 0 |
general and administrative | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
total operating expenses | 0 | 0 | 0 | 21,560,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 | -31,742,000 | 0 | 0 | 0 | -28,118,000 | 0 | 0 | 0 | -29,986,000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | -41,053,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 | 10,800,000 | 10,300,000 | 0 | 0 | 0 | 9,800,000 | 8,700,000 | 9,000,000 | 8,200,000 |
operating income | 24,940,000 | 22,068,000 | 25,931,000 | 24,438,000 | 25,590,000 | 23,764,000 | 25,536,000 | 21,728,000 | 21,735,000 | 22,056,000 | 21,339,000 | 21,339,000 | 23,086,000 | 20,446,000 | 19,488,000 | 19,773,000 | 22,177,000 | 23,406,000 | 23,058,000 | 22,612,000 | 24,373,000 | 23,575,000 | 23,780,000 | 22,586,000 | 23,933,000 | 23,073,000 | 21,322,000 | 21,035,000 | 23,062,000 | 20,987,000 | 20,254,000 | 22,598,000 | 11,534,000 | 11,525,000 | 10,234,000 | 11,133,000 | 10,994,000 | 11,148,000 | 10,243,000 | 11,367,000 | 10,480,000 | 10,443,000 | 10,617,000 | 10,682,000 | 11,488,000 | 9,781,000 | 8,943,000 | 9,394,000 | 10,389,000 | 10,031,000 | 9,669,000 | 10,286,000 | 9,962,000 | 10,610,000 | 10,387,000 | 10,063,000 | 9,627,000 | 10,894,000 | 10,254,000 | 11,181,000 | 2,454,000 | 15,661,000 | 15,437,000 | 17,342,000 | 18,855,000 | 17,312,000 | 15,072,000 | 16,001,000 | 27,886,000 | 18,619,000 | 18,588,000 | 17,326,000 | 17,016,000 | 18,713,000 | 15,364,000 | 15,934,000 | 15,486,000 | 17,170,000 | 15,804,000 | 16,161,000 | 13,572,000 | 15,087,000 | 13,394,000 | 14,401,000 | 12,021,000 | 12,327,000 | 9,603,000 | 154,690,000 | 9,849,000 | 10,374,000 | 9,240,000 | 10,247,000 | 9,461,000 | 10,800,000 | 10,400,000 | 10,404,000 | 9,342,000 | 9,342,000 | 9,700,000 | 8,700,000 | 9,000,000 | 8,200,000 |
net income | 8,770,000 | 1,273,000 | 1,975,000 | -23,666,000 | 6,418,000 | 7,291,000 | 3,923,000 | -5,332,000 | -1,728,000 | 9,661,000 | 12,243,000 | 12,243,000 | 10,525,000 | 13,037,000 | 7,512,000 | -1,120,000 | 9,040,000 | 4,993,000 | 5,768,000 | 2,905,000 | 19,167,000 | 12,261,000 | 11,865,000 | 9,380,000 | 15,786,000 | 11,205,000 | 11,795,000 | 7,108,000 | 17,056,000 | 9,939,000 | 8,224,000 | 4,001,000 | 6,521,000 | 6,640,000 | 5,859,000 | 5,242,000 | 6,508,000 | 4,883,000 | 3,414,000 | 4,243,000 | 3,474,000 | 3,155,000 | 2,640,000 | 3,234,000 | 5,311,000 | 3,779,000 | 2,322,000 | 1,528,000 | 726,000 | 2,706,000 | 2,494,000 | 747,000 | -879,000 | 1,665,000 | 1,569,000 | 1,706,000 | 4,529,000 | 1,783,000 | -499,000 | -627,000 | -1,438,000 | 4,708,000 | 3,121,000 | 3,950,000 | 7,130,000 | 8,905,000 | 7,456,000 | 6,206,000 | -17,244,000 | 5,614,000 | 2,035,000 | 9,360,000 | 5,775,000 | 6,575,000 | 1,196,000 | 8,305,000 | 5,079,000 | 9,638,000 | 5,363,000 | 9,325,000 | 6,840,000 | 6,198,000 | 6,282,000 | 4,771,000 | 8,501,000 | 9,902,000 | 5,533,000 | 5,332,000 | 5,552,000 | 3,896,000 | 660,000 | 2,383,000 | 4,139,000 | 4,500,000 | 6,100,000 | 7,206,000 | 5,160,000 | 5,160,000 | 6,300,000 | 5,000,000 | 6,700,000 | 5,600,000 |
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.
