Every figure below is the company's own, as filed. Nothing is estimated and
nothing is smoothed — a period the filing does not support is left blank rather than
drawn.
Quarters are the company's own, counted from its financial
year ending 04-30.
Amounts in USD.
Revenue Quarterly
0
2.5M
5M
7.5M
Q1 '17: 2.7M
Q2 '17: 2.9M
Q3 '17: 2.6M
Q4 '17: 2.7M
Q1 '18: 2.2M
Q2 '18: 3.1M
Q3 '18: 3.3M
Q4 '18: 3.3M
Q1 '19: 3.4M
Q2 '19: 3.7M
Q3 '19: 3.5M
Q4 '19: 3.6M
Q1 '20: 3.6M
Q2 '20: 3.7M
Q3 '20: 3.6M
Q4 '20: 4M
Q1 '21: 4M
Q2 '21: 4.6M
Q3 '21: 4.6M
Q4 '21: 5.2M
Q1 '22: 5M
Q2 '22: 5.2M
Q3 '22: 5.1M
Q4 '22: 5.5M
Q1 '23: 5.2M
Q2 '23: 5.6M
Q3 '23: 4.4M
Q4 '23: 4.8M
Q1 '24: 4.7M
Q2 '24: 6.1M
Q3 '24: 5.4M
Q4 '24: 5.6M
Q1 '25: 5.8M
Q2 '25: 5.6M
Q3 '25: 4.9M
Q4 '25: 6.2M
Q1 '26: 5.9M
Q2 '26: 6.3M
Q3 '26: 5.7M
Q4 '26: 7M
Q1 '18
Q2 '19
Q3 '20
Q4 '21
Q1 '23
Q2 '24
Q3 '25
Q4 '26
Gross Profit Quarterly
0
1.5M
3M
4.5M
Q1 '17: 1.3M
Q2 '17: 1.6M
Q3 '17: 1.4M
Q4 '17: 1.4M
Q1 '18: 1.2M
Q2 '18: 1.7M
Q3 '18: 1.4M
Q4 '18: 1.4M
Q1 '19: 1.6M
Q2 '19: 1.8M
Q3 '19: 1.7M
Q4 '19: 1.7M
Q1 '20: 1.8M
Q2 '20: 1.9M
Q3 '20: 1.8M
Q4 '20: 2M
Q1 '21: 2.1M
Q2 '21: 2.4M
Q3 '21: 2.2M
Q4 '21: 2.6M
Q1 '22: 2.6M
Q2 '22: 2.5M
Q3 '22: 2.2M
Q4 '22: 2.7M
Q1 '23: 2.6M
Q2 '23: 2.6M
Q3 '23: 1.9M
Q4 '23: 2.3M
Q1 '24: 2.3M
Q2 '24: 3.1M
Q3 '24: 2.7M
Q4 '24: 2.8M
Q1 '25: 2.9M
Q2 '25: 2.7M
Q3 '25: 2.3M
Q4 '25: 3M
Q1 '26: 3M
Q2 '26: 3M
Q3 '26: 2.6M
Q4 '26: 3.4M
Q1 '18
Q2 '19
Q3 '20
Q4 '21
Q1 '23
Q2 '24
Q3 '25
Q4 '26
Operating Income Quarterly
0
700K
1.4M
2.1M
Q1 '17: 562K
Q2 '17: 854K
Q3 '17: 710K
Q4 '17: 657K
Q1 '18: 490K
Q2 '18: 901K
Q3 '18: 582K
Q4 '18: 582K
Q1 '19: 773K
Q2 '19: 886K
Q3 '19: 832K
Q4 '19: 814K
Q1 '20: 910K
Q2 '20: 946K
Q3 '20: 834K
Q4 '20: 1M
Q1 '21: 1.2M
Q2 '21: 1.4M
Q3 '21: 1.2M
Q4 '21: 1.5M
Q1 '22: 1.5M
Q2 '22: 1.4M
Q3 '22: 1.1M
Q4 '22: 1.6M
Q1 '23: 1.5M
Q2 '23: 1.5M
Q3 '23: 900K
Q4 '23: 1.2M
Q1 '24: 1.2M
Q2 '24: 2M
Q3 '24: 1.5M
Q4 '24: 1.6M
Q1 '25: 1.8M
Q2 '25: 1.5M
Q3 '25: 1.2M
Q4 '25: 1.8M
Q1 '26: 1.8M
Q2 '26: 1.8M
Q3 '26: 1.3M
Q4 '26: 2.1M
Q1 '18
Q2 '19
Q3 '20
Q4 '21
Q1 '23
Q2 '24
Q3 '25
Q4 '26
Net Income Quarterly
-2M
0
2M
4M
6M
Q4 '16: 1.2M
Q1 '17: 567K
Q2 '17: 692K
Q3 '17: 792K
Q4 '17: 350K
Q1 '18: 518K
Q2 '18: 722K
Q3 '18: 791K
Q4 '18: 514K
Q1 '19: 925K
Q2 '19: -84K
Q3 '19: 1M
Q4 '19: 1.7M
Q1 '20: 976K
Q2 '20: 957K
Q3 '20: 1.4M
Q1 '21: 2.5M
Q2 '21: 860K
Q3 '21: 4.4M
Q4 '21: 3M
Q1 '22: 1.7M
Q2 '22: 1.7M
Q3 '22: 161K
Q4 '22: -29K
Q1 '23: 1.1M
Q2 '23: 607K
Q3 '23: 2M
Q4 '23: 1.1M
Q1 '24: 2.4M
Q2 '24: -55K
Q3 '24: 3.2M
Q4 '24: 2M
Q1 '25: 2.7M
Q2 '25: 2.2M
Q3 '25: 1.6M
Q4 '25: 605K
Q1 '26: 3.8M
Q2 '26: 2.3M
Q3 '26: 2.5M
Q4 '26: 2.8M
Q4 '17
Q1 '19
Q2 '20
Q4 '21
Q1 '23
Q2 '24
Q3 '25
Q4 '26
Cost of Revenue Quarterly
0
1.5M
3M
4.5M
Q1 '18: 1.1M
Q2 '18: 1.4M
Q3 '18: 1.8M
Q4 '18: 2M
Q1 '19: 1.8M
Q2 '19: 1.9M
Q3 '19: 1.8M
Q4 '19: 1.9M
Q1 '20: 1.8M
Q2 '20: 1.9M
Q3 '20: 1.8M
Q4 '20: 1.9M
Q1 '21: 2M
Q2 '21: 2.3M
Q3 '21: 2.4M
Q4 '21: 2.5M
Q1 '22: 2.3M
Q2 '22: 2.7M
Q3 '22: 2.9M
Q4 '22: 2.8M
Q1 '23: 2.7M
Q2 '23: 3M
Q3 '23: 2.4M
Q4 '23: 2.5M
Q1 '24: 2.5M
Q2 '24: 2.9M
Q3 '24: 2.7M
Q4 '24: 2.8M
Q1 '25: 2.8M
Q2 '25: 2.9M
Q3 '25: 2.6M
Q4 '25: 3.3M
Q1 '26: 2.9M
Q2 '26: 3.4M
Q3 '26: 3.1M
Q4 '26: 3.6M
Q1 '18
Q2 '19
Q3 '20
Q4 '21
Q1 '23
Q2 '24
Q3 '25
Q4 '26
Operating Cash Flow Quarterly
-2.7M
-1.8M
-900K
0
900K
1.8M
2.7M
Q1 '17: 993K
Q2 '17: 704K
Q3 '17: 778K
Q4 '17: 709K
Q1 '18: 1M
Q2 '18: 728K
Q3 '18: -2M
Q4 '18: 652K
Q1 '19: 890K
Q2 '19: 282K
Q3 '19: 1.1M
Q4 '19: 460K
Q1 '20: 1.1M
Q2 '20: 972K
Q3 '20: 904K
Q4 '20: 305K
Q1 '21: 1.2M
Q2 '21: 590K
Q3 '21: 1.4M
Q4 '21: 550K
Q1 '22: 1.1M
Q2 '22: -242K
Q3 '22: 892K
Q4 '22: 171K
Q1 '23: 1.8M
Q2 '23: -130K
Q3 '23: 1.1M
Q4 '23: 103K
Q1 '24: 971K
Q2 '24: 587K
Q3 '24: 2.4M
Q4 '24: 2M
Q1 '25: 2.3M
Q2 '25: 230K
Q3 '25: 649K
Q4 '25: 1.1M
Q1 '26: 2.1M
Q2 '26: 1.2M
Q3 '26: 253K
Q4 '26: 1.1M
Q1 '18
Q2 '19
Q3 '20
Q4 '21
Q1 '23
Q2 '24
Q3 '25
Q4 '26
Free Cash Flow Quarterly
-2.7M
-1.8M
-900K
0
900K
1.8M
2.7M
Q3 '16: 903K
Q4 '16: 784K
Q1 '17: 968K
Q2 '17: 659K
Q3 '17: 702K
Q4 '17: 685K
Q1 '18: 763K
Q2 '18: 667K
Q3 '18: -2.1M
Q4 '18: 461K
Q3 '19: 1M
Q4 '19: 394K
Q1 '20: 970K
Q2 '20: 962K
Q3 '20: 614K
Q4 '20: 42K
Q1 '21: 1.1M
Q2 '21: 324K
Q3 '21: 1.4M
Q4 '21: 459K
Q1 '22: 1.1M
Q2 '22: -242K
Q3 '22: 768K
Q4 '22: -55K
Q1 '23: 1.7M
Q2 '23: -265K
Q3 '23: 1.1M
Q4 '23: -224K
Q1 '24: 770K
Q2 '24: 545K
Q3 '24: 2.4M
Q4 '24: 1.9M
Q1 '25: 2.2M
Q2 '25: 27K
Q3 '25: 598K
Q4 '25: 1.1M
Q1 '26: 2M
Q2 '26: 1.2M
Q3 '26: 253K
Q4 '26: 847K
Q3 '17
Q4 '18
Q3 '20
Q4 '21
Q1 '23
Q2 '24
Q3 '25
Q4 '26
Operating cash flow minus capital expenditure.
Shares Outstanding Quarterly
0
2M
4M
6M
Q1 '16: 5M
Q2 '16: 5M
Q3 '16: 5M
Q1 '17: 5M
Q2 '17: 5M
Q3 '17: 5M
Q1 '18: 5M
Q2 '18: 5M
Q3 '18: 5M
Q1 '19: 5M
Q2 '19: 5M
Q3 '19: 5M
Q1 '20: 5M
Q2 '20: 5M
Q3 '20: 5M
Q1 '21: 5M
Q2 '21: 5M
Q3 '21: 5M
Q1 '22: 5M
Q2 '22: 5M
Q3 '22: 5M
Q1 '23: 5M
Q2 '23: 5M
Q3 '23: 5M
Q1 '24: 4.9M
Q2 '24: 4.9M
Q3 '24: 4.9M
Q1 '25: 4.9M
Q2 '25: 4.9M
Q3 '25: 4.9M
Q1 '26: 4.9M
Q2 '26: 4.9M
Q3 '26: 4.9M
Q3 '16
Q2 '18
Q1 '20
Q3 '21
Q2 '23
Q1 '25
Q3 '26
Weighted average diluted, as the filer reports it for each period. An average cannot be added across periods, so this one is always shown per period the filer tagged rather than as a trailing year.
EPS TTM
0.00
0.80
1.60
2.40
Q4 '16: 0.61
Q1 '17: 0.58
Q2 '17: 0.61
Q3 '17: 0.64
Q4 '17: 0.48
Q1 '18: 0.47
Q2 '18: 0.48
Q3 '18: 0.48
Q4 '18: 0.51
Q1 '19: 0.60
Q2 '19: 0.43
Q3 '19: 0.48
Q4 '19: 0.72
Q1 '20: 0.73
Q2 '20: 0.94
Q3 '20: 1.00
Q4 '21: 2.17
Q1 '22: 2.02
Q2 '22: 2.19
Q3 '22: 1.33
Q4 '22: 0.72
Q1 '23: 0.58
Q2 '23: 0.36
Q3 '23: 0.74
Q4 '23: 0.96
Q1 '24: 1.23
Q2 '24: 1.10
Q3 '24: 1.35
Q4 '24: 1.53
Q1 '25: 1.60
Q2 '25: 2.06
Q3 '25: 1.73
Q4 '25: 1.45
Q1 '26: 1.67
Q2 '26: 1.70
Q3 '26: 1.88
Q4 '26: 2.33
Q1 '17
Q2 '18
Q3 '19
Q4 '21
Q1 '23
Q2 '24
Q3 '25
Q4 '26
The filer's own published earnings a share for each quarter, four quarters added up. The company page divides trailing net income by the share count instead, which lands within about 1% of this and is not the same sum, so the two are named differently rather than presented as one figure.