XML 55 R34.htm IDEA: XBRL DOCUMENT
v2.4.1.9

Allowance for Losses on Loans - Allowance for Credit Losses (Details) (USD $) In Thousands, unless otherwise specified | 3 Months Ended | 6 Months Ended
--- | --- | ---
Mar. 31, 2015 | Mar. 31, 2014 | Mar. 31, 2015 | Mar. 31, 2014
Financing Receivable, Allowance for Credit Losses [Roll Forward] |  |  |  |
Beginning Allowance | $ 108,700 us-gaap_FinancingReceivableAllowanceForCreditLosses | $ 118,158 us-gaap_FinancingReceivableAllowanceForCreditLosses | $ 112,347 us-gaap_FinancingReceivableAllowanceForCreditLosses | $ 116,741 us-gaap_FinancingReceivableAllowanceForCreditLosses
Charge-offs | (2,517)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs | (4,775)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs | (5,126)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs | (9,586)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs
Recoveries | 5,640 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery | 6,298 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery | 9,091 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery | 17,126 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery
Provision & Transfers | (3,500)wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers | (4,750)wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers | (7,989)wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers | (9,350)wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers
Ending Allowance | 108,323 us-gaap_FinancingReceivableAllowanceForCreditLosses | 114,931 us-gaap_FinancingReceivableAllowanceForCreditLosses | 108,323 us-gaap_FinancingReceivableAllowanceForCreditLosses | 114,931 us-gaap_FinancingReceivableAllowanceForCreditLosses
Single-Family Residential [Member] |  |  |  |
Financing Receivable, Allowance for Credit Losses [Roll Forward] |  |  |  |
Beginning Allowance | 55,495 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | 67,692 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | 62,763 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | 64,184 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember
Charge-offs | (1,409)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | (2,444)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | (3,103)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | (4,777)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember
Recoveries | 4,122 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | 2,088 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | 6,675 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | 10,913 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember
Provision & Transfers | (3,446)wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | (3,988)wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | (11,573)wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | (6,972)wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember
Ending Allowance | 54,762 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | 63,348 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | 54,762 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember | 63,348 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember
Construction - Speculative [Member] |  |  |  |
Financing Receivable, Allowance for Credit Losses [Roll Forward] |  |  |  |
Beginning Allowance | 5,451 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionSpeculativeMember | 8,142 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionSpeculativeMember | 6,742 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionSpeculativeMember | 8,407 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionSpeculativeMember
Charge-offs | 0 us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionSpeculativeMember | (488)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionSpeculativeMember | (388)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionSpeculativeMember | (938)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionSpeculativeMember
Recoveries | 75 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionSpeculativeMember | 0 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionSpeculativeMember | 75 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionSpeculativeMember | 95 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionSpeculativeMember
Provision & Transfers | (81)wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionSpeculativeMember | (881)wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionSpeculativeMember | (984)wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionSpeculativeMember | (791)wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionSpeculativeMember
Ending Allowance | 5,445 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionSpeculativeMember | 6,773 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionSpeculativeMember | 5,445 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionSpeculativeMember | 6,773 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionSpeculativeMember
Construction - Custom [Member] |  |  |  |
Financing Receivable, Allowance for Credit Losses [Roll Forward] |  |  |  |
Beginning Allowance | 965 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionCustomMember | 1,474 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionCustomMember | 1,695 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionCustomMember | 882 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionCustomMember
Charge-offs | 0 us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionCustomMember | 0 us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionCustomMember | 0 us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionCustomMember | 0 us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionCustomMember
Recoveries | 0 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionCustomMember | 0 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionCustomMember | 0 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionCustomMember | 0 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionCustomMember
Provision & Transfers | 3 wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionCustomMember | 125 wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionCustomMember | (727)wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionCustomMember | 717 wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionCustomMember
Ending Allowance | 968 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionCustomMember | 1,599 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionCustomMember | 968 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionCustomMember | 1,599 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_ConstructionCustomMember
Land - Acquisition & Development [Member] |  |  |  |
Financing Receivable, Allowance for Credit Losses [Roll Forward] |  |  |  |
Beginning Allowance | 6,671 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandAcquisitionAndDevelopmentMember | 7,084 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandAcquisitionAndDevelopmentMember | 5,592 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandAcquisitionAndDevelopmentMember | 9,165 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandAcquisitionAndDevelopmentMember
Charge-offs | 0 us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandAcquisitionAndDevelopmentMember | (85)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandAcquisitionAndDevelopmentMember | (38)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandAcquisitionAndDevelopmentMember | (541)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandAcquisitionAndDevelopmentMember
Recoveries | 204 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandAcquisitionAndDevelopmentMember | 299 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandAcquisitionAndDevelopmentMember | 205 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandAcquisitionAndDevelopmentMember | 738 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandAcquisitionAndDevelopmentMember
Provision & Transfers | 530 wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandAcquisitionAndDevelopmentMember | (1,271)wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandAcquisitionAndDevelopmentMember | 1,646 wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandAcquisitionAndDevelopmentMember | (3,335)wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandAcquisitionAndDevelopmentMember
Ending Allowance | 7,405 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandAcquisitionAndDevelopmentMember | 6,027 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandAcquisitionAndDevelopmentMember | 7,405 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandAcquisitionAndDevelopmentMember | 6,027 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandAcquisitionAndDevelopmentMember
Land - Consumer Lot Loans [Member] |  |  |  |
Financing Receivable, Allowance for Credit Losses [Roll Forward] |  |  |  |
Beginning Allowance | 3,113 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandConsumerLotLoansMember | 3,274 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandConsumerLotLoansMember | 3,077 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandConsumerLotLoansMember | 3,552 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandConsumerLotLoansMember
Charge-offs | (52)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandConsumerLotLoansMember | (231)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandConsumerLotLoansMember | (87)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandConsumerLotLoansMember | (474)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandConsumerLotLoansMember
Recoveries | 34 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandConsumerLotLoansMember | 0 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandConsumerLotLoansMember | 34 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandConsumerLotLoansMember | 22 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandConsumerLotLoansMember
Provision & Transfers | (60)wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandConsumerLotLoansMember | (69)wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandConsumerLotLoansMember | 11 wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandConsumerLotLoansMember | (126)wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandConsumerLotLoansMember
Ending Allowance | 3,035 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandConsumerLotLoansMember | 2,974 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandConsumerLotLoansMember | 3,035 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandConsumerLotLoansMember | 2,974 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_LandConsumerLotLoansMember
Multi-Family [Member] |  |  |  |
Financing Receivable, Allowance for Credit Losses [Roll Forward] |  |  |  |
Beginning Allowance | 4,500 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_MultiFamilyHousingPortfolioSegmentMember | 4,109 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_MultiFamilyHousingPortfolioSegmentMember | 4,248 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_MultiFamilyHousingPortfolioSegmentMember | 3,816 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_MultiFamilyHousingPortfolioSegmentMember
Charge-offs | 0 us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_MultiFamilyHousingPortfolioSegmentMember | 0 us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_MultiFamilyHousingPortfolioSegmentMember | 0 us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_MultiFamilyHousingPortfolioSegmentMember | 0 us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_MultiFamilyHousingPortfolioSegmentMember
Recoveries | 0 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_MultiFamilyHousingPortfolioSegmentMember | 0 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_MultiFamilyHousingPortfolioSegmentMember | 220 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_MultiFamilyHousingPortfolioSegmentMember | 0 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_MultiFamilyHousingPortfolioSegmentMember
Provision & Transfers | 173 wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_MultiFamilyHousingPortfolioSegmentMember | 78 wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_MultiFamilyHousingPortfolioSegmentMember | 205 wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_MultiFamilyHousingPortfolioSegmentMember | 371 wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_MultiFamilyHousingPortfolioSegmentMember
Ending Allowance | 4,673 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_MultiFamilyHousingPortfolioSegmentMember | 4,187 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_MultiFamilyHousingPortfolioSegmentMember | 4,673 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_MultiFamilyHousingPortfolioSegmentMember | 4,187 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_MultiFamilyHousingPortfolioSegmentMember
Commercial Real Estate [Member] |  |  |  |
Financing Receivable, Allowance for Credit Losses [Roll Forward] |  |  |  |
Beginning Allowance | 5,872 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | 5,868 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | 7,548 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | 5,595 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember
Charge-offs | 0 us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | (73)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | (27)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | (73)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember
Recoveries | 453 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | 0 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | 481 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | 0 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember
Provision & Transfers | 409 wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | 129 wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | (1,268)wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | 402 wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember
Ending Allowance | 6,734 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | 5,924 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | 6,734 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember | 5,924 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstatePortfolioSegmentMember
Commercial & Industrial [Member] |  |  |  |
Financing Receivable, Allowance for Credit Losses [Roll Forward] |  |  |  |
Beginning Allowance | 23,328 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_CommercialAndIndustrialLoansMember | 16,505 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_CommercialAndIndustrialLoansMember | 16,527 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_CommercialAndIndustrialLoansMember | 16,614 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_CommercialAndIndustrialLoansMember
Charge-offs | (355)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_CommercialAndIndustrialLoansMember | (444)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_CommercialAndIndustrialLoansMember | (355)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_CommercialAndIndustrialLoansMember | (692)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_CommercialAndIndustrialLoansMember
Recoveries | 18 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_CommercialAndIndustrialLoansMember | 2,852 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_CommercialAndIndustrialLoansMember | 52 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_CommercialAndIndustrialLoansMember | 3,273 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_CommercialAndIndustrialLoansMember
Provision & Transfers | (1,845)wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_CommercialAndIndustrialLoansMember | 1,490 wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_CommercialAndIndustrialLoansMember | 4,922 wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_CommercialAndIndustrialLoansMember | 1,208 wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_CommercialAndIndustrialLoansMember
Ending Allowance | 21,146 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_CommercialAndIndustrialLoansMember | 20,403 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_CommercialAndIndustrialLoansMember | 21,146 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_CommercialAndIndustrialLoansMember | 20,403 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_CommercialAndIndustrialLoansMember
HELOC [Member] |  |  |  |
Financing Receivable, Allowance for Credit Losses [Roll Forward] |  |  |  |
Beginning Allowance | 892 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_HomeEquityLineOfCreditMember | 943 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_HomeEquityLineOfCreditMember | 928 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_HomeEquityLineOfCreditMember | 1,002 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_HomeEquityLineOfCreditMember
Charge-offs | 0 us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_HomeEquityLineOfCreditMember | 0 us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_HomeEquityLineOfCreditMember | 0 us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_HomeEquityLineOfCreditMember | 0 us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_HomeEquityLineOfCreditMember
Recoveries | 0 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_HomeEquityLineOfCreditMember | 0 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_HomeEquityLineOfCreditMember | 0 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_HomeEquityLineOfCreditMember | 0 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_HomeEquityLineOfCreditMember
Provision & Transfers | (42)wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_HomeEquityLineOfCreditMember | 32 wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_HomeEquityLineOfCreditMember | (78)wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_HomeEquityLineOfCreditMember | (27)wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_HomeEquityLineOfCreditMember
Ending Allowance | 850 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_HomeEquityLineOfCreditMember | 975 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_HomeEquityLineOfCreditMember | 850 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_HomeEquityLineOfCreditMember | 975 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = wfsl_HomeEquityLineOfCreditMember
Consumer [Member] |  |  |  |
Financing Receivable, Allowance for Credit Losses [Roll Forward] |  |  |  |
Beginning Allowance | 2,413 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | 3,067 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | 3,227 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | 3,524 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember
Charge-offs | (701)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | (1,010)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | (1,128)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | (2,091)us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember
Recoveries | 734 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | 1,059 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | 1,349 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | 2,085 us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember
Provision & Transfers | 859 wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | (395)wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | (143)wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | (797)wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember
Ending Allowance | $ 3,305 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | $ 2,721 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | $ 3,305 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember | $ 2,721 us-gaap_FinancingReceivableAllowanceForCreditLosses / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerPortfolioSegmentMember

X
- Definition A valuation allowance for financing receivables that are expected to be uncollectible. + 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 (c)(1) -URI http://asc.fasb.org/extlink&oid=28368275&loc=SL6953423-111524 + Details
Name: | us-gaap_FinancingReceivableAllowanceForCreditLosses
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | instant

X
- Definition Amount of recovery of financing receivables doubtful of collection that were previously charged off. + 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 (c)(4) -URI http://asc.fasb.org/extlink&oid=28368275&loc=SL6953423-111524 + Details
Name: | us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | duration

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

X
- Definition Amount of direct write-downs of financing receivables charged against the allowance. + 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 (c)(3) -URI http://asc.fasb.org/extlink&oid=28368275&loc=SL6953423-111524 + Details
Name: | us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | duration

X
- Definition Financing Receivable, Allowance for Credit Losses, Provision and Transfers + References No definition available. + Details
Name: | wfsl_FinancingReceivableAllowanceForCreditLossesProvisionAndTransfers
Namespace Prefix: | wfsl_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | duration

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_ConstructionCustomMember
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: |