Quarterly report pursuant to Section 13 or 15(d)

Stockholders' Equity - Summary of Stock Option Activity (Details)

v3.20.2
Stockholders' Equity - Summary of Stock Option Activity (Details) - USD ($)
3 Months Ended
Jul. 31, 2020
Apr. 30, 2020
Jul. 31, 2020
Number of Shares      
Balance Outstanding, April 30, 2020 (in shares)     2,734,899
Balance Outstanding, July 31, 2020 (in shares) 2,314,036 2,734,899 2,314,036
Exercisable, July 31, 2020 (in shares) 1,884,793   1,884,793
Stock Incentive Plan and Stock Option Grants to Employees and Directors      
Number of Shares      
Balance Outstanding, April 30, 2020 (in shares)     2,732,899
Granted (in shares)     0
Exercised (in shares)     (415,175)
Forfeited (in shares)     (3,688)
Expired (in shares)     0
Balance Outstanding, July 31, 2020 (in shares) 2,314,036 2,732,899 2,314,036
Exercisable, July 31, 2020 (in shares) 1,884,793   1,884,793
Weighted Average Exercise Price      
Balance Outstanding, April 30, 2020 (in dollars per share)     $ 4.62
Granted (in dollars per share)     0
Exercised (in dollars per share)     9.18
Forfeited (in dollars per share)     6.94
Expired (in dollars per share)     0
Balance Outstanding, July 31, 2020 (in dollars per share) $ 4.89 $ 4.62 4.89
Exercisable, July 31, 2020 (in dollars per share) $ 4.68   $ 4.68
Stock Option Activity, Additional Disclosures      
Options outstanding, weighted average remaining contractual term 1 year 10 months 20 days 1 year 11 months 19 days  
Options exercisable, weighted average remaining contractual term 1 year 7 months 24 days    
Options outstanding, aggregate intrinsic value $ 9,073,489 $ 9,146,198 $ 9,073,489
Options exercisable, aggregate intrinsic value $ 7,797,166   $ 7,797,166