XML 71 R40.htm IDEA: XBRL DOCUMENT v3.19.3
Revenue Recognition - Additional Information (Detail) - USD ($)
$ in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2019
Sep. 30, 2018
Sep. 30, 2019
Sep. 30, 2018
Dec. 31, 2018
Revenue Recognition [Line Items]          
Performance obligations, description of timing     Performance obligations within paving service agreements are satisfied over time, primarily ranging from one day to 20 months. For product revenues and freight revenues, customer payment terms are generally 30 days from invoice date. Customer payments for the paving operations are based on a contractual billing schedule and are due 30 days from invoice date.    
Product and freight revenues customer payment terms     30 days    
Customer payments terms based on contractual billing     30 days    
Future revenues from unsatisfied performance obligations $ 133,900 $ 111,700 $ 133,900 $ 111,700  
Service revenues 1,420,246 1,219,640 3,638,668 3,224,047  
Revenue recognized from contract liabilities 8,000 6,200 6,500 6,800  
Retainage on contracts 11,000   11,000   $ 7,500
Service          
Revenue Recognition [Line Items]          
Service revenues     $ 191,800 $ 162,900  
Service | COLORADO          
Revenue Recognition [Line Items]          
Service revenues $ 110,900 $ 82,200      
Minimum          
Revenue Recognition [Line Items]          
Warranty term 9 months 9 months 9 months 9 months  
Minimum | Service          
Revenue Recognition [Line Items]          
Performance obligations, period     1 day    
Maximum          
Revenue Recognition [Line Items]          
Warranty term 1 year 1 year 1 year 1 year  
Maximum | Service          
Revenue Recognition [Line Items]          
Performance obligations, period     20 months