XML 11 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 | 6 Months Ended | 12 Months Ended
--- | --- | ---
Mar. 31, 2015 | Sep. 30, 2014
Financing Receivable, Impaired [Line Items] |  |
Recorded Investment | $ 385,651 us-gaap_ImpairedFinancingReceivableRecordedInvestment | $ 435,185 us-gaap_ImpairedFinancingReceivableRecordedInvestment
Unpaid Principal Balance | 413,940 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance | 470,190 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
Related Allowance | 8,597 us-gaap_ImpairedFinancingReceivableRelatedAllowance | 10,587 us-gaap_ImpairedFinancingReceivableRelatedAllowance
Average Recorded Investment | 377,636 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment | 403,138 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
Amount of related allowance included in specific reserves |  | 60 us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1
Amount of related allowance included in general reserves |  | 10,527 us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment
Financing Receivable, Impairment, No Related Allowance [Member] |  |
Financing Receivable, Impaired [Line Items] |  |
Recorded Investment | 45,560 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember | 46,680 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
Unpaid Principal Balance | 66,459 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember | 73,123 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
Related Allowance | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
Average Recorded Investment | 41,076 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember | 37,474 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
Financing Receivable, Impairment, Allowance Recorded [Member] |  |
Financing Receivable, Impaired [Line Items] |  |
Recorded Investment | 340,091 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember | 388,505 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
Unpaid Principal Balance | 347,481 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember | 397,067 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
Related Allowance | 8,597 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember | 10,587 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
Average Recorded Investment | 336,560 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember | 365,664 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
Single-Family Residential [Member] |  |
Financing Receivable, Impaired [Line Items] |  |
Recorded Investment | 314,115 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | 346,364 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember
Unpaid Principal Balance | 321,394 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | 354,497 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember
Related Allowance | 8,597 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | 10,527 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember
Average Recorded Investment | 310,630 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | 333,191 us-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 | 23,164 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | 24,044 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember
Unpaid Principal Balance | 25,986 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | 26,628 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember
Related Allowance | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember
Average Recorded Investment | 21,135 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | 16,843 us-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 | 290,951 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | 322,320 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember
Unpaid Principal Balance | 295,408 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | 327,869 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember
Related Allowance | 8,597 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | 10,527 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember
Average Recorded Investment | 289,495 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | 316,348 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember
Construction - Speculative [Member] |  |
Financing Receivable, Impaired [Line Items] |  |
Recorded Investment | 7,405 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionSpeculativeMember | 9,159 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionSpeculativeMember
Unpaid Principal Balance | 8,390 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionSpeculativeMember | 10,159 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionSpeculativeMember
Related Allowance | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionSpeculativeMember | 60 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionSpeculativeMember
Average Recorded Investment | 7,261 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionSpeculativeMember | 9,336 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionSpeculativeMember
Construction - Speculative [Member] | Financing Receivable, Impairment, No Related Allowance [Member] |  |
Financing Receivable, Impaired [Line Items] |  |
Recorded Investment | 997 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionSpeculativeMember | 1,603 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionSpeculativeMember
Unpaid Principal Balance | 1,192 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionSpeculativeMember | 2,173 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionSpeculativeMember
Related Allowance | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionSpeculativeMember | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionSpeculativeMember
Average Recorded Investment | 1,001 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionSpeculativeMember | 1,804 us-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,408 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionSpeculativeMember | 7,556 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionSpeculativeMember
Unpaid Principal Balance | 7,198 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionSpeculativeMember | 7,986 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionSpeculativeMember
Related Allowance | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionSpeculativeMember | 60 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionSpeculativeMember
Average Recorded Investment | 6,260 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionSpeculativeMember | 7,532 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionSpeculativeMember
Land - Acquisition & Development [Member] |  |
Financing Receivable, Impaired [Line Items] |  |
Recorded Investment | 4,864 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandAcquisitionAndDevelopmentMember | 5,533 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandAcquisitionAndDevelopmentMember
Unpaid Principal Balance | 6,348 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandAcquisitionAndDevelopmentMember | 7,961 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandAcquisitionAndDevelopmentMember
Related Allowance | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandAcquisitionAndDevelopmentMember | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandAcquisitionAndDevelopmentMember
Average Recorded Investment | 4,946 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandAcquisitionAndDevelopmentMember | 5,152 us-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 | 685 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandAcquisitionAndDevelopmentMember | 837 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandAcquisitionAndDevelopmentMember
Unpaid Principal Balance | 1,229 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandAcquisitionAndDevelopmentMember | 2,325 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandAcquisitionAndDevelopmentMember
Related Allowance | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandAcquisitionAndDevelopmentMember | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandAcquisitionAndDevelopmentMember
Average Recorded Investment | 738 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandAcquisitionAndDevelopmentMember | 1,038 us-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,179 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandAcquisitionAndDevelopmentMember | 4,696 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandAcquisitionAndDevelopmentMember
Unpaid Principal Balance | 5,119 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandAcquisitionAndDevelopmentMember | 5,636 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandAcquisitionAndDevelopmentMember
Related Allowance | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandAcquisitionAndDevelopmentMember | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandAcquisitionAndDevelopmentMember
Average Recorded Investment | 4,208 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandAcquisitionAndDevelopmentMember | 4,114 us-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,854 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandConsumerLotLoansMember | 13,976 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandConsumerLotLoansMember
Unpaid Principal Balance | 14,335 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandConsumerLotLoansMember | 14,457 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandConsumerLotLoansMember
Related Allowance | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandConsumerLotLoansMember | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandConsumerLotLoansMember
Average Recorded Investment | 13,520 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandConsumerLotLoansMember | 13,571 us-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,353 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandConsumerLotLoansMember | 974 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandConsumerLotLoansMember
Unpaid Principal Balance | 1,451 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandConsumerLotLoansMember | 1,072 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandConsumerLotLoansMember
Related Allowance | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandConsumerLotLoansMember | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandConsumerLotLoansMember
Average Recorded Investment | 1,144 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandConsumerLotLoansMember | 713 us-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,501 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandConsumerLotLoansMember | 13,002 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandConsumerLotLoansMember
Unpaid Principal Balance | 12,884 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandConsumerLotLoansMember | 13,385 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandConsumerLotLoansMember
Related Allowance | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandConsumerLotLoansMember | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandConsumerLotLoansMember
Average Recorded Investment | 12,376 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandConsumerLotLoansMember | 12,858 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandConsumerLotLoansMember
Multi-Family [Member] |  |
Financing Receivable, Impaired [Line Items] |  |
Recorded Investment | 4,941 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_MultiFamilyHousingPortfolioSegmentMember | 6,354 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_MultiFamilyHousingPortfolioSegmentMember
Unpaid Principal Balance | 4,941 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_MultiFamilyHousingPortfolioSegmentMember | 6,574 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_MultiFamilyHousingPortfolioSegmentMember
Related Allowance | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_MultiFamilyHousingPortfolioSegmentMember | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_MultiFamilyHousingPortfolioSegmentMember
Average Recorded Investment | 4,627 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_MultiFamilyHousingPortfolioSegmentMember | 5,284 us-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,079 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_MultiFamilyHousingPortfolioSegmentMember | 1,111 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_MultiFamilyHousingPortfolioSegmentMember
Unpaid Principal Balance | 1,079 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_MultiFamilyHousingPortfolioSegmentMember | 1,111 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_MultiFamilyHousingPortfolioSegmentMember
Related Allowance | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_MultiFamilyHousingPortfolioSegmentMember | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_MultiFamilyHousingPortfolioSegmentMember
Average Recorded Investment | 1,080 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_MultiFamilyHousingPortfolioSegmentMember | 327 us-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,862 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_MultiFamilyHousingPortfolioSegmentMember | 5,243 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_MultiFamilyHousingPortfolioSegmentMember
Unpaid Principal Balance | 3,862 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_MultiFamilyHousingPortfolioSegmentMember | 5,463 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_MultiFamilyHousingPortfolioSegmentMember
Related Allowance | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_MultiFamilyHousingPortfolioSegmentMember | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_MultiFamilyHousingPortfolioSegmentMember
Average Recorded Investment | 3,547 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_MultiFamilyHousingPortfolioSegmentMember | 4,957 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_MultiFamilyHousingPortfolioSegmentMember
Commercial Real Estate [Member] |  |
Financing Receivable, Impaired [Line Items] |  |
Recorded Investment | 30,441 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | 47,393 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember
Unpaid Principal Balance | 35,468 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | 55,113 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember
Related Allowance | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember
Average Recorded Investment | 28,747 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | 30,292 us-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 | 9,768 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | 13,234 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember
Unpaid Principal Balance | 14,145 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | 20,085 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember
Related Allowance | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember
Average Recorded Investment | 9,587 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | 11,720 us-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 | 20,673 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | 34,159 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember
Unpaid Principal Balance | 21,323 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | 35,028 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember
Related Allowance | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember
Average Recorded Investment | 19,160 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | 18,572 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember
Commercial & Industrial [Member] |  |
Financing Receivable, Impaired [Line Items] |  |
Recorded Investment | 6,988 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_CommercialAndIndustrialLoansMember | 3,195 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_CommercialAndIndustrialLoansMember
Unpaid Principal Balance | 18,865 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_CommercialAndIndustrialLoansMember | 17,166 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_CommercialAndIndustrialLoansMember
Related Allowance | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_CommercialAndIndustrialLoansMember | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_CommercialAndIndustrialLoansMember
Average Recorded Investment | 5,091 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_CommercialAndIndustrialLoansMember | 3,900 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_CommercialAndIndustrialLoansMember
Commercial & Industrial [Member] | Financing Receivable, Impairment, No Related Allowance [Member] |  |
Financing Receivable, Impaired [Line Items] |  |
Recorded Investment | 6,988 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_CommercialAndIndustrialLoansMember | 3,195 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_CommercialAndIndustrialLoansMember
Unpaid Principal Balance | 18,865 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_CommercialAndIndustrialLoansMember | 17,166 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_CommercialAndIndustrialLoansMember
Related Allowance | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_CommercialAndIndustrialLoansMember | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_CommercialAndIndustrialLoansMember
Average Recorded Investment | 5,091 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_CommercialAndIndustrialLoansMember | 3,900 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_CommercialAndIndustrialLoansMember
HELOC [Member] |  |
Financing Receivable, Impaired [Line Items] |  |
Recorded Investment | 2,506 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_HomeEquityLineOfCreditMember | 2,505 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_HomeEquityLineOfCreditMember
Unpaid Principal Balance | 3,292 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_HomeEquityLineOfCreditMember | 3,216 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_HomeEquityLineOfCreditMember
Related Allowance | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_HomeEquityLineOfCreditMember | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_HomeEquityLineOfCreditMember
Average Recorded Investment | 2,321 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_HomeEquityLineOfCreditMember | 1,816 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_HomeEquityLineOfCreditMember
HELOC [Member] | Financing Receivable, Impairment, No Related Allowance [Member] |  |
Financing Receivable, Impaired [Line Items] |  |
Recorded Investment | 1,112 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_HomeEquityLineOfCreditMember | 1,019 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_HomeEquityLineOfCreditMember
Unpaid Principal Balance | 1,898 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_HomeEquityLineOfCreditMember | 1,730 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_HomeEquityLineOfCreditMember
Related Allowance | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_HomeEquityLineOfCreditMember | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_HomeEquityLineOfCreditMember
Average Recorded Investment | 931 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_HomeEquityLineOfCreditMember | 612 us-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,394 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_HomeEquityLineOfCreditMember | 1,486 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_HomeEquityLineOfCreditMember
Unpaid Principal Balance | 1,394 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_HomeEquityLineOfCreditMember | 1,486 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_HomeEquityLineOfCreditMember
Related Allowance | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_HomeEquityLineOfCreditMember | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_HomeEquityLineOfCreditMember
Average Recorded Investment | 1,390 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_HomeEquityLineOfCreditMember | 1,204 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_HomeEquityLineOfCreditMember
Consumer [Member] |  |
Financing Receivable, Impaired [Line Items] |  |
Recorded Investment | 537 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | 706 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember
Unpaid Principal Balance | 907 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | 1,047 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember
Related Allowance | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember
Average Recorded Investment | 493 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | 596 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember
Consumer [Member] | Financing Receivable, Impairment, No Related Allowance [Member] |  |
Financing Receivable, Impaired [Line Items] |  |
Recorded Investment | 414 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | 663 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember
Unpaid Principal Balance | 614 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | 833 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember
Related Allowance | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember
Average Recorded Investment | 369 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | 517 us-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 | 123 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | 43 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember
Unpaid Principal Balance | 293 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | 214 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember
Related Allowance | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | 0 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember
Average Recorded Investment | $ 124 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | $ 79 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = wfsl_FinancingReceivableImpairmentAllowanceRecordedMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember

X
- Definition The valuation allowance for financing receivables that are expected to be uncollectible that were collectively evaluated for impairment. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 11B -Subparagraph (g) -URI http://asc.fasb.org/extlink&oid=28368275&loc=SL6953423-111524 + Details
Name: | us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | instant

X
- Definition Amount of valuation allowance for financing receivables that are expected to be uncollectible that were individually evaluated for impairment. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 11B -Subparagraph (g) -URI http://asc.fasb.org/extlink&oid=28368275&loc=SL6953423-111524 + Details
Name: | us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | instant

X
- Details
Name: | us-gaap_FinancingReceivableImpairedLineItems
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition Average amount of investment of impaired financing receivables with related allowance for credit losses and without a related allowance for credit losses. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 15 -Subparagraph (c)(1) -URI http://asc.fasb.org/extlink&oid=28368275&loc=d3e5212-111524 Reference 2: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 17 -URI http://asc.fasb.org/extlink&oid=28368275&loc=d3e5258-111524 + Details
Name: | us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | duration

X
- Definition Amount of investment of impaired financing receivables with related allowance for credit losses and without a related allowance for credit losses. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 14A -Subparagraph (b) -URI http://asc.fasb.org/extlink&oid=28368275&loc=SL6953550-111524 + Details
Name: | us-gaap_ImpairedFinancingReceivableRecordedInvestment
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Definition Amount of allowance for credit losses related to recorded investment. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 15 -Subparagraph (a)(3) -URI http://asc.fasb.org/extlink&oid=28368275&loc=d3e5212-111524 + Details
Name: | us-gaap_ImpairedFinancingReceivableRelatedAllowance
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | instant

X
- Definition Amount of unpaid principal balance of impaired financing receivables with related allowance for credit losses and without related allowance for credit losses. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 15 -Subparagraph (a)(4) -URI http://asc.fasb.org/extlink&oid=28368275&loc=d3e5212-111524 + Details
Name: | us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Details
Name: | us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis=wfsl_FinancingReceivableImpairmentAllowanceRecordedMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis=wfsl_FinancingReceivableImpairmentNoRelatedAllowanceMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis=us-gaap_CommercialRealEstatePortfolioSegmentMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis=us-gaap_ConsumerPortfolioSegmentMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis=us-gaap_ResidentialPortfolioSegmentMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis=wfsl_CommercialAndIndustrialLoansMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis=wfsl_ConstructionSpeculativeMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis=wfsl_HomeEquityLineOfCreditMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis=wfsl_LandAcquisitionAndDevelopmentMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis=wfsl_LandConsumerLotLoansMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis=wfsl_MultiFamilyHousingPortfolioSegmentMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |