XML 98 R91.htm IDEA: XBRL DOCUMENT v2.4.1.9
Allowance for Loan Losses (Recorded Investment Disaggregated on Basis of Impairment) (Details) (Loans Receivable, USD $)
In Thousands, unless otherwise specified
Dec. 31, 2014
Dec. 31, 2013
Schedule of loan receivables on the basis of impairment method    
Total gross loans receivable $ 2,252,014us-gaap_LoansAndLeasesReceivableGrossCarryingAmount $ 1,234,590us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
Noncovered Loans
   
Schedule of loan receivables on the basis of impairment method    
Individually evaluated for impairment 26,156us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_NoncoveredloansMember
29,869us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_NoncoveredloansMember
Collectively evaluated for impairment 2,037,749us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_NoncoveredloansMember
1,104,950us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_NoncoveredloansMember
PCI loans collectively evaluated for impairment 61,909us-gaap_FinancingReceivableAcquiredWithDeterioratedCreditQuality
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_NoncoveredloansMember
 
Covered Loans
   
Schedule of loan receivables on the basis of impairment method    
Individually evaluated for impairment 4,075us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_CoveredloansMember
4,218us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_CoveredloansMember
Collectively evaluated for impairment 64,763us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_CoveredloansMember
20,660us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_CoveredloansMember
PCI loans collectively evaluated for impairment 57,362us-gaap_FinancingReceivableAcquiredWithDeterioratedCreditQuality
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_CoveredloansMember
 
Purchased Covered Loans Receivable [Member]
   
Schedule of loan receivables on the basis of impairment method    
PCI loans collectively evaluated for impairment   36,017us-gaap_FinancingReceivableAcquiredWithDeterioratedCreditQuality
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_PurchasedCoveredLoansReceivableMember
Purchased Non Covered Loans Receivable [Member]
   
Schedule of loan receivables on the basis of impairment method    
PCI loans collectively evaluated for impairment   38,876us-gaap_FinancingReceivableAcquiredWithDeterioratedCreditQuality
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_PurchasedNonCoveredLoansReceivableMember
Commercial and Industrial
   
Schedule of loan receivables on the basis of impairment method    
Total gross loans receivable 570,453us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_CommercialAndIndustrialMember
351,230us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_CommercialAndIndustrialMember
Commercial and Industrial | Noncovered Loans
   
Schedule of loan receivables on the basis of impairment method    
Individually evaluated for impairment 9,040us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_NoncoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_CommercialAndIndustrialMember
10,990us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_NoncoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_CommercialAndIndustrialMember
Collectively evaluated for impairment 524,263us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_NoncoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_CommercialAndIndustrialMember
308,771us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_NoncoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_CommercialAndIndustrialMember
PCI loans collectively evaluated for impairment 18,040us-gaap_FinancingReceivableAcquiredWithDeterioratedCreditQuality
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_NoncoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_CommercialAndIndustrialMember
 
Commercial and Industrial | Covered Loans
   
Schedule of loan receivables on the basis of impairment method    
Individually evaluated for impairment 2,334us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_CoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_CommercialAndIndustrialMember
3,761us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_CoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_CommercialAndIndustrialMember
Collectively evaluated for impairment 9,642us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_CoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_CommercialAndIndustrialMember
2,249us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_CoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_CommercialAndIndustrialMember
PCI loans collectively evaluated for impairment 7,134us-gaap_FinancingReceivableAcquiredWithDeterioratedCreditQuality
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_CoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_CommercialAndIndustrialMember
 
Commercial and Industrial | Purchased Covered Loans Receivable [Member]
   
Schedule of loan receivables on the basis of impairment method    
PCI loans collectively evaluated for impairment   16,779us-gaap_FinancingReceivableAcquiredWithDeterioratedCreditQuality
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_PurchasedCoveredLoansReceivableMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_CommercialAndIndustrialMember
Commercial and Industrial | Purchased Non Covered Loans Receivable [Member]
   
Schedule of loan receivables on the basis of impairment method    
PCI loans collectively evaluated for impairment   8,680us-gaap_FinancingReceivableAcquiredWithDeterioratedCreditQuality
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_PurchasedNonCoveredLoansReceivableMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_CommercialAndIndustrialMember
Owner-occupied Commercial Real Estate
   
Schedule of loan receivables on the basis of impairment method    
Total gross loans receivable 594,986us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_OwnerOccupiedCommercialRealEstateMember
305,675us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_OwnerOccupiedCommercialRealEstateMember
Owner-occupied Commercial Real Estate | Noncovered Loans
   
Schedule of loan receivables on the basis of impairment method    
Individually evaluated for impairment 2,781us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_NoncoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_OwnerOccupiedCommercialRealEstateMember
2,998us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_NoncoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_OwnerOccupiedCommercialRealEstateMember
Collectively evaluated for impairment 516,753us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_NoncoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_OwnerOccupiedCommercialRealEstateMember
273,192us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_NoncoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_OwnerOccupiedCommercialRealEstateMember
PCI loans collectively evaluated for impairment 16,208us-gaap_FinancingReceivableAcquiredWithDeterioratedCreditQuality
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_NoncoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_OwnerOccupiedCommercialRealEstateMember
 
Owner-occupied Commercial Real Estate | Covered Loans
   
Schedule of loan receivables on the basis of impairment method    
Individually evaluated for impairment 1,132us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_CoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_OwnerOccupiedCommercialRealEstateMember
0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_CoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_OwnerOccupiedCommercialRealEstateMember
Collectively evaluated for impairment 37,446us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_CoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_OwnerOccupiedCommercialRealEstateMember
13,443us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_CoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_OwnerOccupiedCommercialRealEstateMember
PCI loans collectively evaluated for impairment 20,666us-gaap_FinancingReceivableAcquiredWithDeterioratedCreditQuality
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_CoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_OwnerOccupiedCommercialRealEstateMember
 
Owner-occupied Commercial Real Estate | Purchased Covered Loans Receivable [Member]
   
Schedule of loan receivables on the basis of impairment method    
PCI loans collectively evaluated for impairment   5,119us-gaap_FinancingReceivableAcquiredWithDeterioratedCreditQuality
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_PurchasedCoveredLoansReceivableMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_OwnerOccupiedCommercialRealEstateMember
Owner-occupied Commercial Real Estate | Purchased Non Covered Loans Receivable [Member]
   
Schedule of loan receivables on the basis of impairment method    
PCI loans collectively evaluated for impairment   10,923us-gaap_FinancingReceivableAcquiredWithDeterioratedCreditQuality
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_PurchasedNonCoveredLoansReceivableMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_OwnerOccupiedCommercialRealEstateMember
Non-owner Occupied Commercial Real Estate
   
Schedule of loan receivables on the basis of impairment method    
Total gross loans receivable 643,636us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_NonOwnerOccupiedCommercialRealEstateMember
414,604us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_NonOwnerOccupiedCommercialRealEstateMember
Non-owner Occupied Commercial Real Estate | Noncovered Loans
   
Schedule of loan receivables on the basis of impairment method    
Individually evaluated for impairment 7,305us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_NoncoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_NonOwnerOccupiedCommercialRealEstateMember
7,423us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_NoncoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_NonOwnerOccupiedCommercialRealEstateMember
Collectively evaluated for impairment 598,267us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_NoncoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_NonOwnerOccupiedCommercialRealEstateMember
385,771us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_NoncoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_NonOwnerOccupiedCommercialRealEstateMember
PCI loans collectively evaluated for impairment 11,185us-gaap_FinancingReceivableAcquiredWithDeterioratedCreditQuality
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_NoncoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_NonOwnerOccupiedCommercialRealEstateMember
 
Non-owner Occupied Commercial Real Estate | Covered Loans
   
Schedule of loan receivables on the basis of impairment method    
Individually evaluated for impairment 424us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_CoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_NonOwnerOccupiedCommercialRealEstateMember
0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_CoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_NonOwnerOccupiedCommercialRealEstateMember
Collectively evaluated for impairment 6,198us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_CoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_NonOwnerOccupiedCommercialRealEstateMember
2,438us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_CoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_NonOwnerOccupiedCommercialRealEstateMember
PCI loans collectively evaluated for impairment 20,257us-gaap_FinancingReceivableAcquiredWithDeterioratedCreditQuality
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_CoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_NonOwnerOccupiedCommercialRealEstateMember
 
Non-owner Occupied Commercial Real Estate | Purchased Covered Loans Receivable [Member]
   
Schedule of loan receivables on the basis of impairment method    
PCI loans collectively evaluated for impairment   6,785us-gaap_FinancingReceivableAcquiredWithDeterioratedCreditQuality
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_PurchasedCoveredLoansReceivableMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_NonOwnerOccupiedCommercialRealEstateMember
Non-owner Occupied Commercial Real Estate | Purchased Non Covered Loans Receivable [Member]
   
Schedule of loan receivables on the basis of impairment method    
PCI loans collectively evaluated for impairment   12,187us-gaap_FinancingReceivableAcquiredWithDeterioratedCreditQuality
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_PurchasedNonCoveredLoansReceivableMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_NonOwnerOccupiedCommercialRealEstateMember
One-to-four Family Residential
   
Schedule of loan receivables on the basis of impairment method    
Total gross loans receivable 69,530us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_OneToFourFamilyResidentialMember
47,859us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_OneToFourFamilyResidentialMember
One-to-four Family Residential | Noncovered Loans
   
Schedule of loan receivables on the basis of impairment method    
Individually evaluated for impairment 245us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_NoncoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_OneToFourFamilyResidentialMember
592us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_NoncoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_OneToFourFamilyResidentialMember
Collectively evaluated for impairment 61,060us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_NoncoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_OneToFourFamilyResidentialMember
38,722us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_NoncoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_OneToFourFamilyResidentialMember
PCI loans collectively evaluated for impairment 2,235us-gaap_FinancingReceivableAcquiredWithDeterioratedCreditQuality
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_NoncoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_OneToFourFamilyResidentialMember
 
One-to-four Family Residential | Covered Loans
   
Schedule of loan receivables on the basis of impairment method    
Individually evaluated for impairment 0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_CoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_OneToFourFamilyResidentialMember
450us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_CoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_OneToFourFamilyResidentialMember
Collectively evaluated for impairment 2,512us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_CoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_OneToFourFamilyResidentialMember
797us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_CoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_OneToFourFamilyResidentialMember
PCI loans collectively evaluated for impairment 3,478us-gaap_FinancingReceivableAcquiredWithDeterioratedCreditQuality
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_CoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_OneToFourFamilyResidentialMember
 
One-to-four Family Residential | Purchased Covered Loans Receivable [Member]
   
Schedule of loan receivables on the basis of impairment method    
PCI loans collectively evaluated for impairment   3,768us-gaap_FinancingReceivableAcquiredWithDeterioratedCreditQuality
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_PurchasedCoveredLoansReceivableMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_OneToFourFamilyResidentialMember
One-to-four Family Residential | Purchased Non Covered Loans Receivable [Member]
   
Schedule of loan receivables on the basis of impairment method    
PCI loans collectively evaluated for impairment   3,530us-gaap_FinancingReceivableAcquiredWithDeterioratedCreditQuality
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_PurchasedNonCoveredLoansReceivableMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_OneToFourFamilyResidentialMember
Real Estate Construction and Land Development: One-to-four Family Residential
   
Schedule of loan receivables on the basis of impairment method    
Total gross loans receivable 49,195us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_RealEstateConstructionAndLandDevelopmentOneToFourFamilyResidentialMember
21,280us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_RealEstateConstructionAndLandDevelopmentOneToFourFamilyResidentialMember
Real Estate Construction and Land Development: One-to-four Family Residential | Noncovered Loans
   
Schedule of loan receivables on the basis of impairment method    
Individually evaluated for impairment 4,524us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_NoncoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_RealEstateConstructionAndLandDevelopmentOneToFourFamilyResidentialMember
4,684us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_NoncoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_RealEstateConstructionAndLandDevelopmentOneToFourFamilyResidentialMember
Collectively evaluated for impairment 38,002us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_NoncoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_RealEstateConstructionAndLandDevelopmentOneToFourFamilyResidentialMember
15,008us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_NoncoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_RealEstateConstructionAndLandDevelopmentOneToFourFamilyResidentialMember
PCI loans collectively evaluated for impairment 4,223us-gaap_FinancingReceivableAcquiredWithDeterioratedCreditQuality
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_NoncoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_RealEstateConstructionAndLandDevelopmentOneToFourFamilyResidentialMember
 
Real Estate Construction and Land Development: One-to-four Family Residential | Covered Loans
   
Schedule of loan receivables on the basis of impairment method    
Individually evaluated for impairment 179us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_CoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_RealEstateConstructionAndLandDevelopmentOneToFourFamilyResidentialMember
0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_CoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_RealEstateConstructionAndLandDevelopmentOneToFourFamilyResidentialMember
Collectively evaluated for impairment 959us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_CoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_RealEstateConstructionAndLandDevelopmentOneToFourFamilyResidentialMember
0us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_CoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_RealEstateConstructionAndLandDevelopmentOneToFourFamilyResidentialMember
PCI loans collectively evaluated for impairment 1,308us-gaap_FinancingReceivableAcquiredWithDeterioratedCreditQuality
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_CoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_RealEstateConstructionAndLandDevelopmentOneToFourFamilyResidentialMember
 
Real Estate Construction and Land Development: One-to-four Family Residential | Purchased Covered Loans Receivable [Member]
   
Schedule of loan receivables on the basis of impairment method    
PCI loans collectively evaluated for impairment   32us-gaap_FinancingReceivableAcquiredWithDeterioratedCreditQuality
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_PurchasedCoveredLoansReceivableMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_RealEstateConstructionAndLandDevelopmentOneToFourFamilyResidentialMember
Real Estate Construction and Land Development: One-to-four Family Residential | Purchased Non Covered Loans Receivable [Member]
   
Schedule of loan receivables on the basis of impairment method    
PCI loans collectively evaluated for impairment   1,556us-gaap_FinancingReceivableAcquiredWithDeterioratedCreditQuality
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_PurchasedNonCoveredLoansReceivableMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_RealEstateConstructionAndLandDevelopmentOneToFourFamilyResidentialMember
Real Estate Construction and Land Development: Five or More Family Residential and Commercial Properties
   
Schedule of loan receivables on the basis of impairment method    
Total gross loans receivable 64,920us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_RealEstateConstructionAndLandDevelopmentFiveOrMoreFamilyResidentialAndCommercialPropertiesMember
48,655us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_RealEstateConstructionAndLandDevelopmentFiveOrMoreFamilyResidentialAndCommercialPropertiesMember
Real Estate Construction and Land Development: Five or More Family Residential and Commercial Properties | Noncovered Loans
   
Schedule of loan receivables on the basis of impairment method    
Individually evaluated for impairment 2,056us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_NoncoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_RealEstateConstructionAndLandDevelopmentFiveOrMoreFamilyResidentialAndCommercialPropertiesMember
2,404us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_NoncoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_RealEstateConstructionAndLandDevelopmentFiveOrMoreFamilyResidentialAndCommercialPropertiesMember
Collectively evaluated for impairment 56,341us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_NoncoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_RealEstateConstructionAndLandDevelopmentFiveOrMoreFamilyResidentialAndCommercialPropertiesMember
44,894us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_NoncoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_RealEstateConstructionAndLandDevelopmentFiveOrMoreFamilyResidentialAndCommercialPropertiesMember
PCI loans collectively evaluated for impairment 2,963us-gaap_FinancingReceivableAcquiredWithDeterioratedCreditQuality
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_NoncoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_RealEstateConstructionAndLandDevelopmentFiveOrMoreFamilyResidentialAndCommercialPropertiesMember
 
Real Estate Construction and Land Development: Five or More Family Residential and Commercial Properties | Covered Loans
   
Schedule of loan receivables on the basis of impairment method    
Individually evaluated for impairment 0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_CoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_RealEstateConstructionAndLandDevelopmentFiveOrMoreFamilyResidentialAndCommercialPropertiesMember
0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_CoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_RealEstateConstructionAndLandDevelopmentFiveOrMoreFamilyResidentialAndCommercialPropertiesMember
Collectively evaluated for impairment 1,758us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_CoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_RealEstateConstructionAndLandDevelopmentFiveOrMoreFamilyResidentialAndCommercialPropertiesMember
0us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_CoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_RealEstateConstructionAndLandDevelopmentFiveOrMoreFamilyResidentialAndCommercialPropertiesMember
PCI loans collectively evaluated for impairment 1,802us-gaap_FinancingReceivableAcquiredWithDeterioratedCreditQuality
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_CoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_RealEstateConstructionAndLandDevelopmentFiveOrMoreFamilyResidentialAndCommercialPropertiesMember
 
Real Estate Construction and Land Development: Five or More Family Residential and Commercial Properties | Purchased Covered Loans Receivable [Member]
   
Schedule of loan receivables on the basis of impairment method    
PCI loans collectively evaluated for impairment   1,357us-gaap_FinancingReceivableAcquiredWithDeterioratedCreditQuality
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_PurchasedCoveredLoansReceivableMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_RealEstateConstructionAndLandDevelopmentFiveOrMoreFamilyResidentialAndCommercialPropertiesMember
Real Estate Construction and Land Development: Five or More Family Residential and Commercial Properties | Purchased Non Covered Loans Receivable [Member]
   
Schedule of loan receivables on the basis of impairment method    
PCI loans collectively evaluated for impairment   0us-gaap_FinancingReceivableAcquiredWithDeterioratedCreditQuality
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_PurchasedNonCoveredLoansReceivableMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_RealEstateConstructionAndLandDevelopmentFiveOrMoreFamilyResidentialAndCommercialPropertiesMember
Consumer
   
Schedule of loan receivables on the basis of impairment method    
Total gross loans receivable 259,294us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_ConsumerMember
45,287us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_ConsumerMember
Consumer | Noncovered Loans
   
Schedule of loan receivables on the basis of impairment method    
Individually evaluated for impairment 205us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_NoncoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_ConsumerMember
778us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_NoncoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_ConsumerMember
Collectively evaluated for impairment 243,063us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_NoncoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_ConsumerMember
38,592us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_NoncoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_ConsumerMember
PCI loans collectively evaluated for impairment 7,055us-gaap_FinancingReceivableAcquiredWithDeterioratedCreditQuality
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_NoncoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_ConsumerMember
 
Consumer | Covered Loans
   
Schedule of loan receivables on the basis of impairment method    
Individually evaluated for impairment 6us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_CoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_ConsumerMember
7us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_CoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_ConsumerMember
Collectively evaluated for impairment 6,248us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_CoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_ConsumerMember
1,733us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_CoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_ConsumerMember
PCI loans collectively evaluated for impairment 2,717us-gaap_FinancingReceivableAcquiredWithDeterioratedCreditQuality
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_CoveredloansMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_ConsumerMember
 
Consumer | Purchased Covered Loans Receivable [Member]
   
Schedule of loan receivables on the basis of impairment method    
PCI loans collectively evaluated for impairment   2,177us-gaap_FinancingReceivableAcquiredWithDeterioratedCreditQuality
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_PurchasedCoveredLoansReceivableMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_ConsumerMember
Consumer | Purchased Non Covered Loans Receivable [Member]
   
Schedule of loan receivables on the basis of impairment method    
PCI loans collectively evaluated for impairment   $ 2,000us-gaap_FinancingReceivableAcquiredWithDeterioratedCreditQuality
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= us-gaap_LoansReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hfwa_PurchasedNonCoveredLoansReceivableMember
/ us-gaap_StatementBusinessSegmentsAxis
= hfwa_ConsumerMember