XML 44 R77.htm IDEA: XBRL DOCUMENT v2.4.1.9
(Summary of nonperforming loans) (Details) (USD $)
In Thousands, unless otherwise specified
Dec. 31, 2014
Dec. 31, 2013
Summary of nonperforming loans    
Total nonperforming TDRs $ 101,322us-gaap_FinancingReceivableModificationsRecordedInvestment $ 94,943us-gaap_FinancingReceivableModificationsRecordedInvestment
Total loans 5,688,230us-gaap_LoansAndLeasesReceivableGrossCarryingAmount 4,647,621us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
Originated Portfolio Segment [Member]    
Summary of nonperforming loans    
Total nonaccrual loans 50,644us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
61,897us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Total accruing loans contractually past due 90 days or more as to interest or principal payments 2,073us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
1,997us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
Commercial Loan Portfolio [Member]    
Summary of nonperforming loans    
Total nonperforming TDRs 77,047us-gaap_FinancingReceivableModificationsRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
72,214us-gaap_FinancingReceivableModificationsRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
Total loans 3,084,024us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
2,518,826us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
Consumer Loan Portfolio [Member]    
Summary of nonperforming loans    
Total nonperforming TDRs 24,275us-gaap_FinancingReceivableModificationsRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
22,729us-gaap_FinancingReceivableModificationsRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
Total loans 2,604,206us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
2,128,795us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
Commercial [Member] | Originated Portfolio Segment [Member]    
Summary of nonperforming loans    
Total nonaccrual 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
Total accruing loans contractually past due 90 days or more as to interest or principal payments 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
Real estate commercial [Member] | Originated Portfolio Segment [Member]    
Summary of nonperforming loans    
Total nonaccrual 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
Total accruing loans contractually past due 90 days or more as to interest or principal payments 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
Real Estate Construction Loans [Member] | Originated Portfolio Segment [Member]    
Summary of nonperforming loans    
Total nonaccrual 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
Total accruing loans contractually past due 90 days or more as to interest or principal payments 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
Land Development Loans [Member] | Originated Portfolio Segment [Member]    
Summary of nonperforming loans    
Total nonaccrual 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
Total accruing loans contractually past due 90 days or more as to interest or principal payments 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
Real estate residential [Member] | Originated Portfolio Segment [Member]    
Summary of nonperforming loans    
Total nonaccrual 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
Total accruing loans contractually past due 90 days or more as to interest or principal payments 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
Consumer Installment Loans [Member] | Originated Portfolio Segment [Member]    
Summary of nonperforming loans    
Total nonaccrual 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
Total accruing loans contractually past due 90 days or more as to interest or principal payments 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
Home Equity Loans [Member] | Originated Portfolio Segment [Member]    
Summary of nonperforming loans    
Total nonaccrual 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
Total accruing loans contractually past due 90 days or more as to interest or principal payments 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
Nonperforming [Member]    
Summary of nonperforming loans    
Total nonaccrual loans 50,644us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
61,897us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Total accruing loans contractually past due 90 days or more as to interest or principal payments 2,073us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
1,997us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Total nonperforming TDRs 18,467us-gaap_FinancingReceivableModificationsRecordedInvestment
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
18,090us-gaap_FinancingReceivableModificationsRecordedInvestment
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Total loans 71,184us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
81,984us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Nonperforming [Member] | Commercial Loan Portfolio [Member]    
Summary of nonperforming loans    
Total nonperforming TDRs 15,271us-gaap_FinancingReceivableModificationsRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
13,414us-gaap_FinancingReceivableModificationsRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Nonperforming [Member] | Consumer Loan Portfolio [Member]    
Summary of nonperforming loans    
Total nonperforming TDRs 3,196us-gaap_FinancingReceivableModificationsRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
4,676us-gaap_FinancingReceivableModificationsRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Nonperforming [Member] | Commercial [Member] | Originated Portfolio Segment [Member]    
Summary of nonperforming loans    
Total nonaccrual loans 16,418us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
18,374us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Total accruing loans contractually past due 90 days or more as to interest or principal payments 170us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
536us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_CommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Nonperforming [Member] | Real estate commercial [Member] | Originated Portfolio Segment [Member]    
Summary of nonperforming loans    
Total nonaccrual loans 24,966us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
28,598us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Total accruing loans contractually past due 90 days or more as to interest or principal payments 0us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
190us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateCommercialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Nonperforming [Member] | Real Estate Construction Loans [Member] | Originated Portfolio Segment [Member]    
Summary of nonperforming loans    
Total nonaccrual loans 162us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
371us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateConstructionLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Nonperforming [Member] | Land Development Loans [Member] | Originated Portfolio Segment [Member]    
Summary of nonperforming loans    
Total nonaccrual loans 225us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
2,309us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_LandDevelopmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Nonperforming [Member] | Real estate residential [Member] | Originated Portfolio Segment [Member]    
Summary of nonperforming loans    
Total nonaccrual loans 6,706us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
8,921us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Total accruing loans contractually past due 90 days or more as to interest or principal payments 557us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
537us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_RealEstateResidentialLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Nonperforming [Member] | Consumer Installment Loans [Member] | Originated Portfolio Segment [Member]    
Summary of nonperforming loans    
Total nonaccrual loans 500us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
676us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_ConsumerInstallmentLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Nonperforming [Member] | Home Equity Loans [Member] | Originated Portfolio Segment [Member]    
Summary of nonperforming loans    
Total nonaccrual loans 1,667us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
2,648us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Total accruing loans contractually past due 90 days or more as to interest or principal payments $ 1,346us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
$ 734us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= chfc_HomeEquityLoansMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= chfc_OriginatedPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember