XML 34 R73.htm IDEA: XBRL DOCUMENT v2.4.1.9
Allowance for Loan Losses Allowance Rollforward (Details) (USD $)
In Millions, unless otherwise specified
12 Months Ended
Dec. 31, 2014
Dec. 31, 2013
Dec. 31, 2012
Allowance for Loan Losses [Roll Forward]      
Beginning balance $ 43,846us-gaap_AllowanceForLoanAndLeaseLossesRealEstate $ 58,795us-gaap_AllowanceForLoanAndLeaseLossesRealEstate $ 72,156us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
(Benefit) provision for loan losses (3,885)us-gaap_ProvisionForLoanLossesExpensed (9,316)us-gaap_ProvisionForLoanLossesExpensed (1,191)us-gaap_ProvisionForLoanLossesExpensed
Charge-offs (6,469)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs (8,867)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs (15,139)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
Recoveries 1,440us-gaap_AllowanceForLoanAndLeaseLossRecoveryOfBadDebts 2,626us-gaap_AllowanceForLoanAndLeaseLossRecoveryOfBadDebts 1,784us-gaap_AllowanceForLoanAndLeaseLossRecoveryOfBadDebts
Transfers 0fnm_AllowanceForLoanLossesRealEstateTransferInOut 0fnm_AllowanceForLoanLossesRealEstateTransferInOut 0fnm_AllowanceForLoanLossesRealEstateTransferInOut
Other 609fnm_AllowanceForLoanLossesRealEstateOther 608fnm_AllowanceForLoanLossesRealEstateOther 1,185fnm_AllowanceForLoanLossesRealEstateOther
Ending balance 35,541us-gaap_AllowanceForLoanAndLeaseLossesRealEstate 43,846us-gaap_AllowanceForLoanAndLeaseLossesRealEstate 58,795us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
Fannie Mae [Member]      
Allowance for Loan Losses [Roll Forward]      
Beginning balance 40,521us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
50,519us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
57,309us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
(Benefit) provision for loan losses (4,425)us-gaap_ProvisionForLoanLossesExpensed
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
(6,984)us-gaap_ProvisionForLoanLossesExpensed
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
(1,613)us-gaap_ProvisionForLoanLossesExpensed
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
Charge-offs (6,244)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
(8,611)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
(14,316)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
Recoveries 1,190us-gaap_AllowanceForLoanAndLeaseLossRecoveryOfBadDebts
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
2,115us-gaap_AllowanceForLoanAndLeaseLossRecoveryOfBadDebts
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
1,632us-gaap_AllowanceForLoanAndLeaseLossRecoveryOfBadDebts
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
Transfers 1,517fnm_AllowanceForLoanLossesRealEstateTransferInOut
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
2,962fnm_AllowanceForLoanLossesRealEstateTransferInOut
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
6,466fnm_AllowanceForLoanLossesRealEstateTransferInOut
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
Other 558fnm_AllowanceForLoanLossesRealEstateOther
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
520fnm_AllowanceForLoanLossesRealEstateOther
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
1,041fnm_AllowanceForLoanLossesRealEstateOther
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
Ending balance 33,117us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
40,521us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
50,519us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
Consolidated Trusts [Member]      
Allowance for Loan Losses [Roll Forward]      
Beginning balance 3,325us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
8,276us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
14,847us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
(Benefit) provision for loan losses 540us-gaap_ProvisionForLoanLossesExpensed
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
(2,332)us-gaap_ProvisionForLoanLossesExpensed
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
422us-gaap_ProvisionForLoanLossesExpensed
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Charge-offs (225)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
(256)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
(823)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Recoveries 250us-gaap_AllowanceForLoanAndLeaseLossRecoveryOfBadDebts
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
511us-gaap_AllowanceForLoanAndLeaseLossRecoveryOfBadDebts
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
152us-gaap_AllowanceForLoanAndLeaseLossRecoveryOfBadDebts
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Transfers (1,517)fnm_AllowanceForLoanLossesRealEstateTransferInOut
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
(2,962)fnm_AllowanceForLoanLossesRealEstateTransferInOut
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
(6,466)fnm_AllowanceForLoanLossesRealEstateTransferInOut
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Other 51fnm_AllowanceForLoanLossesRealEstateOther
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
88fnm_AllowanceForLoanLossesRealEstateOther
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
144fnm_AllowanceForLoanLossesRealEstateOther
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Ending balance 2,424us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
3,325us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
8,276us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Single-Family [Member]      
Allowance for Loan Losses [Roll Forward]      
Beginning balance 43,307us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
57,687us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
70,633us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
(Benefit) provision for loan losses (3,781)us-gaap_ProvisionForLoanLossesExpensed
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
(8,896)us-gaap_ProvisionForLoanLossesExpensed
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
(1,017)us-gaap_ProvisionForLoanLossesExpensed
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
Charge-offs (6,393)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
(8,714)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
(14,878)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
Recoveries 1,440us-gaap_AllowanceForLoanAndLeaseLossRecoveryOfBadDebts
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
2,626us-gaap_AllowanceForLoanAndLeaseLossRecoveryOfBadDebts
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
1,784us-gaap_AllowanceForLoanAndLeaseLossRecoveryOfBadDebts
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
Transfers 0fnm_AllowanceForLoanLossesRealEstateTransferInOut
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
0fnm_AllowanceForLoanLossesRealEstateTransferInOut
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
0fnm_AllowanceForLoanLossesRealEstateTransferInOut
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
Other 604fnm_AllowanceForLoanLossesRealEstateOther
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
604fnm_AllowanceForLoanLossesRealEstateOther
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
1,165fnm_AllowanceForLoanLossesRealEstateOther
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
Ending balance 35,177us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
43,307us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
57,687us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
Single-Family [Member] | Fannie Mae [Member]      
Allowance for Loan Losses [Roll Forward]      
Beginning balance 40,202us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
49,848us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
56,294us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
(Benefit) provision for loan losses (4,334)us-gaap_ProvisionForLoanLossesExpensed
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
(6,751)us-gaap_ProvisionForLoanLossesExpensed
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
(1,482)us-gaap_ProvisionForLoanLossesExpensed
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
Charge-offs (6,168)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
(8,458)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
(14,055)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
Recoveries 1,190us-gaap_AllowanceForLoanAndLeaseLossRecoveryOfBadDebts
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
2,115us-gaap_AllowanceForLoanAndLeaseLossRecoveryOfBadDebts
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
1,632us-gaap_AllowanceForLoanAndLeaseLossRecoveryOfBadDebts
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
Transfers 1,513fnm_AllowanceForLoanLossesRealEstateTransferInOut
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
2,932fnm_AllowanceForLoanLossesRealEstateTransferInOut
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
6,437fnm_AllowanceForLoanLossesRealEstateTransferInOut
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
Other 553fnm_AllowanceForLoanLossesRealEstateOther
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
516fnm_AllowanceForLoanLossesRealEstateOther
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
1,022fnm_AllowanceForLoanLossesRealEstateOther
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
Ending balance 32,956us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
40,202us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
49,848us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
Single-Family [Member] | Consolidated Trusts [Member]      
Allowance for Loan Losses [Roll Forward]      
Beginning balance 3,105us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
7,839us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
14,339us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
(Benefit) provision for loan losses 553us-gaap_ProvisionForLoanLossesExpensed
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
(2,145)us-gaap_ProvisionForLoanLossesExpensed
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
465us-gaap_ProvisionForLoanLossesExpensed
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Charge-offs (225)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
(256)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
(823)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Recoveries 250us-gaap_AllowanceForLoanAndLeaseLossRecoveryOfBadDebts
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
511us-gaap_AllowanceForLoanAndLeaseLossRecoveryOfBadDebts
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
152us-gaap_AllowanceForLoanAndLeaseLossRecoveryOfBadDebts
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Transfers (1,513)fnm_AllowanceForLoanLossesRealEstateTransferInOut
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
(2,932)fnm_AllowanceForLoanLossesRealEstateTransferInOut
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
(6,437)fnm_AllowanceForLoanLossesRealEstateTransferInOut
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Other 51fnm_AllowanceForLoanLossesRealEstateOther
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
88fnm_AllowanceForLoanLossesRealEstateOther
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
143fnm_AllowanceForLoanLossesRealEstateOther
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Ending balance 2,221us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
3,105us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
7,839us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_SingleFamilyMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Multifamily [Member]      
Allowance for Loan Losses [Roll Forward]      
Beginning balance 539us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
1,108us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
1,523us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
(Benefit) provision for loan losses (104)us-gaap_ProvisionForLoanLossesExpensed
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
(420)us-gaap_ProvisionForLoanLossesExpensed
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
(174)us-gaap_ProvisionForLoanLossesExpensed
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
Charge-offs (76)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
(153)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
(261)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
Transfers 0fnm_AllowanceForLoanLossesRealEstateTransferInOut
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
0fnm_AllowanceForLoanLossesRealEstateTransferInOut
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
0fnm_AllowanceForLoanLossesRealEstateTransferInOut
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
Other 5fnm_AllowanceForLoanLossesRealEstateOther
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
4fnm_AllowanceForLoanLossesRealEstateOther
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
20fnm_AllowanceForLoanLossesRealEstateOther
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
Ending balance 364us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
539us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
1,108us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
Multifamily [Member] | Fannie Mae [Member]      
Allowance for Loan Losses [Roll Forward]      
Beginning balance 319us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
671us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
1,015us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
(Benefit) provision for loan losses (91)us-gaap_ProvisionForLoanLossesExpensed
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
(233)us-gaap_ProvisionForLoanLossesExpensed
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
(131)us-gaap_ProvisionForLoanLossesExpensed
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
Charge-offs (76)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
(153)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
(261)us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
Transfers 4fnm_AllowanceForLoanLossesRealEstateTransferInOut
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
30fnm_AllowanceForLoanLossesRealEstateTransferInOut
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
29fnm_AllowanceForLoanLossesRealEstateTransferInOut
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
Other 5fnm_AllowanceForLoanLossesRealEstateOther
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
4fnm_AllowanceForLoanLossesRealEstateOther
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
19fnm_AllowanceForLoanLossesRealEstateOther
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
Ending balance 161us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
319us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
671us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
Multifamily [Member] | Consolidated Trusts [Member]      
Allowance for Loan Losses [Roll Forward]      
Beginning balance 220us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
437us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
508us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
(Benefit) provision for loan losses (13)us-gaap_ProvisionForLoanLossesExpensed
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
(187)us-gaap_ProvisionForLoanLossesExpensed
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
(43)us-gaap_ProvisionForLoanLossesExpensed
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Charge-offs 0us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Transfers (4)fnm_AllowanceForLoanLossesRealEstateTransferInOut
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
(30)fnm_AllowanceForLoanLossesRealEstateTransferInOut
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
(29)fnm_AllowanceForLoanLossesRealEstateTransferInOut
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Other 0fnm_AllowanceForLoanLossesRealEstateOther
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0fnm_AllowanceForLoanLossesRealEstateOther
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
1fnm_AllowanceForLoanLossesRealEstateOther
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Ending balance 203us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
220us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
437us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= fnm_MultifamilyMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Interest Receivable [Member] | Fannie Mae [Member]      
Allowance for Loan Losses [Roll Forward]      
Ending balance 671us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= fnm_InterestReceivableMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
1,100us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= fnm_InterestReceivableMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
 
Interest Receivable [Member] | Consolidated Trusts [Member]      
Allowance for Loan Losses [Roll Forward]      
Ending balance $ 52us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= fnm_InterestReceivableMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
$ 104us-gaap_AllowanceForLoanAndLeaseLossesRealEstate
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= fnm_InterestReceivableMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember