XML 97 R69.htm IDEA: XBRL DOCUMENT v2.4.1.9
Pension and Retirement Plans (Detail) - Changes of the benefit obligation, the plan assets and funded status of the plans (USD $)
In Thousands, unless otherwise specified
12 Months Ended
Sep. 30, 2014
Sep. 30, 2013
Sep. 30, 2012
Defined Benefit Plan Disclosure [Line Items]      
Fair value of plan assets $ 10,094us-gaap_DefinedBenefitPlanFairValueOfPlanAssets $ 9,473us-gaap_DefinedBenefitPlanFairValueOfPlanAssets  
Net amount recognized 11,098us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet 9,406us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet  
U.S.      
Defined Benefit Plan Disclosure [Line Items]      
Net amount recognized 2,273us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
2,228us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
 
Foreign      
Defined Benefit Plan Disclosure [Line Items]      
Net amount recognized 8,825us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
7,178us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
 
Pension      
Defined Benefit Plan Disclosure [Line Items]      
Service cost 45us-gaap_DefinedBenefitPlanServiceCost
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
59us-gaap_DefinedBenefitPlanServiceCost
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Interest cost 839us-gaap_DefinedBenefitPlanInterestCost
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
747us-gaap_DefinedBenefitPlanInterestCost
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Net amount recognized 10,053us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
8,549us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Pension | U.S.      
Defined Benefit Plan Disclosure [Line Items]      
Service cost 0us-gaap_DefinedBenefitPlanServiceCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
0us-gaap_DefinedBenefitPlanServiceCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Interest cost 69us-gaap_DefinedBenefitPlanInterestCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
64us-gaap_DefinedBenefitPlanInterestCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Net amount recognized 1,228us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
1,371us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Pension | Foreign      
Defined Benefit Plan Disclosure [Line Items]      
Service cost 45us-gaap_DefinedBenefitPlanServiceCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
59us-gaap_DefinedBenefitPlanServiceCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Interest cost 770us-gaap_DefinedBenefitPlanInterestCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
683us-gaap_DefinedBenefitPlanInterestCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Net amount recognized 8,825us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
7,178us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Post Retirement      
Defined Benefit Plan Disclosure [Line Items]      
Service cost 10us-gaap_DefinedBenefitPlanServiceCost
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanServiceCost
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Interest cost 43us-gaap_DefinedBenefitPlanInterestCost
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
35us-gaap_DefinedBenefitPlanInterestCost
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Net amount recognized 1,045us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
857us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Post Retirement | U.S.      
Defined Benefit Plan Disclosure [Line Items]      
Service cost 10us-gaap_DefinedBenefitPlanServiceCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanServiceCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Interest cost 43us-gaap_DefinedBenefitPlanInterestCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
35us-gaap_DefinedBenefitPlanInterestCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Net amount recognized 1,045us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
857us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Post Retirement | Foreign      
Defined Benefit Plan Disclosure [Line Items]      
Service cost 0us-gaap_DefinedBenefitPlanServiceCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanServiceCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Interest cost 0us-gaap_DefinedBenefitPlanInterestCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanInterestCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Net amount recognized 0us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Change in projected benefit obligation (“PBO”) | Pension      
Defined Benefit Plan Disclosure [Line Items]      
Projected benefit obligation 18,022us-gaap_DefinedBenefitPlanBenefitObligation
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
18,180us-gaap_DefinedBenefitPlanBenefitObligation
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Service cost 45us-gaap_DefinedBenefitPlanServiceCost
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
59us-gaap_DefinedBenefitPlanServiceCost
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Interest cost 839us-gaap_DefinedBenefitPlanInterestCost
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
747us-gaap_DefinedBenefitPlanInterestCost
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Changes in actuarial assumptions 2,346us-gaap_DefinedBenefitPlanActuarialGainLoss
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
(584)us-gaap_DefinedBenefitPlanActuarialGainLoss
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Foreign exchange impact (389)us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesBenefitObligation
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
235us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesBenefitObligation
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Benefits paid (716)us-gaap_DefinedBenefitPlanBenefitsPaid
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
(615)us-gaap_DefinedBenefitPlanBenefitsPaid
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Projected benefit obligation 20,147us-gaap_DefinedBenefitPlanBenefitObligation
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
18,022us-gaap_DefinedBenefitPlanBenefitObligation
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Change in projected benefit obligation (“PBO”) | Pension | U.S.      
Defined Benefit Plan Disclosure [Line Items]      
Projected benefit obligation 1,371us-gaap_DefinedBenefitPlanBenefitObligation
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
1,605us-gaap_DefinedBenefitPlanBenefitObligation
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Service cost 0us-gaap_DefinedBenefitPlanServiceCost
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
0us-gaap_DefinedBenefitPlanServiceCost
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Interest cost 69us-gaap_DefinedBenefitPlanInterestCost
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
64us-gaap_DefinedBenefitPlanInterestCost
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Changes in actuarial assumptions 10us-gaap_DefinedBenefitPlanActuarialGainLoss
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
(76)us-gaap_DefinedBenefitPlanActuarialGainLoss
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Foreign exchange impact    0us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesBenefitObligation
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Benefits paid (222)us-gaap_DefinedBenefitPlanBenefitsPaid
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
(222)us-gaap_DefinedBenefitPlanBenefitsPaid
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Projected benefit obligation 1,228us-gaap_DefinedBenefitPlanBenefitObligation
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
1,371us-gaap_DefinedBenefitPlanBenefitObligation
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Change in projected benefit obligation (“PBO”) | Pension | Foreign      
Defined Benefit Plan Disclosure [Line Items]      
Projected benefit obligation 16,651us-gaap_DefinedBenefitPlanBenefitObligation
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
16,575us-gaap_DefinedBenefitPlanBenefitObligation
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Service cost 45us-gaap_DefinedBenefitPlanServiceCost
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
59us-gaap_DefinedBenefitPlanServiceCost
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Interest cost 770us-gaap_DefinedBenefitPlanInterestCost
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
683us-gaap_DefinedBenefitPlanInterestCost
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Changes in actuarial assumptions 2,336us-gaap_DefinedBenefitPlanActuarialGainLoss
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
(508)us-gaap_DefinedBenefitPlanActuarialGainLoss
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Foreign exchange impact (389)us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesBenefitObligation
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
235us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesBenefitObligation
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Benefits paid (494)us-gaap_DefinedBenefitPlanBenefitsPaid
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
(393)us-gaap_DefinedBenefitPlanBenefitsPaid
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Projected benefit obligation 18,919us-gaap_DefinedBenefitPlanBenefitObligation
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
16,651us-gaap_DefinedBenefitPlanBenefitObligation
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Change in projected benefit obligation (“PBO”) | Post Retirement      
Defined Benefit Plan Disclosure [Line Items]      
Projected benefit obligation 857us-gaap_DefinedBenefitPlanBenefitObligation
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
882us-gaap_DefinedBenefitPlanBenefitObligation
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Service cost 10us-gaap_DefinedBenefitPlanServiceCost
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanServiceCost
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Interest cost 43us-gaap_DefinedBenefitPlanInterestCost
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
35us-gaap_DefinedBenefitPlanInterestCost
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Changes in actuarial assumptions 135us-gaap_DefinedBenefitPlanActuarialGainLoss
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
(60)us-gaap_DefinedBenefitPlanActuarialGainLoss
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Foreign exchange impact 0us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesBenefitObligation
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesBenefitObligation
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Benefits paid 0us-gaap_DefinedBenefitPlanBenefitsPaid
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanBenefitsPaid
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Projected benefit obligation 1,045us-gaap_DefinedBenefitPlanBenefitObligation
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
857us-gaap_DefinedBenefitPlanBenefitObligation
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Change in projected benefit obligation (“PBO”) | Post Retirement | U.S.      
Defined Benefit Plan Disclosure [Line Items]      
Projected benefit obligation 857us-gaap_DefinedBenefitPlanBenefitObligation
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
882us-gaap_DefinedBenefitPlanBenefitObligation
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Service cost 10us-gaap_DefinedBenefitPlanServiceCost
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanServiceCost
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Interest cost 43us-gaap_DefinedBenefitPlanInterestCost
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
35us-gaap_DefinedBenefitPlanInterestCost
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Changes in actuarial assumptions 135us-gaap_DefinedBenefitPlanActuarialGainLoss
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
(60)us-gaap_DefinedBenefitPlanActuarialGainLoss
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Foreign exchange impact    0us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesBenefitObligation
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Benefits paid 0us-gaap_DefinedBenefitPlanBenefitsPaid
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanBenefitsPaid
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Projected benefit obligation 1,045us-gaap_DefinedBenefitPlanBenefitObligation
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
857us-gaap_DefinedBenefitPlanBenefitObligation
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Change in projected benefit obligation (“PBO”) | Post Retirement | Foreign      
Defined Benefit Plan Disclosure [Line Items]      
Projected benefit obligation 0us-gaap_DefinedBenefitPlanBenefitObligation
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanBenefitObligation
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Service cost 0us-gaap_DefinedBenefitPlanServiceCost
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanServiceCost
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Interest cost 0us-gaap_DefinedBenefitPlanInterestCost
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanInterestCost
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Changes in actuarial assumptions 0us-gaap_DefinedBenefitPlanActuarialGainLoss
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanActuarialGainLoss
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Foreign exchange impact 0us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesBenefitObligation
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesBenefitObligation
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Benefits paid 0us-gaap_DefinedBenefitPlanBenefitsPaid
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanBenefitsPaid
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Projected benefit obligation 0us-gaap_DefinedBenefitPlanBenefitObligation
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanBenefitObligation
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPBOMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Changes in fair value of plan assets:      
Defined Benefit Plan Disclosure [Line Items]      
Fair value of plan assets     8,914us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
Fair value of plan assets 10,094us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
9,473us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
8,914us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
Changes in fair value of plan assets: | Pension      
Defined Benefit Plan Disclosure [Line Items]      
Actual gain (loss) on plan assets 718us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
475us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Company contributions 615us-gaap_DefinedBenefitPlanContributionsByEmployer
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
673us-gaap_DefinedBenefitPlanContributionsByEmployer
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Foreign exchange impact 4us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
26us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Benefits paid (716)us-gaap_DefinedBenefitPlanBenefitsPaid
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
(615)us-gaap_DefinedBenefitPlanBenefitsPaid
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Funded status (10,053)us-gaap_DefinedBenefitPlanFundedStatusOfPlan
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
(8,549)us-gaap_DefinedBenefitPlanFundedStatusOfPlan
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Net amount recognized (10,053)us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
(8,549)us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Changes in fair value of plan assets: | Pension | U.S.      
Defined Benefit Plan Disclosure [Line Items]      
Fair value of plan assets 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Actual gain (loss) on plan assets 0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Company contributions 222us-gaap_DefinedBenefitPlanContributionsByEmployer
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
222us-gaap_DefinedBenefitPlanContributionsByEmployer
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Foreign exchange impact 0us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
0us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Benefits paid (222)us-gaap_DefinedBenefitPlanBenefitsPaid
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
(222)us-gaap_DefinedBenefitPlanBenefitsPaid
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Fair value of plan assets 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Funded status (1,228)us-gaap_DefinedBenefitPlanFundedStatusOfPlan
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
(1,371)us-gaap_DefinedBenefitPlanFundedStatusOfPlan
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Net amount recognized (1,228)us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
(1,371)us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Changes in fair value of plan assets: | Pension | Foreign      
Defined Benefit Plan Disclosure [Line Items]      
Fair value of plan assets 9,473us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
8,914us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Actual gain (loss) on plan assets 718us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
475us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Company contributions 393us-gaap_DefinedBenefitPlanContributionsByEmployer
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
451us-gaap_DefinedBenefitPlanContributionsByEmployer
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Foreign exchange impact 4us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
26us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Benefits paid (494)us-gaap_DefinedBenefitPlanBenefitsPaid
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
(393)us-gaap_DefinedBenefitPlanBenefitsPaid
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Fair value of plan assets 10,094us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
9,473us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Funded status (8,825)us-gaap_DefinedBenefitPlanFundedStatusOfPlan
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
(7,178)us-gaap_DefinedBenefitPlanFundedStatusOfPlan
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Net amount recognized (8,825)us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
(7,178)us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= cspi_PensionMember
 
Changes in fair value of plan assets: | Post Retirement      
Defined Benefit Plan Disclosure [Line Items]      
Fair value of plan assets 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Actual gain (loss) on plan assets 0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Company contributions 0us-gaap_DefinedBenefitPlanContributionsByEmployer
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanContributionsByEmployer
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Foreign exchange impact 0us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Benefits paid 0us-gaap_DefinedBenefitPlanBenefitsPaid
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanBenefitsPaid
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Fair value of plan assets 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Funded status (1,045)us-gaap_DefinedBenefitPlanFundedStatusOfPlan
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
(857)us-gaap_DefinedBenefitPlanFundedStatusOfPlan
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Net amount recognized (1,045)us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
(857)us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Changes in fair value of plan assets: | Post Retirement | U.S.      
Defined Benefit Plan Disclosure [Line Items]      
Fair value of plan assets 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Actual gain (loss) on plan assets 0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Company contributions 0us-gaap_DefinedBenefitPlanContributionsByEmployer
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanContributionsByEmployer
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Foreign exchange impact 0us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Benefits paid 0us-gaap_DefinedBenefitPlanBenefitsPaid
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanBenefitsPaid
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Fair value of plan assets 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Funded status (1,045)us-gaap_DefinedBenefitPlanFundedStatusOfPlan
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
(857)us-gaap_DefinedBenefitPlanFundedStatusOfPlan
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Net amount recognized (1,045)us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
(857)us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Changes in fair value of plan assets: | Post Retirement | Foreign      
Defined Benefit Plan Disclosure [Line Items]      
Fair value of plan assets 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Actual gain (loss) on plan assets 0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Company contributions 0us-gaap_DefinedBenefitPlanContributionsByEmployer
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanContributionsByEmployer
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Foreign exchange impact 0us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Benefits paid 0us-gaap_DefinedBenefitPlanBenefitsPaid
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanBenefitsPaid
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Fair value of plan assets 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Funded status 0us-gaap_DefinedBenefitPlanFundedStatusOfPlan
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanFundedStatusOfPlan
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
 
Net amount recognized $ 0us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
$ 0us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet
/ cspi_ComponentsOfDefinedBenefitPlanAxis
= cspi_ChangeInPlanAssetsFairValueMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ cspi_PensionAndPostRetirementPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember