XML 19 R28.htm IDEA: XBRL DOCUMENT
v2.4.1.9

Loans and Allowance for Loan Losses (Details 5) (USD $) In Thousands, unless otherwise specified | Mar. 31, 2015 | Dec. 31, 2014
--- | --- | ---
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |  |  |
Past Due Total | $ 2,883 us-gaap_FinancingReceivableRecordedInvestmentPastDue | [1] | $ 3,434 us-gaap_FinancingReceivableRecordedInvestmentPastDue | [1]
Loans Not Past Due | 335,410 us-gaap_FinancingReceivableRecordedInvestmentCurrent |  | 342,679 us-gaap_FinancingReceivableRecordedInvestmentCurrent |
Loans | 338,293 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount |  | 346,113 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount |
90 Days Past Due and Accruing |  |  | 58 us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing |
30 to 59 Days [Member] |  |  |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |  |  |
Past Due Total | 1,863 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivablesPeriodPastDueAxis = us-gaap_FinancingReceivables30To59DaysPastDueMember |  | 1,647 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivablesPeriodPastDueAxis = us-gaap_FinancingReceivables30To59DaysPastDueMember |
60 to 89 Days [Member] |  |  |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |  |  |
Past Due Total | 269 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivablesPeriodPastDueAxis = us-gaap_FinancingReceivables60To89DaysPastDueMember |  | 725 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivablesPeriodPastDueAxis = us-gaap_FinancingReceivables60To89DaysPastDueMember |
Than 90 Days [Member] |  |  |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |  |  |
Past Due Total | 752 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivablesPeriodPastDueAxis = us-gaap_FinancingReceivablesEqualToGreaterThan90DaysPastDueMember | [1] | 1,062 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivablesPeriodPastDueAxis = us-gaap_FinancingReceivablesEqualToGreaterThan90DaysPastDueMember | [1]
Agricultural [Member] |  |  |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |  |  |
Past Due Total | 210 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_AgriculturalMember | [1] |  |
Loans Not Past Due | 35,329 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_AgriculturalMember |  | 41,098 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_AgriculturalMember |
Loans | 35,539 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_AgriculturalMember |  | 41,098 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_AgriculturalMember |
Agricultural [Member] | Than 90 Days [Member] |  |  |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |  |  |
Past Due Total | 210 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_AgriculturalMember / us-gaap_FinancingReceivablesPeriodPastDueAxis = us-gaap_FinancingReceivablesEqualToGreaterThan90DaysPastDueMember | [1] |  |
Commercial and Industrial [Member] |  |  |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |  |  |
Past Due Total | 555 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_FinancingReceivableCommercialAndIndustrialMember | [1] | 293 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_FinancingReceivableCommercialAndIndustrialMember | [1]
Loans Not Past Due | 87,734 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_FinancingReceivableCommercialAndIndustrialMember |  | 87,769 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_FinancingReceivableCommercialAndIndustrialMember |
Loans | 88,289 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_FinancingReceivableCommercialAndIndustrialMember |  | 88,062 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_FinancingReceivableCommercialAndIndustrialMember |
Commercial and Industrial [Member] | 30 to 59 Days [Member] |  |  |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |  |  |
Past Due Total | 309 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_FinancingReceivableCommercialAndIndustrialMember / us-gaap_FinancingReceivablesPeriodPastDueAxis = us-gaap_FinancingReceivables30To59DaysPastDueMember |  | 33 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_FinancingReceivableCommercialAndIndustrialMember / us-gaap_FinancingReceivablesPeriodPastDueAxis = us-gaap_FinancingReceivables30To59DaysPastDueMember |
Commercial and Industrial [Member] | 60 to 89 Days [Member] |  |  |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |  |  |
Past Due Total | 247 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_FinancingReceivableCommercialAndIndustrialMember / us-gaap_FinancingReceivablesPeriodPastDueAxis = us-gaap_FinancingReceivables60To89DaysPastDueMember |  | 260 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = cofs_FinancingReceivableCommercialAndIndustrialMember / us-gaap_FinancingReceivablesPeriodPastDueAxis = us-gaap_FinancingReceivables60To89DaysPastDueMember |
Consumer [Member] |  |  |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |  |  |
Past Due Total | 43 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | [1] | 76 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | [1]
Loans Not Past Due | 19,714 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember |  | 20,676 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember |
Loans | 19,757 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember |  | 20,752 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember |
Consumer [Member] | 30 to 59 Days [Member] |  |  |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |  |  |
Past Due Total | 40 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivablesPeriodPastDueAxis = us-gaap_FinancingReceivables30To59DaysPastDueMember |  | 66 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivablesPeriodPastDueAxis = us-gaap_FinancingReceivables30To59DaysPastDueMember |
Consumer [Member] | 60 to 89 Days [Member] |  |  |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |  |  |
Past Due Total | 3 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivablesPeriodPastDueAxis = us-gaap_FinancingReceivables60To89DaysPastDueMember |  | 10 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember / us-gaap_FinancingReceivablesPeriodPastDueAxis = us-gaap_FinancingReceivables60To89DaysPastDueMember |
Commercial Real Estate [Member] |  |  |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |  |  |
Past Due Total | 1,453 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | [1] | 922 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | [1]
Loans Not Past Due | 98,899 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember |  | 98,885 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember |
Loans | 100,352 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember |  | 99,807 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember |
Commercial Real Estate [Member] | 30 to 59 Days [Member] |  |  |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |  |  |
Past Due Total | 1,097 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember / us-gaap_FinancingReceivablesPeriodPastDueAxis = us-gaap_FinancingReceivables30To59DaysPastDueMember |  | 172 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember / us-gaap_FinancingReceivablesPeriodPastDueAxis = us-gaap_FinancingReceivables30To59DaysPastDueMember |
Commercial Real Estate [Member] | 60 to 89 Days [Member] |  |  |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |  |  |
Past Due Total |  |  | 51 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember / us-gaap_FinancingReceivablesPeriodPastDueAxis = us-gaap_FinancingReceivables60To89DaysPastDueMember |
Commercial Real Estate [Member] | Than 90 Days [Member] |  |  |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |  |  |
Past Due Total | 356 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember / us-gaap_FinancingReceivablesPeriodPastDueAxis = us-gaap_FinancingReceivablesEqualToGreaterThan90DaysPastDueMember | [1] | 699 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember / us-gaap_FinancingReceivablesPeriodPastDueAxis = us-gaap_FinancingReceivablesEqualToGreaterThan90DaysPastDueMember | [1]
Construction Real Estate [Member] |  |  |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |  |  |
Loans Not Past Due | 3,242 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConstructionLoansMember |  | 2,691 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConstructionLoansMember |
Loans | 3,242 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConstructionLoansMember |  | 2,691 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConstructionLoansMember |
Residential Real Estate [Member] |  |  |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |  |  |
Past Due Total | 622 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | [1] | 2,143 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | [1]
Loans Not Past Due | 90,492 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember |  | 91,560 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember |
Loans | 91,114 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember |  | 93,703 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember |
90 Days Past Due and Accruing | 11 us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember |  | 58 us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember |
Residential Real Estate [Member] | 30 to 59 Days [Member] |  |  |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |  |  |
Past Due Total | 417 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivablesPeriodPastDueAxis = us-gaap_FinancingReceivables30To59DaysPastDueMember |  | 1,376 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivablesPeriodPastDueAxis = us-gaap_FinancingReceivables30To59DaysPastDueMember |
Residential Real Estate [Member] | 60 to 89 Days [Member] |  |  |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |  |  |
Past Due Total | 19 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivablesPeriodPastDueAxis = us-gaap_FinancingReceivables60To89DaysPastDueMember |  | 404 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivablesPeriodPastDueAxis = us-gaap_FinancingReceivables60To89DaysPastDueMember |
Residential Real Estate [Member] | Than 90 Days [Member] |  |  |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |  |  |
Past Due Total | $ 186 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivablesPeriodPastDueAxis = us-gaap_FinancingReceivablesEqualToGreaterThan90DaysPastDueMember | [1] | $ 363 us-gaap_FinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivablesPeriodPastDueAxis = us-gaap_FinancingReceivablesEqualToGreaterThan90DaysPastDueMember | [1]
[1] | Includes nonaccrual loans

X
- Definition Recorded investment in financing receivables that are 90 days or more past due and still accruing. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 7 -Subparagraph (d) -URI http://asc.fasb.org/extlink&oid=49124121&loc=d3e5111-111524 + Details
Name: | us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Definition Financing receivables that are current. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 7A -URI http://asc.fasb.org/extlink&oid=49124121&loc=SL6953401-111524 + Details
Name: | us-gaap_FinancingReceivableRecordedInvestmentCurrent
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Definition Recorded Investment in financing receivables that are past due at the balance sheet date. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 7A -URI http://asc.fasb.org/extlink&oid=49124121&loc=SL6953401-111524 + Details
Name: | us-gaap_FinancingReceivableRecordedInvestmentPastDue
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

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

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_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_FinancingReceivablesPeriodPastDueAxis=us-gaap_FinancingReceivables30To59DaysPastDueMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_FinancingReceivablesPeriodPastDueAxis=us-gaap_FinancingReceivables60To89DaysPastDueMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_FinancingReceivablesPeriodPastDueAxis=us-gaap_FinancingReceivablesEqualToGreaterThan90DaysPastDueMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |