XML 97 R84.htm IDEA: XBRL DOCUMENT v2.4.1.9
Pensions and Other Postretirement Benefits - Schedule of Defined Benefit Pension Plans and Other Postretirement Benefits Plan (Detail) (USD $)
In Thousands, unless otherwise specified
12 Months Ended
Dec. 31, 2014
Dec. 31, 2013
Dec. 31, 2012
Change in Plan Assets      
Fair value of plan assets at December 31 $ 445,299us-gaap_DefinedBenefitPlanFairValueOfPlanAssets $ 434,569us-gaap_DefinedBenefitPlanFairValueOfPlanAssets  
Funded Status      
Noncurrent assets 75,017us-gaap_DefinedBenefitPlanAssetsForPlanBenefitsNoncurrent 121,054us-gaap_DefinedBenefitPlanAssetsForPlanBenefitsNoncurrent  
Noncurrent liabilities (174,598)us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesNoncurrent (152,084)us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesNoncurrent  
Pension Benefits      
Change in Benefit Obligations      
Benefit obligations at January 1 440,359us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
463,806us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
 
Service cost 9,425us-gaap_DefinedBenefitPlanServiceCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
11,132us-gaap_DefinedBenefitPlanServiceCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
9,511us-gaap_DefinedBenefitPlanServiceCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
Interest cost 19,340us-gaap_DefinedBenefitPlanInterestCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
17,934us-gaap_DefinedBenefitPlanInterestCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
19,018us-gaap_DefinedBenefitPlanInterestCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
Participant contributions 130us-gaap_DefinedBenefitPlanContributionsByPlanParticipants
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
136us-gaap_DefinedBenefitPlanContributionsByPlanParticipants
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
 
Plan amendments (302)us-gaap_DefinedBenefitPlanPlanAmendments
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
(239)us-gaap_DefinedBenefitPlanPlanAmendments
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
 
Actuarial losses (gains) 88,069us-gaap_DefinedBenefitPlanActuarialGainLoss
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
(34,248)us-gaap_DefinedBenefitPlanActuarialGainLoss
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
 
Benefits paid (19,193)msa_DefinedBenefitPlanBenefitsPaidIncludingNonParticipants
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
(19,232)msa_DefinedBenefitPlanBenefitsPaidIncludingNonParticipants
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
 
Settlements (717)us-gaap_DefinedBenefitPlanSettlementsBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
(1,474)us-gaap_DefinedBenefitPlanSettlementsBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
 
Currency translation (17,917)us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
2,544us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
 
Benefit obligations at December 31 519,194us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
440,359us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
463,806us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
Change in Plan Assets      
Fair value of plan assets at January 1 434,569us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
384,452us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
 
Actual return on plan assets 30,209us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
67,391us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
 
Employer contributions 4,077us-gaap_DefinedBenefitPlanContributionsByEmployer
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
4,053us-gaap_DefinedBenefitPlanContributionsByEmployer
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
 
Settlements (717)us-gaap_DefinedBenefitPlanSettlementsBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
(1,474)us-gaap_DefinedBenefitPlanSettlementsBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
 
Benefits paid (16,507)us-gaap_DefinedBenefitPlanBenefitsPaid
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
(16,316)us-gaap_DefinedBenefitPlanBenefitsPaid
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
 
Reimbursement of German benefits (2,686)msa_DefinedBenefitPlanReimbursementBenefits
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
(2,916)msa_DefinedBenefitPlanReimbursementBenefits
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
 
Currency translation (3,776)us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
(757)us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
 
Fair value of plan assets at December 31 445,299us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
434,569us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
384,452us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
Funded Status      
Funded status at December 31 (73,895)us-gaap_DefinedBenefitPlanFundedStatusOfPlan
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
(5,790)us-gaap_DefinedBenefitPlanFundedStatusOfPlan
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
 
Unrecognized transition losses 16msa_DefinedBenefitPlanUnrecognizedTransitionLosses
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
21msa_DefinedBenefitPlanUnrecognizedTransitionLosses
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
 
Unrecognized prior service cost 10msa_DefinedBenefitPlanUnrecognizedPriorServiceCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
374msa_DefinedBenefitPlanUnrecognizedPriorServiceCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
 
Unrecognized net actuarial losses 192,692msa_DefinedBenefitPlanUnrecognizedNetActuarialLosses
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
116,945msa_DefinedBenefitPlanUnrecognizedNetActuarialLosses
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
 
Net amount recognized 118,823msa_DefinedBenefitPlanNetAmountRecognizedInFundedStatus
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
111,550msa_DefinedBenefitPlanNetAmountRecognizedInFundedStatus
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
 
Noncurrent assets 75,017us-gaap_DefinedBenefitPlanAssetsForPlanBenefitsNoncurrent
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
121,054us-gaap_DefinedBenefitPlanAssetsForPlanBenefitsNoncurrent
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
 
Current liabilities (5,380)us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansCurrentLiabilities
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
(5,518)us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansCurrentLiabilities
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
 
Noncurrent liabilities (143,532)us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesNoncurrent
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
(121,326)us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesNoncurrent
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
 
Net amount recognized (73,895)us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
(5,790)us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
 
Amounts Recognized in Accumulated Other Comprehensive Loss      
Net actuarial losses 192,692us-gaap_DefinedBenefitPlanAccumulatedOtherComprehensiveIncomeNetGainsLossesBeforeTax
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
116,945us-gaap_DefinedBenefitPlanAccumulatedOtherComprehensiveIncomeNetGainsLossesBeforeTax
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
 
Prior service cost (credit) 10us-gaap_DefinedBenefitPlanAccumulatedOtherComprehensiveIncomeNetPriorServiceCostCreditBeforeTax
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
374us-gaap_DefinedBenefitPlanAccumulatedOtherComprehensiveIncomeNetPriorServiceCostCreditBeforeTax
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
 
Unrecognized net initial obligation 16us-gaap_DefinedBenefitPlanAccumulatedOtherComprehensiveIncomeMinimumPensionLiabilityBeforeTax
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
21us-gaap_DefinedBenefitPlanAccumulatedOtherComprehensiveIncomeMinimumPensionLiabilityBeforeTax
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
 
Total (before tax effects) 192,718us-gaap_DefinedBenefitPlanAccumulatedOtherComprehensiveIncomeBeforeTax
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
117,340us-gaap_DefinedBenefitPlanAccumulatedOtherComprehensiveIncomeBeforeTax
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
 
Accumulated Benefit Obligations for all Defined Benefit Plans 479,764us-gaap_DefinedBenefitPlanAccumulatedBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
403,682us-gaap_DefinedBenefitPlanAccumulatedBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
 
Other Benefits      
Change in Benefit Obligations      
Benefit obligations at January 1 26,732us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
30,551us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Service cost 538us-gaap_DefinedBenefitPlanServiceCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
687us-gaap_DefinedBenefitPlanServiceCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
694us-gaap_DefinedBenefitPlanServiceCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
Interest cost 1,107us-gaap_DefinedBenefitPlanInterestCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
1,050us-gaap_DefinedBenefitPlanInterestCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
1,265us-gaap_DefinedBenefitPlanInterestCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
Participant contributions 259us-gaap_DefinedBenefitPlanContributionsByPlanParticipants
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
144us-gaap_DefinedBenefitPlanContributionsByPlanParticipants
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Plan amendments 0us-gaap_DefinedBenefitPlanPlanAmendments
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanPlanAmendments
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Actuarial losses (gains) (200)us-gaap_DefinedBenefitPlanActuarialGainLoss
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
(4,107)us-gaap_DefinedBenefitPlanActuarialGainLoss
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Benefits paid (1,585)msa_DefinedBenefitPlanBenefitsPaidIncludingNonParticipants
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
(1,593)msa_DefinedBenefitPlanBenefitsPaidIncludingNonParticipants
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Settlements 0us-gaap_DefinedBenefitPlanSettlementsBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanSettlementsBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Currency translation 0us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Benefit obligations at December 31 26,851us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
26,732us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
30,551us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
Change in Plan Assets      
Fair value of plan assets at January 1 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Actual return on plan assets 0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Employer contributions 1,326us-gaap_DefinedBenefitPlanContributionsByEmployer
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
1,449us-gaap_DefinedBenefitPlanContributionsByEmployer
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Settlements 0us-gaap_DefinedBenefitPlanSettlementsBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanSettlementsBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Benefits paid (1,585)us-gaap_DefinedBenefitPlanBenefitsPaid
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
(1,593)us-gaap_DefinedBenefitPlanBenefitsPaid
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Reimbursement of German benefits 0msa_DefinedBenefitPlanReimbursementBenefits
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0msa_DefinedBenefitPlanReimbursementBenefits
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Currency translation 0us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Fair value of plan assets at December 31 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
Funded Status      
Funded status at December 31 (26,851)us-gaap_DefinedBenefitPlanFundedStatusOfPlan
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
(26,732)us-gaap_DefinedBenefitPlanFundedStatusOfPlan
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Unrecognized transition losses 0msa_DefinedBenefitPlanUnrecognizedTransitionLosses
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0msa_DefinedBenefitPlanUnrecognizedTransitionLosses
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Unrecognized prior service cost (1,858)msa_DefinedBenefitPlanUnrecognizedPriorServiceCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
(2,193)msa_DefinedBenefitPlanUnrecognizedPriorServiceCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Unrecognized net actuarial losses 6,450msa_DefinedBenefitPlanUnrecognizedNetActuarialLosses
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
6,832msa_DefinedBenefitPlanUnrecognizedNetActuarialLosses
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Net amount recognized (22,259)msa_DefinedBenefitPlanNetAmountRecognizedInFundedStatus
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
(22,093)msa_DefinedBenefitPlanNetAmountRecognizedInFundedStatus
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Noncurrent assets 0us-gaap_DefinedBenefitPlanAssetsForPlanBenefitsNoncurrent
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanAssetsForPlanBenefitsNoncurrent
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Current liabilities (1,457)us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansCurrentLiabilities
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
(1,695)us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansCurrentLiabilities
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Noncurrent liabilities (25,394)us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesNoncurrent
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
(25,037)us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesNoncurrent
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Net amount recognized (26,851)us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
(26,732)us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Amounts Recognized in Accumulated Other Comprehensive Loss      
Net actuarial losses 6,450us-gaap_DefinedBenefitPlanAccumulatedOtherComprehensiveIncomeNetGainsLossesBeforeTax
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
6,832us-gaap_DefinedBenefitPlanAccumulatedOtherComprehensiveIncomeNetGainsLossesBeforeTax
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Prior service cost (credit) (1,858)us-gaap_DefinedBenefitPlanAccumulatedOtherComprehensiveIncomeNetPriorServiceCostCreditBeforeTax
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
(2,193)us-gaap_DefinedBenefitPlanAccumulatedOtherComprehensiveIncomeNetPriorServiceCostCreditBeforeTax
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Unrecognized net initial obligation 0us-gaap_DefinedBenefitPlanAccumulatedOtherComprehensiveIncomeMinimumPensionLiabilityBeforeTax
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanAccumulatedOtherComprehensiveIncomeMinimumPensionLiabilityBeforeTax
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Total (before tax effects) 4,592us-gaap_DefinedBenefitPlanAccumulatedOtherComprehensiveIncomeBeforeTax
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
4,639us-gaap_DefinedBenefitPlanAccumulatedOtherComprehensiveIncomeBeforeTax
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Accumulated Benefit Obligations for all Defined Benefit Plans $ 0us-gaap_DefinedBenefitPlanAccumulatedBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
$ 0us-gaap_DefinedBenefitPlanAccumulatedBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember