XML 73 R59.htm IDEA: XBRL DOCUMENT
v2.4.1.9

Loans and Allowance for Loan Losses (Details 1) (USD $) In Thousands, unless otherwise specified | 12 Months Ended
--- | ---
Dec. 31, 2014 | Dec. 31, 2013 | Dec. 31, 2012
Allowance for Loan Losses |  |  |
Beginning balance | $ 4,735 us-gaap_LoansAndLeasesReceivableAllowance | $ 5,852 us-gaap_LoansAndLeasesReceivableAllowance | $ 5,213 us-gaap_LoansAndLeasesReceivableAllowance
Charge-offs | (1,072)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs | (2,151)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs | (2,499)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs
Recoveries | 410 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery | 734 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery | 623 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery
Provision | 100 us-gaap_ProvisionForLoanLeaseAndOtherLosses | 300 us-gaap_ProvisionForLoanLeaseAndOtherLosses | 2,515 us-gaap_ProvisionForLoanLeaseAndOtherLosses
Ending balance | 4,173 us-gaap_LoansAndLeasesReceivableAllowance | 4,735 us-gaap_LoansAndLeasesReceivableAllowance | 5,852 us-gaap_LoansAndLeasesReceivableAllowance
Individually evaluated for impairment | 1,114 us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1 | 1,063 us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1 | 700 us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1
Collectively evaluated for impairment | 3,059 us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment | 3,672 us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment | 5,152 us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment
Loans |  |  |
Individually evaluated for impairment | 6,885 us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment | 8,287 us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment | 5,939 us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
Collectively evaluated for impairment | 339,228 us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment | 307,679 us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment | 305,529 us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
Ending balance | 346,113 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount | 315,966 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount | 311,468 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
Agricultural [Member] |  |  |
Allowance for Loan Losses |  |  |
Beginning balance | 178 us-gaap_LoansAndLeasesReceivableAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_AgriculturalMember | 140 us-gaap_LoansAndLeasesReceivableAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_AgriculturalMember | 55 us-gaap_LoansAndLeasesReceivableAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_AgriculturalMember
Charge-offs |  | (88)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_AgriculturalMember |
Recoveries | 20 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_AgriculturalMember | 6 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_AgriculturalMember | 5 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_AgriculturalMember
Provision | (12)us-gaap_ProvisionForLoanLeaseAndOtherLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_AgriculturalMember | 120 us-gaap_ProvisionForLoanLeaseAndOtherLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_AgriculturalMember | 80 us-gaap_ProvisionForLoanLeaseAndOtherLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_AgriculturalMember
Ending balance | 186 us-gaap_LoansAndLeasesReceivableAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_AgriculturalMember | 178 us-gaap_LoansAndLeasesReceivableAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_AgriculturalMember | 140 us-gaap_LoansAndLeasesReceivableAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_AgriculturalMember
Individually evaluated for impairment |  |  | 1 us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1 / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_AgriculturalMember
Collectively evaluated for impairment | 186 us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_AgriculturalMember | 178 us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_AgriculturalMember | 139 us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_AgriculturalMember
Loans |  |  |
Individually evaluated for impairment |  | 452 us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_AgriculturalMember | 166 us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_AgriculturalMember
Collectively evaluated for impairment | 41,098 us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_AgriculturalMember | 36,596 us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_AgriculturalMember | 31,624 us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_AgriculturalMember
Ending balance | 41,098 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_AgriculturalMember | 37,048 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_AgriculturalMember | 31,790 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_AgriculturalMember
Commercial and Industrial [Member] |  |  |
Allowance for Loan Losses |  |  |
Beginning balance | 562 us-gaap_LoansAndLeasesReceivableAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_FinancingReceivableCommercialAndIndustrialMember | 381 us-gaap_LoansAndLeasesReceivableAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_FinancingReceivableCommercialAndIndustrialMember | 609 us-gaap_LoansAndLeasesReceivableAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_FinancingReceivableCommercialAndIndustrialMember
Charge-offs | (1)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_FinancingReceivableCommercialAndIndustrialMember | (122)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_FinancingReceivableCommercialAndIndustrialMember | (405)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_FinancingReceivableCommercialAndIndustrialMember
Recoveries | 119 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_FinancingReceivableCommercialAndIndustrialMember | 337 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_FinancingReceivableCommercialAndIndustrialMember | 61 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_FinancingReceivableCommercialAndIndustrialMember
Provision | (153)us-gaap_ProvisionForLoanLeaseAndOtherLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_FinancingReceivableCommercialAndIndustrialMember | (34)us-gaap_ProvisionForLoanLeaseAndOtherLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_FinancingReceivableCommercialAndIndustrialMember | 116 us-gaap_ProvisionForLoanLeaseAndOtherLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_FinancingReceivableCommercialAndIndustrialMember
Ending balance | 527 us-gaap_LoansAndLeasesReceivableAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_FinancingReceivableCommercialAndIndustrialMember | 562 us-gaap_LoansAndLeasesReceivableAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_FinancingReceivableCommercialAndIndustrialMember | 381 us-gaap_LoansAndLeasesReceivableAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_FinancingReceivableCommercialAndIndustrialMember
Individually evaluated for impairment |  | 53 us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1 / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_FinancingReceivableCommercialAndIndustrialMember | 112 us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1 / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_FinancingReceivableCommercialAndIndustrialMember
Collectively evaluated for impairment | 527 us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_FinancingReceivableCommercialAndIndustrialMember | 509 us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_FinancingReceivableCommercialAndIndustrialMember | 269 us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_FinancingReceivableCommercialAndIndustrialMember
Loans |  |  |
Individually evaluated for impairment | 38 us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_FinancingReceivableCommercialAndIndustrialMember | 776 us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_FinancingReceivableCommercialAndIndustrialMember | 198 us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_FinancingReceivableCommercialAndIndustrialMember
Collectively evaluated for impairment | 88,024 us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_FinancingReceivableCommercialAndIndustrialMember | 67,754 us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_FinancingReceivableCommercialAndIndustrialMember | 67,167 us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_FinancingReceivableCommercialAndIndustrialMember
Ending balance | 88,062 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_FinancingReceivableCommercialAndIndustrialMember | 68,530 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_FinancingReceivableCommercialAndIndustrialMember | 67,365 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_FinancingReceivableCommercialAndIndustrialMember
Consumer [Member] |  |  |
Allowance for Loan Losses |  |  |
Beginning balance | 192 us-gaap_LoansAndLeasesReceivableAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | 250 us-gaap_LoansAndLeasesReceivableAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | 197 us-gaap_LoansAndLeasesReceivableAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember
Charge-offs | (273)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | (351)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | (338)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember
Recoveries | 179 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | 175 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | 214 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember
Provision | 86 us-gaap_ProvisionForLoanLeaseAndOtherLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | 118 us-gaap_ProvisionForLoanLeaseAndOtherLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | 177 us-gaap_ProvisionForLoanLeaseAndOtherLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember
Ending balance | 184 us-gaap_LoansAndLeasesReceivableAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | 192 us-gaap_LoansAndLeasesReceivableAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | 250 us-gaap_LoansAndLeasesReceivableAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember
Individually evaluated for impairment | 4 us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1 / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | 3 us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1 / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember |
Collectively evaluated for impairment | 180 us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | 189 us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | 250 us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember
Loans |  |  |
Individually evaluated for impairment | 36 us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | 37 us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | 32 us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember
Collectively evaluated for impairment | 20,716 us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | 19,894 us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | 19,335 us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember
Ending balance | 20,752 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | 19,931 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | 19,367 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember
Commercial Real Estate [Member] |  |  |
Allowance for Loan Losses |  |  |
Beginning balance | 1,842 us-gaap_LoansAndLeasesReceivableAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | 2,596 us-gaap_LoansAndLeasesReceivableAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | 2,299 us-gaap_LoansAndLeasesReceivableAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember
Charge-offs | (665)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | (858)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | (869)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember
Recoveries | 48 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | 84 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | 224 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember
Provision | 416 us-gaap_ProvisionForLoanLeaseAndOtherLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | 20 us-gaap_ProvisionForLoanLeaseAndOtherLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | 942 us-gaap_ProvisionForLoanLeaseAndOtherLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember
Ending balance | 1,641 us-gaap_LoansAndLeasesReceivableAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | 1,842 us-gaap_LoansAndLeasesReceivableAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | 2,596 us-gaap_LoansAndLeasesReceivableAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember
Individually evaluated for impairment | 745 us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1 / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | 699 us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1 / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | 449 us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1 / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember
Collectively evaluated for impairment | 896 us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | 1,143 us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | 2,147 us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember
Loans |  |  |
Individually evaluated for impairment | 3,853 us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | 4,195 us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | 3,723 us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember
Collectively evaluated for impairment | 95,954 us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | 92,792 us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | 89,589 us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember
Ending balance | 99,807 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | 96,987 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | 93,312 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember
Construction Real Estate [Member] |  |  |
Allowance for Loan Losses |  |  |
Beginning balance | 12 us-gaap_LoansAndLeasesReceivableAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConstructionLoansMember | 15 us-gaap_LoansAndLeasesReceivableAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConstructionLoansMember | 34 us-gaap_LoansAndLeasesReceivableAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConstructionLoansMember
Charge-offs |  |  |
Recoveries |  |  |
Provision | (3)us-gaap_ProvisionForLoanLeaseAndOtherLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConstructionLoansMember | (3)us-gaap_ProvisionForLoanLeaseAndOtherLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConstructionLoansMember | (19)us-gaap_ProvisionForLoanLeaseAndOtherLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConstructionLoansMember
Ending balance | 9 us-gaap_LoansAndLeasesReceivableAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConstructionLoansMember | 12 us-gaap_LoansAndLeasesReceivableAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConstructionLoansMember | 15 us-gaap_LoansAndLeasesReceivableAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConstructionLoansMember
Individually evaluated for impairment |  |  |
Collectively evaluated for impairment | 9 us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConstructionLoansMember | 12 us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConstructionLoansMember | 15 us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConstructionLoansMember
Loans |  |  |
Individually evaluated for impairment |  |  |
Collectively evaluated for impairment | 2,691 us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConstructionLoansMember | 890 us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConstructionLoansMember | 1,056 us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConstructionLoansMember
Ending balance | 2,691 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConstructionLoansMember | 890 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConstructionLoansMember | 1,056 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConstructionLoansMember
Residential Real Estate [Member] |  |  |
Allowance for Loan Losses |  |  |
Beginning balance | 1,626 us-gaap_LoansAndLeasesReceivableAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | 1,923 us-gaap_LoansAndLeasesReceivableAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | 1,847 us-gaap_LoansAndLeasesReceivableAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember
Charge-offs | (133)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | (732)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | (887)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember
Recoveries | 44 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | 132 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | 119 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember
Provision | (344)us-gaap_ProvisionForLoanLeaseAndOtherLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | 303 us-gaap_ProvisionForLoanLeaseAndOtherLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | 844 us-gaap_ProvisionForLoanLeaseAndOtherLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember
Ending balance | 1,193 us-gaap_LoansAndLeasesReceivableAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | 1,626 us-gaap_LoansAndLeasesReceivableAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | 1,923 us-gaap_LoansAndLeasesReceivableAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember
Individually evaluated for impairment | 365 us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1 / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | 308 us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1 / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | 138 us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1 / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember
Collectively evaluated for impairment | 828 us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | 1,318 us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | 1,785 us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember
Loans |  |  |
Individually evaluated for impairment | 2,958 us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | 2,827 us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | 1,820 us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember
Collectively evaluated for impairment | 90,745 us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | 89,753 us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | 96,758 us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember
Ending balance | 93,703 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | 92,580 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | 98,578 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember
Unallocated [Member] |  |  |
Allowance for Loan Losses |  |  |
Beginning balance | 323 us-gaap_LoansAndLeasesReceivableAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_UnallocatedFinancingReceivablesMember | 547 us-gaap_LoansAndLeasesReceivableAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_UnallocatedFinancingReceivablesMember | 172 us-gaap_LoansAndLeasesReceivableAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_UnallocatedFinancingReceivablesMember
Charge-offs |  |  |
Recoveries |  |  |
Provision | 110 us-gaap_ProvisionForLoanLeaseAndOtherLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_UnallocatedFinancingReceivablesMember | (224)us-gaap_ProvisionForLoanLeaseAndOtherLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_UnallocatedFinancingReceivablesMember | 375 us-gaap_ProvisionForLoanLeaseAndOtherLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_UnallocatedFinancingReceivablesMember
Ending balance | 433 us-gaap_LoansAndLeasesReceivableAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_UnallocatedFinancingReceivablesMember | 323 us-gaap_LoansAndLeasesReceivableAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_UnallocatedFinancingReceivablesMember | 547 us-gaap_LoansAndLeasesReceivableAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_UnallocatedFinancingReceivablesMember
Individually evaluated for impairment |  |  |
Collectively evaluated for impairment | $ 433 us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_UnallocatedFinancingReceivablesMember | $ 323 us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_UnallocatedFinancingReceivablesMember | $ 547 us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_UnallocatedFinancingReceivablesMember

X
- Details
Name: | cofs_AllowanceForLoanAndLeaseLossesRollForwardAbstract
Namespace Prefix: | cofs_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition The valuation allowance for financing receivables that are expected to be uncollectible that were collectively evaluated for impairment. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 11B -Subparagraph (g) -URI http://asc.fasb.org/extlink&oid=35738203&loc=SL6953423-111524 + Details
Name: | us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | instant

X
- Definition Amount of valuation allowance for financing receivables that are expected to be uncollectible that were individually evaluated for impairment. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 11B -Subparagraph (g) -URI http://asc.fasb.org/extlink&oid=35738203&loc=SL6953423-111524 + Details
Name: | us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | instant

X
- Definition Amount of recovery of financing receivables doubtful of collection that were previously charged off. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 11B -Subparagraph (c)(4) -URI http://asc.fasb.org/extlink&oid=35738203&loc=SL6953423-111524 + Details
Name: | us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | duration

X
- Definition Amount of direct write-downs of financing receivables charged against the allowance. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 11B -Subparagraph (c)(3) -URI http://asc.fasb.org/extlink&oid=35738203&loc=SL6953423-111524 + Details
Name: | us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | duration

X
- Definition The balance of financing receivables that were collectively evaluated for impairment. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 11B -Subparagraph (h) -URI http://asc.fasb.org/extlink&oid=35738203&loc=SL6953423-111524 + Details
Name: | us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Definition The balance of financing receivables that were individually evaluated for impairment. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 11B -Subparagraph (h) -URI http://asc.fasb.org/extlink&oid=35738203&loc=SL6953423-111524 + Details
Name: | us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Definition Amount of allowance to cover probable credit losses on loans and leases. Includes carryover of or adjustments to the allowance for loan losses in connection with business combinations. Excludes allowance for loans and leases covered under loss sharing agreements. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 942 -SubTopic 210 -Section S99 -Paragraph 1 -Subparagraph (SX 210.9-03.7(d)) -URI http://asc.fasb.org/extlink&oid=6876686&loc=d3e534808-122878 Reference 2: http://www.xbrl.org/2003/role/presentationRef -Publisher SEC -Name Regulation S-X (SX) -Number 210 -Section 03 -Paragraph 7 -Subparagraph d -Article 9 Reference 3: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 11B -Subparagraph (g) -URI http://asc.fasb.org/extlink&oid=35738203&loc=SL6953423-111524 Reference 4: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 11B -Subparagraph (c)(1) -URI http://asc.fasb.org/extlink&oid=35738203&loc=SL6953423-111524 Reference 5: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 30 -Section 50 -Paragraph 2 -Subparagraph (b)(1)(ii) -URI http://asc.fasb.org/extlink&oid=6379141&loc=d3e15032-111544 Reference 6: http://www.xbrl.org/2003/role/presentationRef -Publisher SEC -Name Staff Accounting Bulletin (SAB) -Number Topic 6 -Section L -Subsection 1 + Details
Name: | us-gaap_LoansAndLeasesReceivableAllowance
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | instant

X
- Definition Amount before allowance of loans and leases held in portfolio, including but not limited to, commercial and consumer loans. Includes deferred interest and fees, undisbursed portion of loan balance, unamortized costs and premiums and discounts from face amounts. Excludes loans and leases covered under loss sharing agreements. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 45 -Paragraph 2 -URI http://asc.fasb.org/extlink&oid=28367877&loc=d3e4428-111522 + Details
Name: | us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

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

X
- Definition Amount of expense related loan transactions, lease transactions, credit loss from transactions other than loan and lease transactions, and other loss based on assessment of uncollectability from the counterparty to reduce the account to their net realizable value. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 230 -SubTopic 10 -Section 45 -Paragraph 28 -Subparagraph (a) -URI http://asc.fasb.org/extlink&oid=31042434&loc=d3e3602-108585 Reference 2: http://www.xbrl.org/2003/role/presentationRef -Publisher SEC -Name Regulation S-X (SX) -Number 210 -Section 04 -Paragraph 11 -Article 9 Reference 3: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 942 -SubTopic 225 -Section S99 -Paragraph 1 -Subparagraph (SX 210.9-04.11) -URI http://asc.fasb.org/extlink&oid=6879574&loc=d3e536633-122882 Reference 4: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 11B -Subparagraph (c)(2) -URI http://asc.fasb.org/extlink&oid=35738203&loc=SL6953423-111524 + Details
Name: | us-gaap_ProvisionForLoanLeaseAndOtherLosses
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | duration

X
- Details
Name: | us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis=cofs_AgriculturalMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis=cofs_FinancingReceivableCommercialAndIndustrialMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis=us-gaap_CommercialRealEstatePortfolioSegmentMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis=us-gaap_ConstructionLoansMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis=us-gaap_ConsumerPortfolioSegmentMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis=us-gaap_ResidentialPortfolioSegmentMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis=us-gaap_UnallocatedFinancingReceivablesMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |