XML 32 R79.htm IDEA: XBRL DOCUMENT v2.4.1.9
Loans (Summary of the Aging Status of the Recorded Investment in Loans by Portfolio Segment/Class) (Details) (USD $)
In Thousands, unless otherwise specified
Dec. 31, 2014
Dec. 31, 2013
Originated Portfolio [Member]    
Schedule representing the aging status of the recorded investment in loans by classes    
Financing receivable, recorded investment 31 to 60 days past due $ 20,595chfc_FinancingReceivableRecordedInvestmentThirtyOneToSixtyDaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
$ 19,581chfc_FinancingReceivableRecordedInvestmentThirtyOneToSixtyDaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable, recorded investment 61 to 89 days past due 3,352chfc_FinancingReceivableRecordedInvestmentSixtyOneToEightyNineDaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
7,316chfc_FinancingReceivableRecordedInvestmentSixtyOneToEightyNineDaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable, recorded investment accruing loans past due 90 days or more 2,073us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
1,997us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable, recorded investment, Non-accrual loans 50,644us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
61,897us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable recorded investment, Total past due 76,664chfc_FinancingReceivableRecordedInvestmentPastDueIncludingNonaccrualLoans
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
90,791chfc_FinancingReceivableRecordedInvestmentPastDueIncludingNonaccrualLoans
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable, recorded investment, Current 4,913,403us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
4,262,133us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable, recorded investment, Total loans 4,990,067chfc_FinancingReceivableRecordedInvestmentCurrentAndPastDueIncludingNonaccrualLoans
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
4,352,924chfc_FinancingReceivableRecordedInvestmentCurrentAndPastDueIncludingNonaccrualLoans
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Originated Portfolio [Member] | Commercial [Member]    
Schedule representing the aging status of the recorded investment in loans by classes    
Financing receivable, recorded investment 31 to 60 days past due 4,033chfc_FinancingReceivableRecordedInvestmentThirtyOneToSixtyDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
4,748chfc_FinancingReceivableRecordedInvestmentThirtyOneToSixtyDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable, recorded investment 61 to 89 days past due 743chfc_FinancingReceivableRecordedInvestmentSixtyOneToEightyNineDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
865chfc_FinancingReceivableRecordedInvestmentSixtyOneToEightyNineDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable, recorded investment accruing loans past due 90 days or more 170us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
536us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable, recorded investment, Non-accrual loans 16,418us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
18,374us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable recorded investment, Total past due 21,364chfc_FinancingReceivableRecordedInvestmentPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
24,523chfc_FinancingReceivableRecordedInvestmentPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable, recorded investment, Current 1,234,534us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
1,068,170us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable, recorded investment, Total loans 1,255,898chfc_FinancingReceivableRecordedInvestmentCurrentAndPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
1,092,693chfc_FinancingReceivableRecordedInvestmentCurrentAndPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Originated Portfolio [Member] | Real estate commercial [Member]    
Schedule representing the aging status of the recorded investment in loans by classes    
Financing receivable, recorded investment 31 to 60 days past due 7,515chfc_FinancingReceivableRecordedInvestmentThirtyOneToSixtyDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
8,560chfc_FinancingReceivableRecordedInvestmentThirtyOneToSixtyDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable, recorded investment 61 to 89 days past due 1,383chfc_FinancingReceivableRecordedInvestmentSixtyOneToEightyNineDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
1,604chfc_FinancingReceivableRecordedInvestmentSixtyOneToEightyNineDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable, recorded investment accruing loans past due 90 days or more 0us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
190us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable, recorded investment, Non-accrual loans 24,966us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
28,598us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable recorded investment, Total past due 33,864chfc_FinancingReceivableRecordedInvestmentPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
38,952chfc_FinancingReceivableRecordedInvestmentPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable, recorded investment, Current 1,170,562us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
1,046,235us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable, recorded investment, Total loans 1,204,426chfc_FinancingReceivableRecordedInvestmentCurrentAndPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
1,085,187chfc_FinancingReceivableRecordedInvestmentCurrentAndPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Originated Portfolio [Member] | Real estate construction [Member]    
Schedule representing the aging status of the recorded investment in loans by classes    
Financing receivable, recorded investment 31 to 60 days past due 262chfc_FinancingReceivableRecordedInvestmentThirtyOneToSixtyDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
0chfc_FinancingReceivableRecordedInvestmentThirtyOneToSixtyDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable, recorded investment 61 to 89 days past due 0chfc_FinancingReceivableRecordedInvestmentSixtyOneToEightyNineDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
4,107chfc_FinancingReceivableRecordedInvestmentSixtyOneToEightyNineDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable, recorded investment accruing loans past due 90 days or more 0us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
0us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable, recorded investment, Non-accrual loans 162us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
371us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable recorded investment, Total past due 424chfc_FinancingReceivableRecordedInvestmentPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
4,478chfc_FinancingReceivableRecordedInvestmentPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable, recorded investment, Current 138,316us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
72,981us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable, recorded investment, Total loans 138,740chfc_FinancingReceivableRecordedInvestmentCurrentAndPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
77,459chfc_FinancingReceivableRecordedInvestmentCurrentAndPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Originated Portfolio [Member] | Land development [Member]    
Schedule representing the aging status of the recorded investment in loans by classes    
Financing receivable, recorded investment 31 to 60 days past due 0chfc_FinancingReceivableRecordedInvestmentThirtyOneToSixtyDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
0chfc_FinancingReceivableRecordedInvestmentThirtyOneToSixtyDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable, recorded investment 61 to 89 days past due 0chfc_FinancingReceivableRecordedInvestmentSixtyOneToEightyNineDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
0chfc_FinancingReceivableRecordedInvestmentSixtyOneToEightyNineDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable, recorded investment accruing loans past due 90 days or more 0us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
0us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable, recorded investment, Non-accrual loans 225us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
2,309us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable recorded investment, Total past due 225chfc_FinancingReceivableRecordedInvestmentPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
2,309chfc_FinancingReceivableRecordedInvestmentPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable, recorded investment, Current 4,303us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
10,971us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable, recorded investment, Total loans 4,528chfc_FinancingReceivableRecordedInvestmentCurrentAndPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
13,280chfc_FinancingReceivableRecordedInvestmentCurrentAndPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Originated Portfolio [Member] | Real estate residential [Member]    
Schedule representing the aging status of the recorded investment in loans by classes    
Financing receivable, recorded investment 31 to 60 days past due 2,126chfc_FinancingReceivableRecordedInvestmentThirtyOneToSixtyDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
2,191chfc_FinancingReceivableRecordedInvestmentThirtyOneToSixtyDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable, recorded investment 61 to 89 days past due 54chfc_FinancingReceivableRecordedInvestmentSixtyOneToEightyNineDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
103chfc_FinancingReceivableRecordedInvestmentSixtyOneToEightyNineDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable, recorded investment accruing loans past due 90 days or more 557us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
537us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable, recorded investment, Non-accrual loans 6,706us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
8,921us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable recorded investment, Total past due 9,443chfc_FinancingReceivableRecordedInvestmentPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
11,752chfc_FinancingReceivableRecordedInvestmentPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable, recorded investment, Current 988,558us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
937,129us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable, recorded investment, Total loans 998,001chfc_FinancingReceivableRecordedInvestmentCurrentAndPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
948,881chfc_FinancingReceivableRecordedInvestmentCurrentAndPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Originated Portfolio [Member] | Consumer installment [Member]    
Schedule representing the aging status of the recorded investment in loans by classes    
Financing receivable, recorded investment 31 to 60 days past due 3,620chfc_FinancingReceivableRecordedInvestmentThirtyOneToSixtyDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
2,630chfc_FinancingReceivableRecordedInvestmentThirtyOneToSixtyDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable, recorded investment 61 to 89 days past due 512chfc_FinancingReceivableRecordedInvestmentSixtyOneToEightyNineDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
359chfc_FinancingReceivableRecordedInvestmentSixtyOneToEightyNineDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable, recorded investment accruing loans past due 90 days or more 0us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
0us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable, recorded investment, Non-accrual loans 500us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
676us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable recorded investment, Total past due 4,632chfc_FinancingReceivableRecordedInvestmentPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
3,665chfc_FinancingReceivableRecordedInvestmentPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable, recorded investment, Current 814,746us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
639,381us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable, recorded investment, Total loans 819,378chfc_FinancingReceivableRecordedInvestmentCurrentAndPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
643,046chfc_FinancingReceivableRecordedInvestmentCurrentAndPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Originated Portfolio [Member] | Home equity [Member]    
Schedule representing the aging status of the recorded investment in loans by classes    
Financing receivable, recorded investment 31 to 60 days past due 3,039chfc_FinancingReceivableRecordedInvestmentThirtyOneToSixtyDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
1,452chfc_FinancingReceivableRecordedInvestmentThirtyOneToSixtyDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable, recorded investment 61 to 89 days past due 660chfc_FinancingReceivableRecordedInvestmentSixtyOneToEightyNineDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
278chfc_FinancingReceivableRecordedInvestmentSixtyOneToEightyNineDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable, recorded investment accruing loans past due 90 days or more 1,346us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
734us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable, recorded investment, Non-accrual loans 1,667us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
2,648us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable recorded investment, Total past due 6,712chfc_FinancingReceivableRecordedInvestmentPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
5,112chfc_FinancingReceivableRecordedInvestmentPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable, recorded investment, Current 562,384us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
487,266us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Financing receivable, recorded investment, Total loans 569,096chfc_FinancingReceivableRecordedInvestmentCurrentAndPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
492,378chfc_FinancingReceivableRecordedInvestmentCurrentAndPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Acquired Portfolio [Member]    
Schedule representing the aging status of the recorded investment in loans by classes    
Financing receivable, recorded investment 31 to 60 days past due 2,994chfc_FinancingReceivableRecordedInvestmentThirtyOneToSixtyDaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
397chfc_FinancingReceivableRecordedInvestmentThirtyOneToSixtyDaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable, recorded investment 61 to 89 days past due 461chfc_FinancingReceivableRecordedInvestmentSixtyOneToEightyNineDaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
184chfc_FinancingReceivableRecordedInvestmentSixtyOneToEightyNineDaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable, recorded investment accruing loans past due 90 days or more 19,892us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
9,787us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable, recorded investment, Non-accrual loans 0us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
0us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable recorded investment, Total past due 23,347chfc_FinancingReceivableRecordedInvestmentPastDueIncludingNonaccrualLoans
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
10,368chfc_FinancingReceivableRecordedInvestmentPastDueIncludingNonaccrualLoans
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable, recorded investment, Current 674,816us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
284,329us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable, recorded investment, Total loans 698,163chfc_FinancingReceivableRecordedInvestmentCurrentAndPastDueIncludingNonaccrualLoans
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
294,697chfc_FinancingReceivableRecordedInvestmentCurrentAndPastDueIncludingNonaccrualLoans
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Acquired Portfolio [Member] | Commercial [Member]    
Schedule representing the aging status of the recorded investment in loans by classes    
Financing receivable, recorded investment 31 to 60 days past due 133chfc_FinancingReceivableRecordedInvestmentThirtyOneToSixtyDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
0chfc_FinancingReceivableRecordedInvestmentThirtyOneToSixtyDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable, recorded investment 61 to 89 days past due 0chfc_FinancingReceivableRecordedInvestmentSixtyOneToEightyNineDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
0chfc_FinancingReceivableRecordedInvestmentSixtyOneToEightyNineDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable, recorded investment accruing loans past due 90 days or more 5,427us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
5,656us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable, recorded investment, Non-accrual loans 0us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
0us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable recorded investment, Total past due 5,560chfc_FinancingReceivableRecordedInvestmentPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
5,656chfc_FinancingReceivableRecordedInvestmentPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable, recorded investment, Current 93,423us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
77,958us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable, recorded investment, Total loans 98,983chfc_FinancingReceivableRecordedInvestmentCurrentAndPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
83,614chfc_FinancingReceivableRecordedInvestmentCurrentAndPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Acquired Portfolio [Member] | Real estate commercial [Member]    
Schedule representing the aging status of the recorded investment in loans by classes    
Financing receivable, recorded investment 31 to 60 days past due 2,014chfc_FinancingReceivableRecordedInvestmentThirtyOneToSixtyDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
0chfc_FinancingReceivableRecordedInvestmentThirtyOneToSixtyDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable, recorded investment 61 to 89 days past due 352chfc_FinancingReceivableRecordedInvestmentSixtyOneToEightyNineDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
133chfc_FinancingReceivableRecordedInvestmentSixtyOneToEightyNineDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable, recorded investment accruing loans past due 90 days or more 11,052us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
1,695us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable, recorded investment, Non-accrual loans 0us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
0us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable recorded investment, Total past due 13,418chfc_FinancingReceivableRecordedInvestmentPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
1,828chfc_FinancingReceivableRecordedInvestmentPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable, recorded investment, Current 339,804us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
145,643us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable, recorded investment, Total loans 353,222chfc_FinancingReceivableRecordedInvestmentCurrentAndPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
147,471chfc_FinancingReceivableRecordedInvestmentCurrentAndPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Acquired Portfolio [Member] | Real estate construction [Member]    
Schedule representing the aging status of the recorded investment in loans by classes    
Financing receivable, recorded investment 31 to 60 days past due 0chfc_FinancingReceivableRecordedInvestmentThirtyOneToSixtyDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
0chfc_FinancingReceivableRecordedInvestmentThirtyOneToSixtyDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable, recorded investment 61 to 89 days past due 0chfc_FinancingReceivableRecordedInvestmentSixtyOneToEightyNineDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
0chfc_FinancingReceivableRecordedInvestmentSixtyOneToEightyNineDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable, recorded investment accruing loans past due 90 days or more 0us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
0us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable, recorded investment, Non-accrual loans 0us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
0us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable recorded investment, Total past due 0chfc_FinancingReceivableRecordedInvestmentPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
0chfc_FinancingReceivableRecordedInvestmentPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable, recorded investment, Current 14,005us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
12,336us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable, recorded investment, Total loans 14,005chfc_FinancingReceivableRecordedInvestmentCurrentAndPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
12,336chfc_FinancingReceivableRecordedInvestmentCurrentAndPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Acquired Portfolio [Member] | Land development [Member]    
Schedule representing the aging status of the recorded investment in loans by classes    
Financing receivable, recorded investment 31 to 60 days past due 0chfc_FinancingReceivableRecordedInvestmentThirtyOneToSixtyDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
0chfc_FinancingReceivableRecordedInvestmentThirtyOneToSixtyDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable, recorded investment 61 to 89 days past due 0chfc_FinancingReceivableRecordedInvestmentSixtyOneToEightyNineDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
0chfc_FinancingReceivableRecordedInvestmentSixtyOneToEightyNineDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable, recorded investment accruing loans past due 90 days or more 1,653us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
2,332us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable, recorded investment, Non-accrual loans 0us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
0us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable recorded investment, Total past due 1,653chfc_FinancingReceivableRecordedInvestmentPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
2,332chfc_FinancingReceivableRecordedInvestmentPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable, recorded investment, Current 12,569us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
4,454us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable, recorded investment, Total loans 14,222chfc_FinancingReceivableRecordedInvestmentCurrentAndPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
6,786chfc_FinancingReceivableRecordedInvestmentCurrentAndPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Acquired Portfolio [Member] | Real estate residential [Member]    
Schedule representing the aging status of the recorded investment in loans by classes    
Financing receivable, recorded investment 31 to 60 days past due 156chfc_FinancingReceivableRecordedInvestmentThirtyOneToSixtyDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
0chfc_FinancingReceivableRecordedInvestmentThirtyOneToSixtyDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable, recorded investment 61 to 89 days past due 0chfc_FinancingReceivableRecordedInvestmentSixtyOneToEightyNineDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
0chfc_FinancingReceivableRecordedInvestmentSixtyOneToEightyNineDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable, recorded investment accruing loans past due 90 days or more 18us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
61us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable, recorded investment, Non-accrual loans 0us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
0us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable recorded investment, Total past due 174chfc_FinancingReceivableRecordedInvestmentPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
61chfc_FinancingReceivableRecordedInvestmentPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable, recorded investment, Current 112,215us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
11,481us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable, recorded investment, Total loans 112,389chfc_FinancingReceivableRecordedInvestmentCurrentAndPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
11,542chfc_FinancingReceivableRecordedInvestmentCurrentAndPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Acquired Portfolio [Member] | Consumer installment [Member]    
Schedule representing the aging status of the recorded investment in loans by classes    
Financing receivable, recorded investment 31 to 60 days past due 55chfc_FinancingReceivableRecordedInvestmentThirtyOneToSixtyDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
3chfc_FinancingReceivableRecordedInvestmentThirtyOneToSixtyDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable, recorded investment 61 to 89 days past due 3chfc_FinancingReceivableRecordedInvestmentSixtyOneToEightyNineDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
51chfc_FinancingReceivableRecordedInvestmentSixtyOneToEightyNineDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable, recorded investment accruing loans past due 90 days or more 454us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
0us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable, recorded investment, Non-accrual loans 0us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
0us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable recorded investment, Total past due 512chfc_FinancingReceivableRecordedInvestmentPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
54chfc_FinancingReceivableRecordedInvestmentPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable, recorded investment, Current 9,680us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
1,669us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable, recorded investment, Total loans 10,192chfc_FinancingReceivableRecordedInvestmentCurrentAndPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
1,723chfc_FinancingReceivableRecordedInvestmentCurrentAndPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Acquired Portfolio [Member] | Home equity [Member]    
Schedule representing the aging status of the recorded investment in loans by classes    
Financing receivable, recorded investment 31 to 60 days past due 636chfc_FinancingReceivableRecordedInvestmentThirtyOneToSixtyDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
394chfc_FinancingReceivableRecordedInvestmentThirtyOneToSixtyDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable, recorded investment 61 to 89 days past due 106chfc_FinancingReceivableRecordedInvestmentSixtyOneToEightyNineDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
0chfc_FinancingReceivableRecordedInvestmentSixtyOneToEightyNineDaysPastDue
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable, recorded investment accruing loans past due 90 days or more 1,288us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
43us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable, recorded investment, Non-accrual loans 0us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
0us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable recorded investment, Total past due 2,030chfc_FinancingReceivableRecordedInvestmentPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
437chfc_FinancingReceivableRecordedInvestmentPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable, recorded investment, Current 93,120us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
30,788us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
Financing receivable, recorded investment, Total loans $ 95,150chfc_FinancingReceivableRecordedInvestmentCurrentAndPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember
$ 31,225chfc_FinancingReceivableRecordedInvestmentCurrentAndPastDueIncludingNonaccrualLoans
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_AcquiredPortfolioSegmentMember