XML 47 R45.htm IDEA: XBRL DOCUMENT v2.4.1.9
Loans (Summary of Impaired Loans by Classes of Loans) (Details) (USD $)
In Thousands, unless otherwise specified
Mar. 31, 2015
Dec. 31, 2014
Mar. 31, 2014
Impaired loans with a valuation allowance [Member]      
Schedule of Impaired loans by classes      
Recorded Investment $ 25,100us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
$ 23,234us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
$ 27,198us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
Unpaid Principal Balance 25,375us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
23,648us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
27,526us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
Related Valuation Allowance 1,912us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
1,338us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
2,065us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
Impaired loans with no valuation allowance [Member]      
Schedule of Impaired loans by classes      
Recorded Investment 104,052us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
111,433us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
101,297us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
Unpaid Principal Balance 133,493us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
141,622us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
122,701us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
Related Valuation Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
Total Impaired Loans [Member]      
Schedule of Impaired loans by classes      
Recorded Investment 129,152us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
134,667us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
128,495us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
Unpaid Principal Balance 158,868us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
165,270us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
150,227us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
Related Valuation Allowance 1,912us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
1,338us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
2,065us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
Commercial [Member] | Impaired loans with a valuation allowance [Member]      
Schedule of Impaired loans by classes      
Recorded Investment 3,433us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
966us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
3,534us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
Unpaid Principal Balance 3,527us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
1,040us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
3,704us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
Related Valuation Allowance 1,119us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
293us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
1,250us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ 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 33,733us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
38,094us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
38,150us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
Unpaid Principal Balance 39,382us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
44,557us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
42,914us-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
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
Commercial [Member] | Total Impaired Loans [Member]      
Schedule of Impaired loans by classes      
Recorded Investment 37,166us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
39,060us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
41,684us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
Unpaid Principal Balance 42,909us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
45,597us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
46,618us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
Related Valuation Allowance 1,119us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
293us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
1,250us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ 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 1,780us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
2,587us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
3,720us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
Unpaid Principal Balance 1,961us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
2,927us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
3,878us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
Related Valuation Allowance 496us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
710us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
371us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ 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 57,628us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
60,616us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
49,074us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
Unpaid Principal Balance 79,696us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
82,693us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
62,207us-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
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ 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 59,408us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
63,203us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
52,794us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
Unpaid Principal Balance 81,657us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
85,620us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
66,085us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
Related Valuation Allowance 496us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
710us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
371us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ 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
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
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
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ 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 663us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
162us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
160us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
Unpaid Principal Balance 836us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
255us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
366us-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
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ 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 663us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
162us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
160us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
Unpaid Principal Balance 836us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
255us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
366us-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
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ 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
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
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
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ 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,877us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
1,928us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
4,472us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
Unpaid Principal Balance 3,428us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
3,484us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
7,773us-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
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ 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,877us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
1,928us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
4,472us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
Unpaid Principal Balance 3,428us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
3,484us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
7,773us-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
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ 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,887us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
19,681us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
19,944us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
Unpaid Principal Balance 19,887us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
19,681us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
19,944us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
Related Valuation Allowance 297us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
335us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithValuationAllowanceMember
444us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ 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,382us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
7,994us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
6,589us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
Unpaid Principal Balance 7,382us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
7,994us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
6,589us-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
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ 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,269us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
27,675us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
26,533us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
Unpaid Principal Balance 27,269us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
27,675us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
26,533us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
Related Valuation Allowance 297us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
335us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
444us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ 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 444us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
518us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
806us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
Unpaid Principal Balance 444us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
518us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
806us-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
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
Consumer installment [Member] | Total Impaired Loans [Member]      
Schedule of Impaired loans by classes      
Recorded Investment 444us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
518us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
806us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
Unpaid Principal Balance 444us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
518us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
806us-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
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ 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,325us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
2,121us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
2,046us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
Unpaid Principal Balance 2,325us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
2,121us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_ImpairedLoansWithNoValuationAllowanceMember
2,046us-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
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ 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,325us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
2,121us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
2,046us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
Unpaid Principal Balance 2,325us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
2,121us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember
2,046us-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
$ 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ chfc_ScheduleOfImpairedFinancingReceivableAxis
= chfc_TotalImpairedLoansMember