XML 106 R91.htm IDEA: XBRL DOCUMENT
v3.10.0.1

Multiemployer Plans - Narrative (Details) | 12 Months Ended
--- | ---
Dec. 31, 2018 USD ($) plan | Dec. 31, 2017 USD ($) | Dec. 31, 2016 USD ($)
Multiemployer Plans [Line Items] |  |  |
Withdrawal liability | $ 0 | $ 0 | $ 0
Minimum | Multiemployer Plans, Pension |  |  |
Multiemployer Plans [Line Items] |  |  |
Number of plans | plan | 200 |  |
UK Plan | Multiemployer Plans, Pension | Multiemployer Plan, Plan Information, Not Available |  |  |
Multiemployer Plans [Line Items] |  |  |
Number of plans | plan | 2 |  |
Contributions | $ 100,000 | 100,000 | 200,000
UNITED STATES | Multiemployer Plans, Pension | Multiemployer Plan, Plan Information, Available |  |  |
Multiemployer Plans [Line Items] |  |  |
Contributions | 190,229,000 | 179,216,000 | 167,297,000
UNITED STATES | Multiemployer Plans, Postretirement Benefit | Multiemployer Plan, Plan Information, Not Available |  |  |
Multiemployer Plans [Line Items] |  |  |
Contributions | 135,900,000 | $ 130,900,000 | $ 130,500,000
UNITED STATES | Minimum | Multiemployer Plans, Pension | Multiemployer Plan, Plan Information, Available |  |  |
Multiemployer Plans [Line Items] |  |  |
Contributions | 2,000,000 |  |
Red Zone | UNITED STATES | Minimum | Multiemployer Plans, Pension | Multiemployer Plan, Plan Information, Available |  |  |
Multiemployer Plans [Line Items] |  |  |
Contributions | 500,000 |  |
Orange or Yellow Zones | UNITED STATES | Minimum | Multiemployer Plans, Pension | Multiemployer Plan, Plan Information, Available |  |  |
Multiemployer Plans [Line Items] |  |  |
Contributions | $ 1,000,000 |  |
UK Plan 1 | UK Plan | Multiemployer Plans, Pension | Multiemployer Plan, Plan Information, Not Available |  |  |
Multiemployer Plans [Line Items] |  |  |
Multiemployer plans, funded status | At least 80 percent |  |

X
- Definition Multiemployer Plans, Number of Plans + References No definition available. + Details
Name: | eme_MultiemployerPlansNumberOfPlans
Namespace Prefix: | eme_
Data Type: | xbrli:integerItemType
Balance Type: | na
Period Type: | instant

X
- Definition Amount of contributions made to multiemployer plan by employer. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 715 -SubTopic 80 -Section 50 -Paragraph 9 -URI http://asc.fasb.org/extlink&oid=65877416&loc=SL14450691-114947 Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 715 -SubTopic 80 -Section 50 -Paragraph 11 -URI http://asc.fasb.org/extlink&oid=65877416&loc=SL14450702-114947 Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 715 -SubTopic 80 -Section 50 -Paragraph 5 -Subparagraph (e)(1) -URI http://asc.fasb.org/extlink&oid=65877416&loc=SL14450657-114947 + Details
Name: | us-gaap_MultiemployerPlanContributionsByEmployer
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | duration

X
- Definition Indicate whether the multiemployer plan is less than 65 percent funded, between 65 and less than 80 percent funded, or at least 80 percent funded. The acceptable values are: (1) "less than 65 percent", (2) "between 65 and less than 80 percent", (3) "at least 80 percent", and (4) "NA". A multiemployer plan is a pension or postretirement benefit plan to which two or more unrelated employers contribute where assets contributed by one participating employer may be used to provide benefits to employees of other participating employers. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 715 -SubTopic 80 -Section 50 -Paragraph 5 -Subparagraph (c) -URI http://asc.fasb.org/extlink&oid=65877416&loc=SL14450657-114947 + Details
Name: | us-gaap_MultiemployerPlansFundedStatus
Namespace Prefix: | us-gaap_
Data Type: | us-types:fundedStatusItemType
Balance Type: | na
Period Type: | duration

X
- Definition Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table. + References No definition available. + Details
Name: | us-gaap_MultiemployerPlansLineItems
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition Amount of the obligation recognized by withdrawing from a pension or postretirement benefit plan to which two or more unrelated employers contribute where assets contributed by one participating employer may be used to provide benefits to employees of other participating employers. + References No definition available. + Details
Name: | us-gaap_MultiemployerPlansWithdrawalObligation
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | instant

X
- Details
Name: | srt_RangeAxis=srt_MinimumMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_MultiemployerPlanTypeAxis=us-gaap_MultiemployerPlansPensionMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_RetirementPlanSponsorLocationAxis=us-gaap_ForeignPlanMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_MultiemployerPlanPlanInformationAxis=us-gaap_MultiemployerPlanPlanInformationNotAvailableMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_RetirementPlanSponsorLocationAxis=country_US
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_MultiemployerPlanPlanInformationAxis=us-gaap_MultiemployerPlanPlanInformationAvailableMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_MultiemployerPlanTypeAxis=us-gaap_MultiemployerPlansPostretirementBenefitMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | eme_MultiemployerPlansCertifiedZoneStatusAxis=eme_RedZoneMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | eme_MultiemployerPlansCertifiedZoneStatusAxis=eme_OrangeOrYellowZonesMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_MultiemployerPlanNameAxis=eme_UkPlan1Member
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |