Stockholders' Equity Note Disclosure [Text Block] | Stockholders' Equity The following table illustrates the changes in the balances of each component of stockholders' equity for the three months ended October 31, 2019 : Common Additional Retained Earnings Treasury Accumulated Total Stockholders' Equity Balances at July 31, 2019 $ 548 $ 329,969 $ 637,843 $ (46,332 ) $ (71,254 ) $ 850,774 Net income — — 37,498 — — 37,498 Other comprehensive loss, net of tax — — — — (29 ) (29 ) Issuance of shares of Class A Common Stock under stock plan — (6,410 ) — 2,553 — (3,857 ) Tax benefit and withholdings from deferred compensation distributions — 64 — — — 64 Stock-based compensation expense — 3,618 — — — 3,618 Purchase of shares of Class A Common Stock — — — — — — Cash dividends on Common Stock Class A — $0.22 per share — — (10,822 ) — — (10,822 ) Class B — $0.20 per share — — (711 ) — — (711 ) Balances at October 31, 2019 $ 548 $ 327,241 $ 663,808 $ (43,779 ) $ (71,283 ) $ 876,535 The following table illustrates the changes in the balances of each component of stockholders' equity for the three months ended October 31, 2018 : Common Additional Retained Earnings Treasury Accumulated Total Stockholders' Equity Balances at July 31, 2018 $ 548 $ 325,631 $ 553,454 $ (71,120 ) $ (56,401 ) $ 752,112 Net income — — 30,637 — — 30,637 Other comprehensive loss, net of tax — — — — (9,830 ) (9,830 ) Issuance of shares of Class A Common Stock under stock plan — (4,505 ) — 14,569 — 10,064 Tax benefit and withholdings from deferred compensation distributions — 91 — — — 91 Stock-based compensation expense — 4,965 — — — 4,965 Purchase of shares of Class A Common Stock — — — (1,863 ) — (1,863 ) Cumulative adjustment for ASU 2014-09, net of tax — — (2,137 ) — — (2,137 ) Cash dividends on Common Stock Class A — $0.21 per share — — (10,403 ) — — (10,403 ) Class B — $0.20 per share — — (693 ) — — (693 ) Balances at October 31, 2018 $ 548 $ 326,182 $ 570,858 $ (58,414 ) $ (66,231 ) $ 772,943 Incentive Stock Plans The Company has an incentive stock plan under which the Board of Directors may grant nonqualified stock options to purchase shares of Class A Nonvoting Common Stock, restricted stock units ("RSUs"), or restricted and unrestricted shares of Class A Nonvoting Common Stock to employees and non-employee directors. Certain awards may be subject to pre-established performance goals. The majority of the Company’s annual share-based awards are granted in the first quarter of the fiscal year. Total stock-based compensation expense recognized by the Company during the three months ended October 31, 2019 and 2018 , was $3,618 ( $3,089 net of taxes) and $4,965 ( $4,319 net of taxes), respectively. As of October 31, 2019 , total unrecognized compensation cost related to share-based awards was $15,461 pre-tax, net of estimated forfeitures, which the Company expects to recognize over a weighted-average period of 2.3 years. Stock Options The stock options issued under the plan have an exercise price equal to the fair market value of the underlying stock at the date of grant and generally vest ratably over a three-year service period, with one-third becoming exercisable one year after the grant date and one-third additional in each of the succeeding two years. Options issued under the plan, referred to herein as “time-based” stock options, generally expire 10 years from the date of grant. The Company has estimated the fair value of its time-based stock option awards granted during the three months ended October 31, 2019 and 2018 , using the Black-Scholes option valuation model. The weighted-average assumptions used in the Black-Scholes valuation model are reflected in the following table: Three months ended October 31, Black-Scholes Option Valuation Assumptions 2019 2018 Expected term (in years) 6.20 6.20 Expected volatility 25.85 % 25.83 % Expected dividend yield 2.63 % 2.71 % Risk-free interest rate 1.64 % 3.01 % Weighted-average market value of underlying stock at grant date $ 54.05 $ 43.96 Weighted-average exercise price $ 54.05 $ 43.96 Weighted-average fair value of options granted during the period $ 10.63 $ 9.70 The following is a summary of stock option activity for the three months ended October 31, 2019 : Time-Based Options Shares Weighted Average Exercise Price Weighted Average Remaining Contractual Term Aggregate Intrinsic Value Outstanding at July 31, 2019 1,594,716 $ 31.63 New grants 247,297 54.05 Exercised (381,698) 27.05 Forfeited or expired (2,221) 40.25 Outstanding at October 31, 2019 1,458,094 $ 36.62 7.2 $ 28,976 Exercisable at October 31, 2019 933,905 $ 30.59 6.0 $ 24,192 The total fair value of stock options vested during the three months ended October 31, 2019 and 2018 , was $2,537 and $2,798 , respectively. The total intrinsic value of stock options exercised during the three months ended October 31, 2019 and 2018 , based upon the average market price at the time of exercise during the period, was $10,225 and $9,423 , respectively. The cash received from the exercise of stock options during the three months ended October 31, 2019 and 2018 , was $3,411 and $13,001 , respectively. The tax benefit from the exercise of stock options during the three months ended October 31, 2019 and 2018 , was $2,541 and $2,356 , respectively. RSUs The Company issues "time-based" and "performance-based" RSUs under the incentive stock plan. The time-based RSUs issued under the plan generally vest ratably over a three-year period and have a grant date fair value equal to the fair market value of the underlying stock at the date of grant. The performance-based RSUs issued under the plan vest at the end of a three-year service period provided specified financial performance metrics are met. The fair value of performance-based RSUs was determined by a third-party valuation involving the use of a Monte Carlo simulation. The following tables summarize the RSU activity for the three months ended October 31, 2019 : Time-Based RSUs Shares Weighted Average Grant Date Fair Value Outstanding at July 31, 2019 188,638 $ 38.15 New grants 69,328 54.10 Vested 87,002 36.00 Forfeited (454 ) 40.43 Outstanding at October 31, 2019 344,514 $ 45.72 The time-based RSUs granted during the three months ended October 31, 2018 , had a weighted-average grant date fair value of $33.16 . The total fair value of time-based RSUs vested during the three months ended October 31, 2019 and 2018 , was $4,615 and $4,795 , respectively. Performance-Based RSUs Shares Weighted Average Grant Date Fair Value Outstanding at July 31, 2019 158,410 $ 38.33 New grants 38,946 75.00 Vested (87,928 ) 32.03 Outstanding at October 31, 2019 109,428 $ 50.79 The performance-based RSUs granted during the three months ended October 31, 2018 , had a weighted-average grant date fair value of $50.70 . The aggregate intrinsic value of unvested time-based and performance-based RSUs outstanding at October 31, 2019 and expected to vest was $24,748 . |