XML 90 R35.htm IDEA: XBRL DOCUMENT v3.19.3
Description of Business and Summary of Significant Accounting Policies (Tables)
12 Months Ended
Jul. 31, 2019
Accounting Policies [Abstract]  
Schedule of weighted-average number of shares used in the calculation of basic and diluted earnings per share

Year ended July 31
(in thousands)
  2019   2018   2017 
Basic weighted-average number of shares   25,293    24,655    23,182 
Effect of dilutive securities:               
Stock options       9    44 
Non-vested restricted Class B common stock   15    54    83 
Diluted weighted-average number of shares   25,308    24,718    23,309 
Schedule of outstanding stock options excluded from the calculation of diluted earnings per share

Year ended July 31
(in thousands)
  2019   2018   2017 
Shares excluded from the calculation of diluted earnings per share   1,204    1,142    22 
Schedule of change in the allowance for doubtful accounts

Year ended July 31
(in thousands)
  Balance at beginning of year   Additions charged to costs and expenses   Deductions
(1)
   Balance at end of year 
2019                
Reserves deducted from accounts receivable:                
Allowance for doubtful accounts  $5,358   $2,028   $(1,942)  $5,444 
2018                    
Reserves deducted from accounts receivable:                    
Allowance for doubtful accounts  $5,207   $2,199   $(2,048)  $5,358 
2017                    
Reserves deducted from accounts receivable:                    
Allowance for doubtful accounts  $4,818   $686   $(297)  $5,207 

 

(1)Primarily uncollectible accounts written off, net of recoveries.