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,094 us-gaap_DefinedBenefitPlanFairValueOfPlanAssets | $ 9,473 us-gaap_DefinedBenefitPlanFairValueOfPlanAssets |
Net amount recognized | 11,098 us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet | 9,406 us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet |
U.S. |  |  |
Defined Benefit Plan Disclosure [Line Items] |  |  |
Net amount recognized | 2,273 us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember | 2,228 us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember |
Foreign |  |  |
Defined Benefit Plan Disclosure [Line Items] |  |  |
Net amount recognized | 8,825 us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember | 7,178 us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember |
Pension |  |  |
Defined Benefit Plan Disclosure [Line Items] |  |  |
Service cost | 45 us-gaap_DefinedBenefitPlanServiceCost / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember | 59 us-gaap_DefinedBenefitPlanServiceCost / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember |
Interest cost | 839 us-gaap_DefinedBenefitPlanInterestCost / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember | 747 us-gaap_DefinedBenefitPlanInterestCost / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember |
Net amount recognized | 10,053 us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember | 8,549 us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember |
Pension | U.S. |  |  |
Defined Benefit Plan Disclosure [Line Items] |  |  |
Service cost | 0 us-gaap_DefinedBenefitPlanServiceCost / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember | 0 us-gaap_DefinedBenefitPlanServiceCost / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember |
Interest cost | 69 us-gaap_DefinedBenefitPlanInterestCost / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember | 64 us-gaap_DefinedBenefitPlanInterestCost / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember |
Net amount recognized | 1,228 us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember | 1,371 us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember |
Pension | Foreign |  |  |
Defined Benefit Plan Disclosure [Line Items] |  |  |
Service cost | 45 us-gaap_DefinedBenefitPlanServiceCost / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember | 59 us-gaap_DefinedBenefitPlanServiceCost / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember |
Interest cost | 770 us-gaap_DefinedBenefitPlanInterestCost / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember | 683 us-gaap_DefinedBenefitPlanInterestCost / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember |
Net amount recognized | 8,825 us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember | 7,178 us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember |
Post Retirement |  |  |
Defined Benefit Plan Disclosure [Line Items] |  |  |
Service cost | 10 us-gaap_DefinedBenefitPlanServiceCost / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 0 us-gaap_DefinedBenefitPlanServiceCost / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember |
Interest cost | 43 us-gaap_DefinedBenefitPlanInterestCost / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 35 us-gaap_DefinedBenefitPlanInterestCost / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember |
Net amount recognized | 1,045 us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 857 us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember |
Post Retirement | U.S. |  |  |
Defined Benefit Plan Disclosure [Line Items] |  |  |
Service cost | 10 us-gaap_DefinedBenefitPlanServiceCost / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 0 us-gaap_DefinedBenefitPlanServiceCost / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember |
Interest cost | 43 us-gaap_DefinedBenefitPlanInterestCost / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 35 us-gaap_DefinedBenefitPlanInterestCost / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember |
Net amount recognized | 1,045 us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 857 us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember |
Post Retirement | Foreign |  |  |
Defined Benefit Plan Disclosure [Line Items] |  |  |
Service cost | 0 us-gaap_DefinedBenefitPlanServiceCost / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 0 us-gaap_DefinedBenefitPlanServiceCost / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember |
Interest cost | 0 us-gaap_DefinedBenefitPlanInterestCost / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 0 us-gaap_DefinedBenefitPlanInterestCost / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember |
Net amount recognized | 0 us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 0 us-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,022 us-gaap_DefinedBenefitPlanBenefitObligation / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember | 18,180 us-gaap_DefinedBenefitPlanBenefitObligation / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember |
Service cost | 45 us-gaap_DefinedBenefitPlanServiceCost / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember | 59 us-gaap_DefinedBenefitPlanServiceCost / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember |
Interest cost | 839 us-gaap_DefinedBenefitPlanInterestCost / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember | 747 us-gaap_DefinedBenefitPlanInterestCost / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember |
Changes in actuarial assumptions | 2,346 us-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 | 235 us-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,147 us-gaap_DefinedBenefitPlanBenefitObligation / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember | 18,022 us-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,371 us-gaap_DefinedBenefitPlanBenefitObligation / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember | 1,605 us-gaap_DefinedBenefitPlanBenefitObligation / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember |
Service cost | 0 us-gaap_DefinedBenefitPlanServiceCost / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember | 0 us-gaap_DefinedBenefitPlanServiceCost / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember |
Interest cost | 69 us-gaap_DefinedBenefitPlanInterestCost / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember | 64 us-gaap_DefinedBenefitPlanInterestCost / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember |
Changes in actuarial assumptions | 10 us-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 |  | 0 us-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,228 us-gaap_DefinedBenefitPlanBenefitObligation / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember | 1,371 us-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,651 us-gaap_DefinedBenefitPlanBenefitObligation / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember | 16,575 us-gaap_DefinedBenefitPlanBenefitObligation / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember |
Service cost | 45 us-gaap_DefinedBenefitPlanServiceCost / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember | 59 us-gaap_DefinedBenefitPlanServiceCost / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember |
Interest cost | 770 us-gaap_DefinedBenefitPlanInterestCost / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember | 683 us-gaap_DefinedBenefitPlanInterestCost / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember |
Changes in actuarial assumptions | 2,336 us-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 | 235 us-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,919 us-gaap_DefinedBenefitPlanBenefitObligation / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember | 16,651 us-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 | 857 us-gaap_DefinedBenefitPlanBenefitObligation / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 882 us-gaap_DefinedBenefitPlanBenefitObligation / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember |
Service cost | 10 us-gaap_DefinedBenefitPlanServiceCost / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 0 us-gaap_DefinedBenefitPlanServiceCost / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember |
Interest cost | 43 us-gaap_DefinedBenefitPlanInterestCost / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 35 us-gaap_DefinedBenefitPlanInterestCost / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember |
Changes in actuarial assumptions | 135 us-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 | 0 us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesBenefitObligation / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 0 us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesBenefitObligation / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember |
Benefits paid | 0 us-gaap_DefinedBenefitPlanBenefitsPaid / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 0 us-gaap_DefinedBenefitPlanBenefitsPaid / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember |
Projected benefit obligation | 1,045 us-gaap_DefinedBenefitPlanBenefitObligation / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 857 us-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 | 857 us-gaap_DefinedBenefitPlanBenefitObligation / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 882 us-gaap_DefinedBenefitPlanBenefitObligation / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember |
Service cost | 10 us-gaap_DefinedBenefitPlanServiceCost / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 0 us-gaap_DefinedBenefitPlanServiceCost / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember |
Interest cost | 43 us-gaap_DefinedBenefitPlanInterestCost / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 35 us-gaap_DefinedBenefitPlanInterestCost / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember |
Changes in actuarial assumptions | 135 us-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 |  | 0 us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesBenefitObligation / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember |
Benefits paid | 0 us-gaap_DefinedBenefitPlanBenefitsPaid / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 0 us-gaap_DefinedBenefitPlanBenefitsPaid / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember |
Projected benefit obligation | 1,045 us-gaap_DefinedBenefitPlanBenefitObligation / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 857 us-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 | 0 us-gaap_DefinedBenefitPlanBenefitObligation / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 0 us-gaap_DefinedBenefitPlanBenefitObligation / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember |
Service cost | 0 us-gaap_DefinedBenefitPlanServiceCost / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 0 us-gaap_DefinedBenefitPlanServiceCost / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember |
Interest cost | 0 us-gaap_DefinedBenefitPlanInterestCost / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 0 us-gaap_DefinedBenefitPlanInterestCost / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember |
Changes in actuarial assumptions | 0 us-gaap_DefinedBenefitPlanActuarialGainLoss / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 0 us-gaap_DefinedBenefitPlanActuarialGainLoss / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember |
Foreign exchange impact | 0 us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesBenefitObligation / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 0 us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesBenefitObligation / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember |
Benefits paid | 0 us-gaap_DefinedBenefitPlanBenefitsPaid / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 0 us-gaap_DefinedBenefitPlanBenefitsPaid / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember |
Projected benefit obligation | 0 us-gaap_DefinedBenefitPlanBenefitObligation / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPBOMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 0 us-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,914 us-gaap_DefinedBenefitPlanFairValueOfPlanAssets / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember
Fair value of plan assets | 10,094 us-gaap_DefinedBenefitPlanFairValueOfPlanAssets / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember | 9,473 us-gaap_DefinedBenefitPlanFairValueOfPlanAssets / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember | 8,914 us-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 | 718 us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember | 475 us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember |
Company contributions | 615 us-gaap_DefinedBenefitPlanContributionsByEmployer / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember | 673 us-gaap_DefinedBenefitPlanContributionsByEmployer / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember |
Foreign exchange impact | 4 us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember | 26 us-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 | 0 us-gaap_DefinedBenefitPlanFairValueOfPlanAssets / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember | 0 us-gaap_DefinedBenefitPlanFairValueOfPlanAssets / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember |
Actual gain (loss) on plan assets | 0 us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember | 0 us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember |
Company contributions | 222 us-gaap_DefinedBenefitPlanContributionsByEmployer / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember | 222 us-gaap_DefinedBenefitPlanContributionsByEmployer / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember |
Foreign exchange impact | 0 us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember | 0 us-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 | 0 us-gaap_DefinedBenefitPlanFairValueOfPlanAssets / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember | 0 us-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,473 us-gaap_DefinedBenefitPlanFairValueOfPlanAssets / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember | 8,914 us-gaap_DefinedBenefitPlanFairValueOfPlanAssets / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember |
Actual gain (loss) on plan assets | 718 us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember | 475 us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember |
Company contributions | 393 us-gaap_DefinedBenefitPlanContributionsByEmployer / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember | 451 us-gaap_DefinedBenefitPlanContributionsByEmployer / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember |
Foreign exchange impact | 4 us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember | 26 us-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,094 us-gaap_DefinedBenefitPlanFairValueOfPlanAssets / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = cspi_PensionMember | 9,473 us-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 | 0 us-gaap_DefinedBenefitPlanFairValueOfPlanAssets / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 0 us-gaap_DefinedBenefitPlanFairValueOfPlanAssets / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember |
Actual gain (loss) on plan assets | 0 us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 0 us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember |
Company contributions | 0 us-gaap_DefinedBenefitPlanContributionsByEmployer / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 0 us-gaap_DefinedBenefitPlanContributionsByEmployer / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember |
Foreign exchange impact | 0 us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 0 us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember |
Benefits paid | 0 us-gaap_DefinedBenefitPlanBenefitsPaid / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 0 us-gaap_DefinedBenefitPlanBenefitsPaid / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember |
Fair value of plan assets | 0 us-gaap_DefinedBenefitPlanFairValueOfPlanAssets / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 0 us-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 | 0 us-gaap_DefinedBenefitPlanFairValueOfPlanAssets / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 0 us-gaap_DefinedBenefitPlanFairValueOfPlanAssets / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember |
Actual gain (loss) on plan assets | 0 us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 0 us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember |
Company contributions | 0 us-gaap_DefinedBenefitPlanContributionsByEmployer / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 0 us-gaap_DefinedBenefitPlanContributionsByEmployer / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember |
Foreign exchange impact | 0 us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 0 us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember |
Benefits paid | 0 us-gaap_DefinedBenefitPlanBenefitsPaid / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 0 us-gaap_DefinedBenefitPlanBenefitsPaid / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember |
Fair value of plan assets | 0 us-gaap_DefinedBenefitPlanFairValueOfPlanAssets / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 0 us-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 | 0 us-gaap_DefinedBenefitPlanFairValueOfPlanAssets / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 0 us-gaap_DefinedBenefitPlanFairValueOfPlanAssets / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember |
Actual gain (loss) on plan assets | 0 us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 0 us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember |
Company contributions | 0 us-gaap_DefinedBenefitPlanContributionsByEmployer / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 0 us-gaap_DefinedBenefitPlanContributionsByEmployer / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember |
Foreign exchange impact | 0 us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 0 us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember |
Benefits paid | 0 us-gaap_DefinedBenefitPlanBenefitsPaid / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 0 us-gaap_DefinedBenefitPlanBenefitsPaid / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember |
Fair value of plan assets | 0 us-gaap_DefinedBenefitPlanFairValueOfPlanAssets / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 0 us-gaap_DefinedBenefitPlanFairValueOfPlanAssets / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember |
Funded status | 0 us-gaap_DefinedBenefitPlanFundedStatusOfPlan / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | 0 us-gaap_DefinedBenefitPlanFundedStatusOfPlan / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember |
Net amount recognized | $ 0 us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember | $ 0 us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet / cspi_ComponentsOfDefinedBenefitPlanAxis = cspi_ChangeInPlanAssetsFairValueMember / us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis = us-gaap_ForeignPensionPlansDefinedBenefitMember / cspi_PensionAndPostRetirementPlansAxis = us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember |

X
- Definition The difference between fair value of plan assets at the end of the period and the fair value at the beginning of the period, adjusted for contributions and payments of benefits during the period, and after adjusting for taxes and other expenses, as applicable. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Glossary Actual Return on Plan Assets (Component of Net Periodic Postretirement Benefit Cost) -URI http://asc.fasb.org/extlink&oid=6504192 Reference 2: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 715 -SubTopic 20 -Section 50 -Paragraph 1 -Subparagraph (b)(1) -URI http://asc.fasb.org/extlink&oid=28361610&loc=d3e1928-114920 Reference 3: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Glossary Actual Return on Plan Assets (Component of Net Periodic Pension Cost) -URI http://asc.fasb.org/extlink&oid=6504226 + Details
Name: | us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | duration

X
- Definition Amount of gain (loss) related to change in benefit obligation resulting from changes in actuarial assumptions, for example, but not limited to, interest, mortality, employee turnover, salary, and temporary deviation from the substantive plan. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 715 -SubTopic 30 -Glossary Gain or Loss -URI http://asc.fasb.org/extlink&oid=6514294 Reference 2: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 715 -SubTopic 20 -Section 50 -Paragraph 1 -Subparagraph (a)(4) -URI http://asc.fasb.org/extlink&oid=28361610&loc=d3e1928-114920 Reference 3: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 715 -SubTopic 60 -Glossary Gain or Loss -URI http://asc.fasb.org/extlink&oid=6749293 + Details
Name: | us-gaap_DefinedBenefitPlanActuarialGainLoss
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | duration

X
- Definition The aggregate net amount recognized in the balance sheet associated with the defined benefit plan(s). Will normally be the same as the Defined Benefit Plan, Funded Status of Plan, Total. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 715 -SubTopic 20 -Section 50 -Paragraph 1 -Subparagraph (c) -URI http://asc.fasb.org/extlink&oid=28361610&loc=d3e1928-114920 Reference 2: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 715 -SubTopic 20 -Section 45 -Paragraph 2 -URI http://asc.fasb.org/extlink&oid=21915240&loc=d3e1703-114919 + Details
Name: | us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Definition 1) For defined benefit pension plans, the benefit obligation is the projected benefit obligation, which is the actuarial present value as of a date of all benefits attributed by the pension benefit formula to employee service rendered prior to that date. 2) For other postretirement defined benefit plans, the benefit obligation is the accumulated postretirement benefit obligation, which is the actuarial present value of benefits attributed to employee service rendered to a particular date. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 715 -SubTopic 20 -Section 50 -Paragraph 1 -Subparagraph (a) -URI http://asc.fasb.org/extlink&oid=28361610&loc=d3e1928-114920 Reference 2: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Glossary Projected Benefit Obligation -URI http://asc.fasb.org/extlink&oid=6522206 Reference 3: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Glossary Accumulated Postretirement Benefit Obligation -URI http://asc.fasb.org/extlink&oid=6503904 + Details
Name: | us-gaap_DefinedBenefitPlanBenefitObligation
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | instant

X
- Definition The amount of payments made for which participants are entitled under a pension plan, including pension benefits, death benefits, and benefits due on termination of employment. Also includes payments made under a postretirement benefit plan, including prescription drug benefits, health care benefits, life insurance benefits, and legal, educational and advisory services. This item represents a periodic decrease to the plan obligations and a decrease to plan assets. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Glossary Postretirement Benefits -URI http://asc.fasb.org/extlink&oid=6521376 Reference 2: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 715 -SubTopic 60 -Section 50 -Paragraph 4 -URI http://asc.fasb.org/extlink&oid=6414203&loc=d3e39716-114964 Reference 3: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 715 -SubTopic 30 -Glossary Benefits -URI http://asc.fasb.org/extlink&oid=6506267 Reference 4: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 715 -SubTopic 60 -Glossary Benefits -URI http://asc.fasb.org/extlink&oid=6506309 Reference 5: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 715 -SubTopic 20 -Section 50 -Paragraph 1 -Subparagraph (a)(6) -URI http://asc.fasb.org/extlink&oid=28361610&loc=d3e1928-114920 Reference 6: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 715 -SubTopic 20 -Section 50 -Paragraph 1 -Subparagraph (b)(5) -URI http://asc.fasb.org/extlink&oid=28361610&loc=d3e1928-114920 + Details
Name: | us-gaap_DefinedBenefitPlanBenefitsPaid
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | duration

X
- Definition The increase in the fair value of plan assets from contributions made by the employer. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 715 -SubTopic 20 -Section 50 -Paragraph 1 -Subparagraph (b)(3) -URI http://asc.fasb.org/extlink&oid=28361610&loc=d3e1928-114920 + Details
Name: | us-gaap_DefinedBenefitPlanContributionsByEmployer
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | duration

X
- Details
Name: | us-gaap_DefinedBenefitPlanDisclosureLineItems
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition Assets, usually stocks, bonds, and other investments, that have been segregated and restricted (usually in a trust) to provide benefits, at their fair value as of the measurement date. Plan assets include amounts contributed by the employer (and by employees for a contributory plan) and amounts earned from investing the contributions, less benefits paid. If a plan has liabilities other than for benefits, those non-benefit obligations may be considered as reductions of plan assets. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 715 -SubTopic 20 -Section 50 -Paragraph 1 -Subparagraph (b) -URI http://asc.fasb.org/extlink&oid=28361610&loc=d3e1928-114920 Reference 2: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 715 -SubTopic 30 -Section 35 -Paragraph 50 -URI http://asc.fasb.org/extlink&oid=29635418&loc=d3e12355-114930 + Details
Name: | us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Definition Amount of gain (loss) from foreign currency exchange rate changes for benefit obligation for plans of a foreign operation whose functional currency is not the reporting currency. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 715 -SubTopic 20 -Section 50 -Paragraph 1 -Subparagraph (a)(5) -URI http://asc.fasb.org/extlink&oid=28361610&loc=d3e1928-114920 + Details
Name: | us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesBenefitObligation
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | duration

X
- Definition The amount of increase or decrease in plan assets attributed to foreign currency changes. The effects of foreign currency exchange rate changes that are to be disclosed are those applicable to plans of a foreign operation whose functional currency is not the reporting currency. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 715 -SubTopic 20 -Section 50 -Paragraph 1 -Subparagraph (b)(2) -URI http://asc.fasb.org/extlink&oid=28361610&loc=d3e1928-114920 + Details
Name: | us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | duration

X
- Definition The funded status is measured as the difference between the fair value of plan assets and the benefit obligation. Will normally be the same as the net Defined Benefit Plan, Amounts Recognized in Balance Sheet, Total. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 715 -SubTopic 20 -Section 50 -Paragraph 1 -Subparagraph (c) -URI http://asc.fasb.org/extlink&oid=28361610&loc=d3e1928-114920 Reference 2: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 715 -SubTopic 20 -Section 45 -Paragraph 2 -URI http://asc.fasb.org/extlink&oid=21915240&loc=d3e1703-114919 + Details
Name: | us-gaap_DefinedBenefitPlanFundedStatusOfPlan
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Definition The increase in a defined benefit pension plan's projected benefit obligation or a defined benefit postretirement plan's accumulated postretirement benefit obligation due to the passage of time. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 715 -SubTopic 20 -Section 50 -Paragraph 1 -Subparagraph (h)(2) -URI http://asc.fasb.org/extlink&oid=28361610&loc=d3e1928-114920 Reference 2: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 715 -SubTopic 20 -Section 50 -Paragraph 1 -Subparagraph (a)(2) -URI http://asc.fasb.org/extlink&oid=28361610&loc=d3e1928-114920 + Details
Name: | us-gaap_DefinedBenefitPlanInterestCost
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | duration

X
- Definition The actuarial present value of benefits attributed by the pension benefit formula to services rendered by employees during the period. The portion of the expected postretirement benefit obligation attributed to employee service during the period. The service cost component is a portion of the benefit obligation and is unaffected by the funded status of the plan. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 715 -SubTopic 20 -Section 50 -Paragraph 1 -Subparagraph (h)(1) -URI http://asc.fasb.org/extlink&oid=28361610&loc=d3e1928-114920 Reference 2: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Glossary Service Cost (Component of Net Periodic Pension Cost) -URI http://asc.fasb.org/extlink&oid=6525008 Reference 3: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 715 -SubTopic 20 -Section 50 -Paragraph 1 -Subparagraph (a)(1) -URI http://asc.fasb.org/extlink&oid=28361610&loc=d3e1928-114920 + Details
Name: | us-gaap_DefinedBenefitPlanServiceCost
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | duration

X
- Details
Name: | cspi_ComponentsOfDefinedBenefitPlanAxis=cspi_ChangeInPBOMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | cspi_ComponentsOfDefinedBenefitPlanAxis=cspi_ChangeInPlanAssetsFairValueMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | cspi_PensionAndPostRetirementPlansAxis=cspi_PensionMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | cspi_PensionAndPostRetirementPlansAxis=us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis=us-gaap_ForeignPensionPlansDefinedBenefitMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis=us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |