XML 12 R39.htm IDEA: XBRL DOCUMENT v2.4.1.9
Allowance for Losses on Loans - Impaired Loans Based on Loan Types (Details) (USD $)
In Thousands, unless otherwise specified
3 Months Ended 12 Months Ended
Dec. 31, 2014
Sep. 30, 2014
Financing Receivable, Impaired [Line Items]    
Recorded Investment $ 412,604us-gaap_ImpairedFinancingReceivableRecordedInvestment $ 435,185us-gaap_ImpairedFinancingReceivableRecordedInvestment
Unpaid Principal Balance 443,875us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance 470,190us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
Related Allowance 9,964us-gaap_ImpairedFinancingReceivableRelatedAllowance 10,587us-gaap_ImpairedFinancingReceivableRelatedAllowance
Average Recorded Investment 409,125us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment 403,138us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
Amount of related allowance included in specific reserves   60us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1
Amount of related allowance included in general reserves   10,527us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment
Financing Receivable, Impairment, No Related Allowance [Member]    
Financing Receivable, Impaired [Line Items]    
Recorded Investment 62,657us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
46,680us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
Unpaid Principal Balance 85,523us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
73,123us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
Related Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
Average Recorded Investment 57,876us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
37,474us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
Financing Receivable, Impairment, Allowance Recorded [Member]    
Financing Receivable, Impaired [Line Items]    
Recorded Investment 349,947us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
388,505us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
Unpaid Principal Balance 358,352us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
397,067us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
Related Allowance 9,964us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
10,587us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
Average Recorded Investment 351,249us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
365,664us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
Single-Family Residential [Member]    
Financing Receivable, Impaired [Line Items]    
Recorded Investment 328,470us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialPortfolioSegmentMember
346,364us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialPortfolioSegmentMember
Unpaid Principal Balance 335,868us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialPortfolioSegmentMember
354,497us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialPortfolioSegmentMember
Related Allowance 9,964us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialPortfolioSegmentMember
10,527us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialPortfolioSegmentMember
Average Recorded Investment 325,610us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialPortfolioSegmentMember
333,191us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialPortfolioSegmentMember
Single-Family Residential [Member] | Financing Receivable, Impairment, No Related Allowance [Member]    
Financing Receivable, Impaired [Line Items]    
Recorded Investment 24,441us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialPortfolioSegmentMember
24,044us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialPortfolioSegmentMember
Unpaid Principal Balance 26,661us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialPortfolioSegmentMember
26,628us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialPortfolioSegmentMember
Related Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialPortfolioSegmentMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialPortfolioSegmentMember
Average Recorded Investment 21,251us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialPortfolioSegmentMember
16,843us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialPortfolioSegmentMember
Single-Family Residential [Member] | Financing Receivable, Impairment, Allowance Recorded [Member]    
Financing Receivable, Impaired [Line Items]    
Recorded Investment 304,029us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialPortfolioSegmentMember
322,320us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialPortfolioSegmentMember
Unpaid Principal Balance 309,207us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialPortfolioSegmentMember
327,869us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialPortfolioSegmentMember
Related Allowance 9,964us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialPortfolioSegmentMember
10,527us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialPortfolioSegmentMember
Average Recorded Investment 304,359us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialPortfolioSegmentMember
316,348us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialPortfolioSegmentMember
Construction - Speculative [Member]    
Financing Receivable, Impaired [Line Items]    
Recorded Investment 7,323us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_ConstructionSpeculativeMember
9,159us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_ConstructionSpeculativeMember
Unpaid Principal Balance 8,383us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_ConstructionSpeculativeMember
10,159us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_ConstructionSpeculativeMember
Related Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_ConstructionSpeculativeMember
60us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_ConstructionSpeculativeMember
Average Recorded Investment 7,546us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_ConstructionSpeculativeMember
9,336us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_ConstructionSpeculativeMember
Construction - Speculative [Member] | Financing Receivable, Impairment, No Related Allowance [Member]    
Financing Receivable, Impaired [Line Items]    
Recorded Investment 1,006us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_ConstructionSpeculativeMember
1,603us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_ConstructionSpeculativeMember
Unpaid Principal Balance 1,201us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_ConstructionSpeculativeMember
2,173us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_ConstructionSpeculativeMember
Related Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_ConstructionSpeculativeMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_ConstructionSpeculativeMember
Average Recorded Investment 1,040us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_ConstructionSpeculativeMember
1,804us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_ConstructionSpeculativeMember
Construction - Speculative [Member] | Financing Receivable, Impairment, Allowance Recorded [Member]    
Financing Receivable, Impaired [Line Items]    
Recorded Investment 6,317us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_ConstructionSpeculativeMember
7,556us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_ConstructionSpeculativeMember
Unpaid Principal Balance 7,182us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_ConstructionSpeculativeMember
7,986us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_ConstructionSpeculativeMember
Related Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_ConstructionSpeculativeMember
60us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_ConstructionSpeculativeMember
Average Recorded Investment 6,506us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_ConstructionSpeculativeMember
7,532us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_ConstructionSpeculativeMember
Land - Acquisition & Development [Member]    
Financing Receivable, Impaired [Line Items]    
Recorded Investment 5,028us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandAcquisitionAndDevelopmentMember
5,533us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandAcquisitionAndDevelopmentMember
Unpaid Principal Balance 7,341us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandAcquisitionAndDevelopmentMember
7,961us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandAcquisitionAndDevelopmentMember
Related Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandAcquisitionAndDevelopmentMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandAcquisitionAndDevelopmentMember
Average Recorded Investment 5,280us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandAcquisitionAndDevelopmentMember
5,152us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandAcquisitionAndDevelopmentMember
Land - Acquisition & Development [Member] | Financing Receivable, Impairment, No Related Allowance [Member]    
Financing Receivable, Impaired [Line Items]    
Recorded Investment 790us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandAcquisitionAndDevelopmentMember
837us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandAcquisitionAndDevelopmentMember
Unpaid Principal Balance 2,163us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandAcquisitionAndDevelopmentMember
2,325us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandAcquisitionAndDevelopmentMember
Related Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandAcquisitionAndDevelopmentMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandAcquisitionAndDevelopmentMember
Average Recorded Investment 813us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandAcquisitionAndDevelopmentMember
1,038us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandAcquisitionAndDevelopmentMember
Land - Acquisition & Development [Member] | Financing Receivable, Impairment, Allowance Recorded [Member]    
Financing Receivable, Impaired [Line Items]    
Recorded Investment 4,238us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandAcquisitionAndDevelopmentMember
4,696us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandAcquisitionAndDevelopmentMember
Unpaid Principal Balance 5,178us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandAcquisitionAndDevelopmentMember
5,636us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandAcquisitionAndDevelopmentMember
Related Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandAcquisitionAndDevelopmentMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandAcquisitionAndDevelopmentMember
Average Recorded Investment 4,467us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandAcquisitionAndDevelopmentMember
4,114us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandAcquisitionAndDevelopmentMember
Land - Consumer Lot Loans [Member]    
Financing Receivable, Impaired [Line Items]    
Recorded Investment 13,920us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandConsumerLotLoansMember
13,976us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandConsumerLotLoansMember
Unpaid Principal Balance 14,401us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandConsumerLotLoansMember
14,457us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandConsumerLotLoansMember
Related Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandConsumerLotLoansMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandConsumerLotLoansMember
Average Recorded Investment 13,714us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandConsumerLotLoansMember
13,571us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandConsumerLotLoansMember
Land - Consumer Lot Loans [Member] | Financing Receivable, Impairment, No Related Allowance [Member]    
Financing Receivable, Impaired [Line Items]    
Recorded Investment 1,689us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandConsumerLotLoansMember
974us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandConsumerLotLoansMember
Unpaid Principal Balance 1,787us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandConsumerLotLoansMember
1,072us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandConsumerLotLoansMember
Related Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandConsumerLotLoansMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandConsumerLotLoansMember
Average Recorded Investment 1,268us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandConsumerLotLoansMember
713us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandConsumerLotLoansMember
Land - Consumer Lot Loans [Member] | Financing Receivable, Impairment, Allowance Recorded [Member]    
Financing Receivable, Impaired [Line Items]    
Recorded Investment 12,231us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandConsumerLotLoansMember
13,002us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandConsumerLotLoansMember
Unpaid Principal Balance 12,614us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandConsumerLotLoansMember
13,385us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandConsumerLotLoansMember
Related Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandConsumerLotLoansMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandConsumerLotLoansMember
Average Recorded Investment 12,446us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandConsumerLotLoansMember
12,858us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_LandConsumerLotLoansMember
Multi-Family [Member]    
Financing Receivable, Impaired [Line Items]    
Recorded Investment 4,747us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_MultiFamilyHousingPortfolioSegmentMember
6,354us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_MultiFamilyHousingPortfolioSegmentMember
Unpaid Principal Balance 4,747us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_MultiFamilyHousingPortfolioSegmentMember
6,574us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_MultiFamilyHousingPortfolioSegmentMember
Related Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_MultiFamilyHousingPortfolioSegmentMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_MultiFamilyHousingPortfolioSegmentMember
Average Recorded Investment 4,896us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_MultiFamilyHousingPortfolioSegmentMember
5,284us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_MultiFamilyHousingPortfolioSegmentMember
Multi-Family [Member] | Financing Receivable, Impairment, No Related Allowance [Member]    
Financing Receivable, Impaired [Line Items]    
Recorded Investment 1,255us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_MultiFamilyHousingPortfolioSegmentMember
1,111us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_MultiFamilyHousingPortfolioSegmentMember
Unpaid Principal Balance 1,255us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_MultiFamilyHousingPortfolioSegmentMember
1,111us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_MultiFamilyHousingPortfolioSegmentMember
Related Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_MultiFamilyHousingPortfolioSegmentMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_MultiFamilyHousingPortfolioSegmentMember
Average Recorded Investment 1,068us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_MultiFamilyHousingPortfolioSegmentMember
327us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_MultiFamilyHousingPortfolioSegmentMember
Multi-Family [Member] | Financing Receivable, Impairment, Allowance Recorded [Member]    
Financing Receivable, Impaired [Line Items]    
Recorded Investment 3,492us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_MultiFamilyHousingPortfolioSegmentMember
5,243us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_MultiFamilyHousingPortfolioSegmentMember
Unpaid Principal Balance 3,492us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_MultiFamilyHousingPortfolioSegmentMember
5,463us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_MultiFamilyHousingPortfolioSegmentMember
Related Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_MultiFamilyHousingPortfolioSegmentMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_MultiFamilyHousingPortfolioSegmentMember
Average Recorded Investment 3,828us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_MultiFamilyHousingPortfolioSegmentMember
4,957us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_MultiFamilyHousingPortfolioSegmentMember
Commercial Real Estate [Member]    
Financing Receivable, Impaired [Line Items]    
Recorded Investment 45,261us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstatePortfolioSegmentMember
47,393us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstatePortfolioSegmentMember
Unpaid Principal Balance 52,248us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstatePortfolioSegmentMember
55,113us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstatePortfolioSegmentMember
Related Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstatePortfolioSegmentMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstatePortfolioSegmentMember
Average Recorded Investment 44,974us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstatePortfolioSegmentMember
30,292us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstatePortfolioSegmentMember
Commercial Real Estate [Member] | Financing Receivable, Impairment, No Related Allowance [Member]    
Financing Receivable, Impaired [Line Items]    
Recorded Investment 27,233us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstatePortfolioSegmentMember
13,234us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstatePortfolioSegmentMember
Unpaid Principal Balance 33,352us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstatePortfolioSegmentMember
20,085us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstatePortfolioSegmentMember
Related Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstatePortfolioSegmentMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstatePortfolioSegmentMember
Average Recorded Investment 26,902us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstatePortfolioSegmentMember
11,720us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstatePortfolioSegmentMember
Commercial Real Estate [Member] | Financing Receivable, Impairment, Allowance Recorded [Member]    
Financing Receivable, Impaired [Line Items]    
Recorded Investment 18,028us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstatePortfolioSegmentMember
34,159us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstatePortfolioSegmentMember
Unpaid Principal Balance 18,896us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstatePortfolioSegmentMember
35,028us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstatePortfolioSegmentMember
Related Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstatePortfolioSegmentMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstatePortfolioSegmentMember
Average Recorded Investment 18,072us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstatePortfolioSegmentMember
18,572us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstatePortfolioSegmentMember
Commercial & Industrial [Member]    
Financing Receivable, Impaired [Line Items]    
Recorded Investment 4,429us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_CommercialAndIndustrialLoansMember
3,195us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_CommercialAndIndustrialLoansMember
Unpaid Principal Balance 16,320us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_CommercialAndIndustrialLoansMember
17,166us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_CommercialAndIndustrialLoansMember
Related Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_CommercialAndIndustrialLoansMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_CommercialAndIndustrialLoansMember
Average Recorded Investment 3,812us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_CommercialAndIndustrialLoansMember
3,900us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_CommercialAndIndustrialLoansMember
Commercial & Industrial [Member] | Financing Receivable, Impairment, No Related Allowance [Member]    
Financing Receivable, Impaired [Line Items]    
Recorded Investment 4,429us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_CommercialAndIndustrialLoansMember
3,195us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_CommercialAndIndustrialLoansMember
Unpaid Principal Balance 16,320us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_CommercialAndIndustrialLoansMember
17,166us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_CommercialAndIndustrialLoansMember
Related Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_CommercialAndIndustrialLoansMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_CommercialAndIndustrialLoansMember
Average Recorded Investment 3,812us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_CommercialAndIndustrialLoansMember
3,900us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_CommercialAndIndustrialLoansMember
HELOC [Member]    
Financing Receivable, Impaired [Line Items]    
Recorded Investment 2,649us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_HomeEquityLineOfCreditMember
2,505us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_HomeEquityLineOfCreditMember
Unpaid Principal Balance 3,434us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_HomeEquityLineOfCreditMember
3,216us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_HomeEquityLineOfCreditMember
Related Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_HomeEquityLineOfCreditMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_HomeEquityLineOfCreditMember
Average Recorded Investment 2,561us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_HomeEquityLineOfCreditMember
1,816us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_HomeEquityLineOfCreditMember
HELOC [Member] | Financing Receivable, Impairment, No Related Allowance [Member]    
Financing Receivable, Impaired [Line Items]    
Recorded Investment 1,163us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_HomeEquityLineOfCreditMember
1,019us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_HomeEquityLineOfCreditMember
Unpaid Principal Balance 1,948us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_HomeEquityLineOfCreditMember
1,730us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_HomeEquityLineOfCreditMember
Related Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_HomeEquityLineOfCreditMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_HomeEquityLineOfCreditMember
Average Recorded Investment 1,075us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_HomeEquityLineOfCreditMember
612us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_HomeEquityLineOfCreditMember
HELOC [Member] | Financing Receivable, Impairment, Allowance Recorded [Member]    
Financing Receivable, Impaired [Line Items]    
Recorded Investment 1,486us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_HomeEquityLineOfCreditMember
1,486us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_HomeEquityLineOfCreditMember
Unpaid Principal Balance 1,486us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_HomeEquityLineOfCreditMember
1,486us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_HomeEquityLineOfCreditMember
Related Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_HomeEquityLineOfCreditMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_HomeEquityLineOfCreditMember
Average Recorded Investment 1,486us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_HomeEquityLineOfCreditMember
1,204us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= wfsl_HomeEquityLineOfCreditMember
Consumer [Member]    
Financing Receivable, Impaired [Line Items]    
Recorded Investment 777us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
706us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
Unpaid Principal Balance 1,133us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
1,047us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
Related Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
Average Recorded Investment 732us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
596us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
Consumer [Member] | Financing Receivable, Impairment, No Related Allowance [Member]    
Financing Receivable, Impaired [Line Items]    
Recorded Investment 651us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
663us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
Unpaid Principal Balance 836us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
833us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
Related Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
Average Recorded Investment 647us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
517us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
Consumer [Member] | Financing Receivable, Impairment, Allowance Recorded [Member]    
Financing Receivable, Impaired [Line Items]    
Recorded Investment 126us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
43us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
Unpaid Principal Balance 297us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
214us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
Related Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
Average Recorded Investment $ 85us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
$ 79us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember