XML 28 R78.htm IDEA: XBRL DOCUMENT v2.4.1.9
Loans (Summary of Impaired Loans by Classes of Loans) (Details) (USD $)
In Thousands, unless otherwise specified
12 Months Ended
Dec. 31, 2014
Dec. 31, 2013
Dec. 31, 2012
Impaired loans with a valuation allowance [Member]      
Schedule of Impaired loans by classes      
Recorded Investment $ 23,234us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
$ 22,501us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
 
Unpaid Principal Balance 23,648us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
23,029us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
 
Related Valuation Allowance 1,338us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
1,591us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
 
Average Annual Recorded Investment 25,556us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
33,587us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
 
Interest Income Recognized While on Impaired Status 1,252us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
1,123us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
 
Impaired loans with no valuation allowance [Member]      
Schedule of Impaired loans by classes      
Recorded Investment 111,433us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
106,844us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
 
Unpaid Principal Balance 141,622us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
130,361us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
 
Related Valuation Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
 
Average Annual Recorded Investment 102,320us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
87,434us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
 
Interest Income Recognized While on Impaired Status 3,101us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
2,641us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
 
Total Impaired Loans [Member]      
Schedule of Impaired loans by classes      
Recorded Investment 134,667us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
129,345us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
 
Unpaid Principal Balance 165,270us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
153,390us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
 
Related Valuation Allowance 1,338us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
1,591us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
 
Average Annual Recorded Investment 127,876us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
121,021us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
133,000us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
Interest Income Recognized While on Impaired Status 4,353us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
3,764us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
3,700us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
Commercial [Member] | Impaired loans with a valuation allowance [Member]      
Schedule of Impaired loans by classes      
Recorded Investment 966us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
2,517us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
 
Unpaid Principal Balance 1,040us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
2,656us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
 
Related Valuation Allowance 293us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
728us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
 
Average Annual Recorded Investment 2,117us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
5,398us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
 
Interest Income Recognized While on Impaired Status 0us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
0us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
 
Commercial [Member] | Impaired loans with no valuation allowance [Member]      
Schedule of Impaired loans by classes      
Recorded Investment 38,094us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
38,838us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
 
Unpaid Principal Balance 44,557us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
44,377us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
 
Related Valuation Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
 
Average Annual Recorded Investment 39,020us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
24,231us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
 
Interest Income Recognized While on Impaired Status 1,375us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
990us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
 
Commercial [Member] | Total Impaired Loans [Member]      
Schedule of Impaired loans by classes      
Recorded Investment 39,060us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
41,355us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
 
Unpaid Principal Balance 45,597us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
47,033us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
 
Related Valuation Allowance 293us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
728us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
 
Average Annual Recorded Investment 41,137us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
29,629us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
27,700us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
Interest Income Recognized While on Impaired Status 1,375us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
990us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
1,000us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
Real estate commercial [Member] | Impaired loans with a valuation allowance [Member]      
Schedule of Impaired loans by classes      
Recorded Investment 2,587us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
2,576us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
 
Unpaid Principal Balance 2,927us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
2,965us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
 
Related Valuation Allowance 710us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
353us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
 
Average Annual Recorded Investment 3,699us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
9,725us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
 
Interest Income Recognized While on Impaired Status 0us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
0us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
 
Real estate commercial [Member] | Impaired loans with no valuation allowance [Member]      
Schedule of Impaired loans by classes      
Recorded Investment 60,616us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
48,220us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
 
Unpaid Principal Balance 82,693us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
61,444us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
 
Related Valuation Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
 
Average Annual Recorded Investment 49,676us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
41,100us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
 
Interest Income Recognized While on Impaired Status 1,567us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
1,348us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
 
Real estate commercial [Member] | Total Impaired Loans [Member]      
Schedule of Impaired loans by classes      
Recorded Investment 63,203us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
50,796us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
 
Unpaid Principal Balance 85,620us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
64,409us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
 
Related Valuation Allowance 710us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
353us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
 
Average Annual Recorded Investment 53,375us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
50,825us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
58,100us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
Interest Income Recognized While on Impaired Status 1,567us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
1,348us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
1,000us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
Real estate construction [Member] | Impaired loans with a valuation allowance [Member]      
Schedule of Impaired loans by classes      
Recorded Investment 0us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
0us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
 
Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
0us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
 
Related Valuation Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
 
Average Annual Recorded Investment 0us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
56us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
 
Interest Income Recognized While on Impaired Status 0us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
0us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
 
Real estate construction [Member] | Impaired loans with no valuation allowance [Member]      
Schedule of Impaired loans by classes      
Recorded Investment 162us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
371us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
 
Unpaid Principal Balance 255us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
478us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
 
Related Valuation Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
 
Average Annual Recorded Investment 164us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
314us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
 
Interest Income Recognized While on Impaired Status 0us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
0us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
 
Real estate construction [Member] | Total Impaired Loans [Member]      
Schedule of Impaired loans by classes      
Recorded Investment 162us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
371us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
 
Unpaid Principal Balance 255us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
478us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
 
Related Valuation Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
 
Average Annual Recorded Investment 164us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
370us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
700us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
Interest Income Recognized While on Impaired Status 0us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
0us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
 
Land development [Member] | Impaired loans with a valuation allowance [Member]      
Schedule of Impaired loans by classes      
Recorded Investment 0us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
0us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
 
Unpaid Principal Balance 0us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
0us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
 
Related Valuation Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
 
Average Annual Recorded Investment 0us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
719us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
 
Interest Income Recognized While on Impaired Status 0us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
0us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
 
Land development [Member] | Impaired loans with no valuation allowance [Member]      
Schedule of Impaired loans by classes      
Recorded Investment 1,928us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
7,170us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
 
Unpaid Principal Balance 3,484us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
11,817us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
 
Related Valuation Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
 
Average Annual Recorded Investment 3,551us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
9,075us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
 
Interest Income Recognized While on Impaired Status 131us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
303us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
 
Land development [Member] | Total Impaired Loans [Member]      
Schedule of Impaired loans by classes      
Recorded Investment 1,928us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
7,170us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
 
Unpaid Principal Balance 3,484us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
11,817us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
 
Related Valuation Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
 
Average Annual Recorded Investment 3,551us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
9,794us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
9,100us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
Interest Income Recognized While on Impaired Status 131us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
303us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
400us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
Real estate residential [Member] | Impaired loans with a valuation allowance [Member]      
Schedule of Impaired loans by classes      
Recorded Investment 19,681us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
17,408us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
 
Unpaid Principal Balance 19,681us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
17,408us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
 
Related Valuation Allowance 335us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
510us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
 
Average Annual Recorded Investment 19,740us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
17,689us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
 
Interest Income Recognized While on Impaired Status 1,252us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
1,123us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
 
Real estate residential [Member] | Impaired loans with no valuation allowance [Member]      
Schedule of Impaired loans by classes      
Recorded Investment 7,994us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
8,921us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
 
Unpaid Principal Balance 7,994us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
8,921us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
 
Related Valuation Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
 
Average Annual Recorded Investment 7,005us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
9,147us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
 
Interest Income Recognized While on Impaired Status 15us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
0us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
 
Real estate residential [Member] | Total Impaired Loans [Member]      
Schedule of Impaired loans by classes      
Recorded Investment 27,675us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
26,329us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
 
Unpaid Principal Balance 27,675us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
26,329us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
 
Related Valuation Allowance 335us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
510us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
 
Average Annual Recorded Investment 26,745us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
26,836us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
33,400us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
Interest Income Recognized While on Impaired Status 1,267us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
1,123us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
1,400us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
Consumer installment [Member] | Impaired loans with no valuation allowance [Member]      
Schedule of Impaired loans by classes      
Recorded Investment 518us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
676us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
 
Unpaid Principal Balance 518us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
676us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
 
Related Valuation Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
 
Average Annual Recorded Investment 602us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
653us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
 
Interest Income Recognized While on Impaired Status 1us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
0us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
 
Consumer installment [Member] | Total Impaired Loans [Member]      
Schedule of Impaired loans by classes      
Recorded Investment 518us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
676us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
 
Unpaid Principal Balance 518us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
676us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
 
Related Valuation Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
 
Average Annual Recorded Investment 602us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
653us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
1,100us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
Interest Income Recognized While on Impaired Status 1us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
0us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
 
Home equity [Member] | Impaired loans with no valuation allowance [Member]      
Schedule of Impaired loans by classes      
Recorded Investment 2,121us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
2,648us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
 
Unpaid Principal Balance 2,121us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
2,648us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
 
Related Valuation Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
 
Average Annual Recorded Investment 2,302us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
2,914us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
 
Interest Income Recognized While on Impaired Status 12us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
0us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
 
Home equity [Member] | Total Impaired Loans [Member]      
Schedule of Impaired loans by classes      
Recorded Investment 2,121us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
2,648us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
 
Unpaid Principal Balance 2,121us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
2,648us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
 
Related Valuation Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
 
Average Annual Recorded Investment 2,302us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
2,914us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
2,900us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
Interest Income Recognized While on Impaired Status $ 12us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
$ 0us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember