XML 60 R53.htm IDEA: XBRL DOCUMENT v2.4.1.9
Revisions in Estimates (Details) (USD $)
3 Months Ended 12 Months Ended
Dec. 31, 2014
Sep. 30, 2014
Jun. 30, 2014
Mar. 31, 2014
Dec. 31, 2013
Sep. 30, 2013
Jun. 30, 2013
Mar. 31, 2013
Dec. 31, 2014
Dec. 31, 2013
Dec. 31, 2012
Change in Accounting Estimate [Line Items]                      
Initial gross profit impact from projects exceeding threshold $ 79,791,000us-gaap_GrossProfit $ 66,692,000us-gaap_GrossProfit $ 82,415,000us-gaap_GrossProfit $ 21,408,000us-gaap_GrossProfit $ 49,751,000us-gaap_GrossProfit $ 55,860,000us-gaap_GrossProfit $ 49,596,000us-gaap_GrossProfit $ 30,058,000us-gaap_GrossProfit $ 250,306,000us-gaap_GrossProfit $ 185,263,000us-gaap_GrossProfit $ 234,759,000us-gaap_GrossProfit
Financial Effect on Future Periods 0gva_ChangeInAccountingEstimateFinancialEffectOnFuturePeriods               0gva_ChangeInAccountingEstimateFinancialEffectOnFuturePeriods    
Amount Considered Significant on Individual Project Gross Profit 1,000,000gva_ChangeInAccountingEstimateAmountConsideredSignificantToIndividualProjectGrossProfit                 1,000,000gva_ChangeInAccountingEstimateAmountConsideredSignificantToIndividualProjectGrossProfit  
Construction [Member]                      
Change in Accounting Estimate [Line Items]                      
Percent complete of contract with estimate change                 56.80%gva_Percentcompleteofcontractwithestimatechange
/ us-gaap_StatementBusinessSegmentsAxis
= gva_ConstructionMember
   
Construction Contract Backlog, Percent 2.40%gva_ConstructionContractBacklogPercent
/ us-gaap_StatementBusinessSegmentsAxis
= gva_ConstructionMember
              2.40%gva_ConstructionContractBacklogPercent
/ us-gaap_StatementBusinessSegmentsAxis
= gva_ConstructionMember
   
Increase (Decrease) on Project Profitability                 (7,300,000)gva_ChangeInAccountingEstimateFinancialEffectOnGrossProfit
/ us-gaap_StatementBusinessSegmentsAxis
= gva_ConstructionMember
(1,700,000)gva_ChangeInAccountingEstimateFinancialEffectOnGrossProfit
/ us-gaap_StatementBusinessSegmentsAxis
= gva_ConstructionMember
(18,100,000)gva_ChangeInAccountingEstimateFinancialEffectOnGrossProfit
/ us-gaap_StatementBusinessSegmentsAxis
= gva_ConstructionMember
Construction [Member] | Maximum [Member]                      
Change in Accounting Estimate [Line Items]                      
Total Contract Value 75,000,000gva_TotalContractValue
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_ConstructionMember
              75,000,000gva_TotalContractValue
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_ConstructionMember
   
Large Project Construction [Member] | Minimum [Member]                      
Change in Accounting Estimate [Line Items]                      
Total Contract Value 75,000,000gva_TotalContractValue
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_LargeProjectConstructionMember
              75,000,000gva_TotalContractValue
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_LargeProjectConstructionMember
   
Contracts Accounted for under Percentage of Completion [Member] | Large Project Construction [Member]                      
Change in Accounting Estimate [Line Items]                      
Increase (Decrease) on Project Profitability                 (46,900,000)gva_ChangeInAccountingEstimateFinancialEffectOnGrossProfit
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= us-gaap_ContractsAccountedForUnderPercentageOfCompletionMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_LargeProjectConstructionMember
(25,500,000)gva_ChangeInAccountingEstimateFinancialEffectOnGrossProfit
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= us-gaap_ContractsAccountedForUnderPercentageOfCompletionMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_LargeProjectConstructionMember
(64,600,000)gva_ChangeInAccountingEstimateFinancialEffectOnGrossProfit
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= us-gaap_ContractsAccountedForUnderPercentageOfCompletionMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_LargeProjectConstructionMember
Contracts Accounted for under Percentage of Completion [Member] | Large Project Construction [Member] | Noncontrolling Interest [Member]                      
Change in Accounting Estimate [Line Items]                      
Increase (Decrease) on Project Profitability                 (9,500,000)gva_ChangeInAccountingEstimateFinancialEffectOnGrossProfit
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= us-gaap_ContractsAccountedForUnderPercentageOfCompletionMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_LargeProjectConstructionMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_NoncontrollingInterestMember
5,600,000gva_ChangeInAccountingEstimateFinancialEffectOnGrossProfit
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= us-gaap_ContractsAccountedForUnderPercentageOfCompletionMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_LargeProjectConstructionMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_NoncontrollingInterestMember
(3,100,000)gva_ChangeInAccountingEstimateFinancialEffectOnGrossProfit
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= us-gaap_ContractsAccountedForUnderPercentageOfCompletionMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_LargeProjectConstructionMember
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_NoncontrollingInterestMember
Upward Estimate Change [Member] | Construction [Member]                      
Change in Accounting Estimate [Line Items]                      
Initial gross profit impact from projects exceeding threshold                 74,700,000us-gaap_GrossProfit
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_UpwardEstimateChangeMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_ConstructionMember
9,100,000us-gaap_GrossProfit
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_UpwardEstimateChangeMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_ConstructionMember
16,400,000us-gaap_GrossProfit
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_UpwardEstimateChangeMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_ConstructionMember
Increase (Decrease) on Project Profitability                 (9,200,000)gva_ChangeInAccountingEstimateFinancialEffectOnGrossProfit
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_UpwardEstimateChangeMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_ConstructionMember
(16,100,000)gva_ChangeInAccountingEstimateFinancialEffectOnGrossProfit
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_UpwardEstimateChangeMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_ConstructionMember
(8,100,000)gva_ChangeInAccountingEstimateFinancialEffectOnGrossProfit
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_UpwardEstimateChangeMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_ConstructionMember
Number of Projects with Estimate Changes                 7gva_ChangeInAccountingEstimateNumberOfProjectsChanges
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_UpwardEstimateChangeMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_ConstructionMember
6gva_ChangeInAccountingEstimateNumberOfProjectsChanges
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_UpwardEstimateChangeMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_ConstructionMember
6gva_ChangeInAccountingEstimateNumberOfProjectsChanges
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_UpwardEstimateChangeMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_ConstructionMember
Upward Estimate Change [Member] | Construction [Member] | Minimum [Member]                      
Change in Accounting Estimate [Line Items]                      
Range Of Effect On Gross Profit                 1,000,000gva_ChangeInAccountingEstimateFinancialEffectRangeOfEffectOnGrossProfit
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_UpwardEstimateChangeMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_ConstructionMember
1,100,000gva_ChangeInAccountingEstimateFinancialEffectRangeOfEffectOnGrossProfit
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_UpwardEstimateChangeMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_ConstructionMember
1,000,000gva_ChangeInAccountingEstimateFinancialEffectRangeOfEffectOnGrossProfit
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_UpwardEstimateChangeMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_ConstructionMember
Upward Estimate Change [Member] | Construction [Member] | Maximum [Member]                      
Change in Accounting Estimate [Line Items]                      
Range Of Effect On Gross Profit                 1,800,000gva_ChangeInAccountingEstimateFinancialEffectRangeOfEffectOnGrossProfit
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_UpwardEstimateChangeMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_ConstructionMember
3,700,000gva_ChangeInAccountingEstimateFinancialEffectRangeOfEffectOnGrossProfit
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_UpwardEstimateChangeMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_ConstructionMember
1,700,000gva_ChangeInAccountingEstimateFinancialEffectRangeOfEffectOnGrossProfit
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_UpwardEstimateChangeMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_ConstructionMember
Upward Estimate Change [Member] | Large Project Construction [Member]                      
Change in Accounting Estimate [Line Items]                      
Increase (Decrease) on Project Profitability                 (66,800,000)gva_ChangeInAccountingEstimateFinancialEffectOnGrossProfit
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_UpwardEstimateChangeMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_LargeProjectConstructionMember
(77,500,000)gva_ChangeInAccountingEstimateFinancialEffectOnGrossProfit
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_UpwardEstimateChangeMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_LargeProjectConstructionMember
(92,000,000)gva_ChangeInAccountingEstimateFinancialEffectOnGrossProfit
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_UpwardEstimateChangeMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_LargeProjectConstructionMember
Number of Projects with Estimate Changes                 12gva_ChangeInAccountingEstimateNumberOfProjectsChanges
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_UpwardEstimateChangeMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_LargeProjectConstructionMember
7gva_ChangeInAccountingEstimateNumberOfProjectsChanges
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_UpwardEstimateChangeMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_LargeProjectConstructionMember
10gva_ChangeInAccountingEstimateNumberOfProjectsChanges
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_UpwardEstimateChangeMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_LargeProjectConstructionMember
Upward Estimate Change [Member] | Large Project Construction [Member] | Minimum [Member]                      
Change in Accounting Estimate [Line Items]                      
Range Of Effect On Gross Profit                 1,000,000gva_ChangeInAccountingEstimateFinancialEffectRangeOfEffectOnGrossProfit
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_UpwardEstimateChangeMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_LargeProjectConstructionMember
2,600,000gva_ChangeInAccountingEstimateFinancialEffectRangeOfEffectOnGrossProfit
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_UpwardEstimateChangeMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_LargeProjectConstructionMember
1,100,000gva_ChangeInAccountingEstimateFinancialEffectRangeOfEffectOnGrossProfit
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_UpwardEstimateChangeMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_LargeProjectConstructionMember
Upward Estimate Change [Member] | Large Project Construction [Member] | Maximum [Member]                      
Change in Accounting Estimate [Line Items]                      
Range Of Effect On Gross Profit                 15,200,000gva_ChangeInAccountingEstimateFinancialEffectRangeOfEffectOnGrossProfit
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_UpwardEstimateChangeMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_LargeProjectConstructionMember
41,300,000gva_ChangeInAccountingEstimateFinancialEffectRangeOfEffectOnGrossProfit
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_UpwardEstimateChangeMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_LargeProjectConstructionMember
24,500,000gva_ChangeInAccountingEstimateFinancialEffectRangeOfEffectOnGrossProfit
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_UpwardEstimateChangeMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_LargeProjectConstructionMember
Downward Estimate Change [Member] | Construction [Member]                      
Change in Accounting Estimate [Line Items]                      
Increase (Decrease) on Project Profitability                 16,500,000gva_ChangeInAccountingEstimateFinancialEffectOnGrossProfit
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_DownwardEstimateChangeMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_ConstructionMember
17,800,000gva_ChangeInAccountingEstimateFinancialEffectOnGrossProfit
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_DownwardEstimateChangeMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_ConstructionMember
26,200,000gva_ChangeInAccountingEstimateFinancialEffectOnGrossProfit
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_DownwardEstimateChangeMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_ConstructionMember
Number of Projects with Estimate Changes                 6gva_ChangeInAccountingEstimateNumberOfProjectsChanges
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_DownwardEstimateChangeMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_ConstructionMember
5gva_ChangeInAccountingEstimateNumberOfProjectsChanges
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_DownwardEstimateChangeMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_ConstructionMember
9gva_ChangeInAccountingEstimateNumberOfProjectsChanges
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_DownwardEstimateChangeMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_ConstructionMember
Downward Estimate Change [Member] | Construction [Member] | Minimum [Member]                      
Change in Accounting Estimate [Line Items]                      
Range Of Effect On Gross Profit                 (1,600,000)gva_ChangeInAccountingEstimateFinancialEffectRangeOfEffectOnGrossProfit
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_DownwardEstimateChangeMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_ConstructionMember
(1,200,000)gva_ChangeInAccountingEstimateFinancialEffectRangeOfEffectOnGrossProfit
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_DownwardEstimateChangeMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_ConstructionMember
(1,000,000)gva_ChangeInAccountingEstimateFinancialEffectRangeOfEffectOnGrossProfit
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_DownwardEstimateChangeMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_ConstructionMember
Downward Estimate Change [Member] | Construction [Member] | Maximum [Member]                      
Change in Accounting Estimate [Line Items]                      
Range Of Effect On Gross Profit                 (4,100,000)gva_ChangeInAccountingEstimateFinancialEffectRangeOfEffectOnGrossProfit
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_DownwardEstimateChangeMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_ConstructionMember
(7,400,000)gva_ChangeInAccountingEstimateFinancialEffectRangeOfEffectOnGrossProfit
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_DownwardEstimateChangeMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_ConstructionMember
(6,600,000)gva_ChangeInAccountingEstimateFinancialEffectRangeOfEffectOnGrossProfit
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_DownwardEstimateChangeMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_ConstructionMember
Downward Estimate Change [Member] | Large Project Construction [Member]                      
Change in Accounting Estimate [Line Items]                      
Increase (Decrease) on Project Profitability                 19,900,000gva_ChangeInAccountingEstimateFinancialEffectOnGrossProfit
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_DownwardEstimateChangeMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_LargeProjectConstructionMember
52,000,000gva_ChangeInAccountingEstimateFinancialEffectOnGrossProfit
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_DownwardEstimateChangeMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_LargeProjectConstructionMember
27,400,000gva_ChangeInAccountingEstimateFinancialEffectOnGrossProfit
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_DownwardEstimateChangeMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_LargeProjectConstructionMember
Number of Projects with Estimate Changes                 3gva_ChangeInAccountingEstimateNumberOfProjectsChanges
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_DownwardEstimateChangeMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_LargeProjectConstructionMember
5gva_ChangeInAccountingEstimateNumberOfProjectsChanges
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_DownwardEstimateChangeMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_LargeProjectConstructionMember
1gva_ChangeInAccountingEstimateNumberOfProjectsChanges
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_DownwardEstimateChangeMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_LargeProjectConstructionMember
Downward Estimate Change [Member] | Large Project Construction [Member] | Minimum [Member]                      
Change in Accounting Estimate [Line Items]                      
Range Of Effect On Gross Profit                 (1,100,000)gva_ChangeInAccountingEstimateFinancialEffectRangeOfEffectOnGrossProfit
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_DownwardEstimateChangeMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_LargeProjectConstructionMember
(1,900,000)gva_ChangeInAccountingEstimateFinancialEffectRangeOfEffectOnGrossProfit
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_DownwardEstimateChangeMember
/ us-gaap_RangeAxis
= us-gaap_MinimumMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_LargeProjectConstructionMember
 
Downward Estimate Change [Member] | Large Project Construction [Member] | Maximum [Member]                      
Change in Accounting Estimate [Line Items]                      
Range Of Effect On Gross Profit                 $ (16,800,000)gva_ChangeInAccountingEstimateFinancialEffectRangeOfEffectOnGrossProfit
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_DownwardEstimateChangeMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_LargeProjectConstructionMember
$ (26,800,000)gva_ChangeInAccountingEstimateFinancialEffectRangeOfEffectOnGrossProfit
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_DownwardEstimateChangeMember
/ us-gaap_RangeAxis
= us-gaap_MaximumMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_LargeProjectConstructionMember
 
Complete or Substantially Complete [Member] | Downward Estimate Change [Member] | Construction [Member]                      
Change in Accounting Estimate [Line Items]                      
Number of Projects with Estimate Changes                 5gva_ChangeInAccountingEstimateNumberOfProjectsChanges
/ us-gaap_ChangeInAccountingEstimateByTypeAxis
= gva_DownwardEstimateChangeMember
/ gva_CompletionStatusAxis
= gva_CompleteOrSubstantiallyCompleteMember
/ us-gaap_StatementBusinessSegmentsAxis
= gva_ConstructionMember