XML 21 R121.htm IDEA: XBRL DOCUMENT v2.4.1.9
Fair Value Recurring Changes in Fair Value (Details) (USD $)
In Millions, unless otherwise specified
Dec. 31, 2014
Dec. 31, 2013
Fannie Mae [Member]    
Liabilities [Abstract]    
Long-term debt $ 6,403us-gaap_LongTermDebtFairValue
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
$ 1,308us-gaap_LongTermDebtFairValue
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
Consolidated Trusts [Member]    
Assets [Abstract]    
Mortgage loans held for investment 15,629us-gaap_LoansReceivableFairValueDisclosure
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
14,268us-gaap_LoansReceivableFairValueDisclosure
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Liabilities [Abstract]    
Long-term debt 19,483us-gaap_LongTermDebtFairValue
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
14,976us-gaap_LongTermDebtFairValue
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Netting Adjustment [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Cash, Cash Equivalents, and Restricted Cash, Fair Value Disclosure 0fnm_CashCashEquivalentsAndRestrictedCashFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
0fnm_CashCashEquivalentsAndRestrictedCashFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
Federal Funds Sold and Securities Borrowed or Purchased under Agreements to Resell 0us-gaap_FederalFundsSoldAndSecuritiesBorrowedOrPurchasedUnderAgreementsToResellFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
0us-gaap_FederalFundsSoldAndSecuritiesBorrowedOrPurchasedUnderAgreementsToResellFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
Assets [Abstract]    
Trading securities 0us-gaap_TradingSecurities
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
0us-gaap_TradingSecurities
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
Available-for-sale securities 0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
Mortgage loans held for investment 0us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
0us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
Advances to lenders 0fnm_AdvancesToLendersFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
0fnm_AdvancesToLendersFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
Total assets at fair value (5,186)us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
(8,422)us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
Other assets [Abstract]    
Derivatives assets at fair value (5,186)us-gaap_DerivativeAssets
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
(8,422)us-gaap_DerivativeAssets
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
Guaranty assets and buy-ups 0fnm_GuarantyAssetsAndBuyUpsFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
0fnm_GuarantyAssetsAndBuyUpsFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
Liabilities [Abstract]    
Total liabilities at fair value (10,194)us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
(9,370)us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
Other liabilities [Abstract]    
Derivatives liabilities at fair value (10,194)us-gaap_DerivativeLiabilities
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
(9,370)us-gaap_DerivativeLiabilities
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
Guarantees, Fair Value Disclosure 0us-gaap_GuaranteesFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
0us-gaap_GuaranteesFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
Netting Adjustment [Member] | Fannie Mae [Member]    
Assets [Abstract]    
Mortgage loans held for investment 0us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
0us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
Other assets [Abstract]    
Short-term debt 0us-gaap_ShorttermDebtFairValue
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
0us-gaap_ShorttermDebtFairValue
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
Liabilities [Abstract]    
Long-term debt 0us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
0us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
Netting Adjustment [Member] | Consolidated Trusts [Member]    
Assets [Abstract]    
Mortgage loans held for investment 0us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Other assets [Abstract]    
Short-term debt 0us-gaap_ShorttermDebtFairValue
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_ShorttermDebtFairValue
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Liabilities [Abstract]    
Long-term debt 0us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Estimated Fair Value [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Cash, Cash Equivalents, and Restricted Cash, Fair Value Disclosure 54,565fnm_CashCashEquivalentsAndRestrictedCashFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
48,223fnm_CashCashEquivalentsAndRestrictedCashFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
Federal Funds Sold and Securities Borrowed or Purchased under Agreements to Resell 30,950us-gaap_FederalFundsSoldAndSecuritiesBorrowedOrPurchasedUnderAgreementsToResellFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
38,975us-gaap_FederalFundsSoldAndSecuritiesBorrowedOrPurchasedUnderAgreementsToResellFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
Assets [Abstract]    
Trading securities 31,504us-gaap_TradingSecurities
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
30,768us-gaap_TradingSecurities
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
Available-for-sale securities 30,654us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
38,171us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
Mortgage loans held for investment 3,088,086us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
2,992,022us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
Advances to lenders 5,549fnm_AdvancesToLendersFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
3,688fnm_AdvancesToLendersFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
Total assets at fair value 3,243,747us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
3,155,006us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
Other assets [Abstract]    
Derivatives assets at fair value 1,485us-gaap_DerivativeAssets
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
2,073us-gaap_DerivativeAssets
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
Guaranty assets and buy-ups 616fnm_GuarantyAssetsAndBuyUpsFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
706fnm_GuarantyAssetsAndBuyUpsFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
Liabilities [Abstract]    
Total liabilities at fair value 3,312,687us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
3,241,494us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
Other liabilities [Abstract]    
Derivatives liabilities at fair value 614us-gaap_DerivativeLiabilities
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
1,469us-gaap_DerivativeLiabilities
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
Guarantees, Fair Value Disclosure 1,579us-gaap_GuaranteesFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
2,433us-gaap_GuaranteesFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
Estimated Fair Value [Member] | Fannie Mae [Member]    
Assets [Abstract]    
Mortgage loans held for investment 246,960us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
245,880us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
Other assets [Abstract]    
Short-term debt 105,022us-gaap_ShorttermDebtFairValue
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
72,304us-gaap_ShorttermDebtFairValue
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
Liabilities [Abstract]    
Long-term debt 368,685us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
465,548us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
Estimated Fair Value [Member] | Consolidated Trusts [Member]    
Assets [Abstract]    
Mortgage loans held for investment 2,841,126us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
2,746,142us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Other assets [Abstract]    
Short-term debt 1,560us-gaap_ShorttermDebtFairValue
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
2,154us-gaap_ShorttermDebtFairValue
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Liabilities [Abstract]    
Long-term debt 2,835,177us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
2,697,586us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Quoted Prices in Active Markets for Identical Assets (Level 1) [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Cash, Cash Equivalents, and Restricted Cash, Fair Value Disclosure 37,965fnm_CashCashEquivalentsAndRestrictedCashFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
36,633fnm_CashCashEquivalentsAndRestrictedCashFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
Federal Funds Sold and Securities Borrowed or Purchased under Agreements to Resell 0us-gaap_FederalFundsSoldAndSecuritiesBorrowedOrPurchasedUnderAgreementsToResellFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
0us-gaap_FederalFundsSoldAndSecuritiesBorrowedOrPurchasedUnderAgreementsToResellFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
Assets [Abstract]    
Trading securities 19,466us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
16,306us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
Available-for-sale securities 0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
Mortgage loans held for investment 0us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
0us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
Advances to lenders 0fnm_AdvancesToLendersFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
0fnm_AdvancesToLendersFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
Total assets at fair value 57,431us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
52,939us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
Other assets [Abstract]    
Derivatives assets at fair value 0us-gaap_DerivativeAssets
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
0us-gaap_DerivativeAssets
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
Guaranty assets and buy-ups 0fnm_GuarantyAssetsAndBuyUpsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
0fnm_GuarantyAssetsAndBuyUpsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
Liabilities [Abstract]    
Total liabilities at fair value 0us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
0us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
Other liabilities [Abstract]    
Derivatives liabilities at fair value 0us-gaap_DerivativeLiabilities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
0us-gaap_DerivativeLiabilities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
Guarantees, Fair Value Disclosure 0us-gaap_GuaranteesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
0us-gaap_GuaranteesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Fannie Mae [Member]    
Assets [Abstract]    
Mortgage loans held for investment 0us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
0us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
Other assets [Abstract]    
Short-term debt 0us-gaap_ShorttermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
0us-gaap_ShorttermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
Liabilities [Abstract]    
Long-term debt 0us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
0us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Consolidated Trusts [Member]    
Assets [Abstract]    
Mortgage loans held for investment 0us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Other assets [Abstract]    
Short-term debt 0us-gaap_ShorttermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_ShorttermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Liabilities [Abstract]    
Long-term debt 0us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Significant Other Observable Inputs (Level 2) [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Cash, Cash Equivalents, and Restricted Cash, Fair Value Disclosure 16,600fnm_CashCashEquivalentsAndRestrictedCashFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
11,590fnm_CashCashEquivalentsAndRestrictedCashFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
Federal Funds Sold and Securities Borrowed or Purchased under Agreements to Resell 30,950us-gaap_FederalFundsSoldAndSecuritiesBorrowedOrPurchasedUnderAgreementsToResellFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
38,975us-gaap_FederalFundsSoldAndSecuritiesBorrowedOrPurchasedUnderAgreementsToResellFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
Assets [Abstract]    
Trading securities 9,008us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
11,688us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
Available-for-sale securities 15,574us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
19,159us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
Mortgage loans held for investment 2,687,759us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
2,599,667us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
Advances to lenders 5,079fnm_AdvancesToLendersFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
3,165fnm_AdvancesToLendersFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
Total assets at fair value 2,771,628us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
2,694,859us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
Other assets [Abstract]    
Derivatives assets at fair value 6,489us-gaap_DerivativeAssets
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
10,430us-gaap_DerivativeAssets
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
Guaranty assets and buy-ups 0fnm_GuarantyAssetsAndBuyUpsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
0fnm_GuarantyAssetsAndBuyUpsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
Liabilities [Abstract]    
Total liabilities at fair value 3,299,289us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
3,231,253us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
Other liabilities [Abstract]    
Derivatives liabilities at fair value 10,671us-gaap_DerivativeLiabilities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
10,734us-gaap_DerivativeLiabilities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
Guarantees, Fair Value Disclosure 0us-gaap_GuaranteesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
0us-gaap_GuaranteesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
Significant Other Observable Inputs (Level 2) [Member] | Fannie Mae [Member]    
Assets [Abstract]    
Mortgage loans held for investment 29,896us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
29,920us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
Other assets [Abstract]    
Short-term debt 105,022us-gaap_ShorttermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
72,304us-gaap_ShorttermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
Liabilities [Abstract]    
Long-term debt 367,703us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
463,991us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
Significant Other Observable Inputs (Level 2) [Member] | Consolidated Trusts [Member]    
Assets [Abstract]    
Mortgage loans held for investment 2,657,863us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
2,569,747us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Other assets [Abstract]    
Short-term debt 0us-gaap_ShorttermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_ShorttermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Liabilities [Abstract]    
Long-term debt 2,815,843us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
2,684,224us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Significant Unobservable Inputs (Level 3) [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Cash, Cash Equivalents, and Restricted Cash, Fair Value Disclosure 0fnm_CashCashEquivalentsAndRestrictedCashFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0fnm_CashCashEquivalentsAndRestrictedCashFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Federal Funds Sold and Securities Borrowed or Purchased under Agreements to Resell 0us-gaap_FederalFundsSoldAndSecuritiesBorrowedOrPurchasedUnderAgreementsToResellFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_FederalFundsSoldAndSecuritiesBorrowedOrPurchasedUnderAgreementsToResellFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Assets [Abstract]    
Trading securities 3,030us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
2,774us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Available-for-sale securities 15,080us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
19,012us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Mortgage loans held for investment 400,327us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
392,355us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Advances to lenders 470fnm_AdvancesToLendersFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
523fnm_AdvancesToLendersFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Total assets at fair value 419,874us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
415,630us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Other assets [Abstract]    
Derivatives assets at fair value 182us-gaap_DerivativeAssets
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
65us-gaap_DerivativeAssets
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Guaranty assets and buy-ups 616fnm_GuarantyAssetsAndBuyUpsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
706fnm_GuarantyAssetsAndBuyUpsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Liabilities [Abstract]    
Total liabilities at fair value 23,592us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
19,611us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Other liabilities [Abstract]    
Derivatives liabilities at fair value 137us-gaap_DerivativeLiabilities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
105us-gaap_DerivativeLiabilities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Guarantees, Fair Value Disclosure 1,579us-gaap_GuaranteesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
2,433us-gaap_GuaranteesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Significant Unobservable Inputs (Level 3) [Member] | Fannie Mae [Member]    
Assets [Abstract]    
Mortgage loans held for investment 217,064us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
215,960us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
Other assets [Abstract]    
Short-term debt 0us-gaap_ShorttermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
0us-gaap_ShorttermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
Liabilities [Abstract]    
Long-term debt 982us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
1,557us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
Significant Unobservable Inputs (Level 3) [Member] | Consolidated Trusts [Member]    
Assets [Abstract]    
Mortgage loans held for investment 183,263us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
176,395us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Other assets [Abstract]    
Short-term debt 1,560us-gaap_ShorttermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
2,154us-gaap_ShorttermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Liabilities [Abstract]    
Long-term debt 19,334us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
13,362us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Recurring Fair Value Measurements [Member] | Netting Adjustment [Member]    
Assets [Abstract]    
Trading securities 0us-gaap_TradingSecurities
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_TradingSecurities
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Total assets at fair value (5,186)us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
(8,422)us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Other assets [Abstract]    
Derivatives assets at fair value (5,186)us-gaap_DerivativeAssets
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
(8,422)us-gaap_DerivativeAssets
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Liabilities [Abstract]    
Long-term debt 0us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Total liabilities at fair value (10,194)us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
(9,370)us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Other liabilities [Abstract]    
Derivatives liabilities at fair value (10,194)us-gaap_DerivativeLiabilities
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
(9,370)us-gaap_DerivativeLiabilities
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Netting Adjustment [Member] | Fannie Mae [Member]    
Liabilities [Abstract]    
Long-term debt 0us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
0us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
Recurring Fair Value Measurements [Member] | Netting Adjustment [Member] | Fannie Mae [Member] | Senior Floating [Member]    
Liabilities [Abstract]    
Long-term debt 0us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
/ us-gaap_LongtermDebtTypeAxis
= fnm_SeniorFloatingDebtMember
0us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
/ us-gaap_LongtermDebtTypeAxis
= fnm_SeniorFloatingDebtMember
Recurring Fair Value Measurements [Member] | Netting Adjustment [Member] | Fannie Mae [Member] | Senior Fixed [Member]    
Liabilities [Abstract]    
Long-term debt   0us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
/ us-gaap_LongtermDebtTypeAxis
= fnm_SeniorFixedDebtMember
Recurring Fair Value Measurements [Member] | Netting Adjustment [Member] | Consolidated Trusts [Member]    
Assets [Abstract]    
Mortgage loans held for investment 0us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Liabilities [Abstract]    
Long-term debt 0us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Recurring Fair Value Measurements [Member] | Netting Adjustment [Member] | Swaps [Member]    
Other assets [Abstract]    
Derivatives assets at fair value 0us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_SwapMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_SwapMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Other liabilities [Abstract]    
Derivatives liabilities at fair value 0us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_SwapMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_SwapMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Netting Adjustment [Member] | Swaptions [Member]    
Other assets [Abstract]    
Derivatives assets at fair value 0us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_SwaptionMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_SwaptionMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Other liabilities [Abstract]    
Derivatives liabilities at fair value 0us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_SwaptionMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_SwaptionMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Netting Adjustment [Member] | Other [Member]    
Other assets [Abstract]    
Derivatives assets at fair value 0us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_OtherContractMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_OtherContractMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Other liabilities [Abstract]    
Derivatives liabilities at fair value 0us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_OtherContractMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_OtherContractMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Netting Adjustment [Member] | Netting Adjustment [Member]    
Other assets [Abstract]    
Derivatives assets at fair value (5,186)us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
(8,422)us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Other liabilities [Abstract]    
Derivatives liabilities at fair value (10,194)us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
(9,370)us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Netting Adjustment [Member] | Mortgage commitment derivatives [Member]    
Other assets [Abstract]    
Derivatives assets at fair value 0us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= fnm_MortgageCommitmentDerivativesMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= fnm_MortgageCommitmentDerivativesMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Other liabilities [Abstract]    
Derivatives liabilities at fair value 0us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= fnm_MortgageCommitmentDerivativesMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= fnm_MortgageCommitmentDerivativesMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Netting Adjustment [Member] | Fannie Mae [Member]    
Assets [Abstract]    
Trading securities 0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Netting Adjustment [Member] | Freddie Mac [Member]    
Assets [Abstract]    
Trading securities 0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Netting Adjustment [Member] | Ginnie Mae [Member]    
Assets [Abstract]    
Trading securities 0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_GovernmentNationalMortgageAssociationCertificatesAndObligationsGNMAMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_GovernmentNationalMortgageAssociationCertificatesAndObligationsGNMAMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_GovernmentNationalMortgageAssociationCertificatesAndObligationsGNMAMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_GovernmentNationalMortgageAssociationCertificatesAndObligationsGNMAMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Netting Adjustment [Member] | Alt-A private-label securities [Member]    
Assets [Abstract]    
Trading securities 0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Netting Adjustment [Member] | Subprime private-label securities [Member]    
Assets [Abstract]    
Trading securities 0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Netting Adjustment [Member] | CMBS [Member]    
Assets [Abstract]    
Trading securities 0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Netting Adjustment [Member] | Mortgage revenue bonds [Member]    
Assets [Abstract]    
Trading securities 0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Netting Adjustment [Member] | Other [Member]    
Assets [Abstract]    
Trading securities 0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Netting Adjustment [Member] | U.S. Treasury Securities [Member]    
Assets [Abstract]    
Trading securities 0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USTreasurySecuritiesMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USTreasurySecuritiesMember
/ us-gaap_FairValueByMeasurementBasisAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Estimated Fair Value [Member]    
Assets [Abstract]    
Trading securities 31,504us-gaap_TradingSecurities
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
30,768us-gaap_TradingSecurities
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 30,654us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
38,171us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Total assets at fair value 79,272us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
85,280us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Other assets [Abstract]    
Derivatives assets at fair value 1,485us-gaap_DerivativeAssets
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
2,073us-gaap_DerivativeAssets
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Liabilities [Abstract]    
Long-term debt 25,886us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
16,284us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Total liabilities at fair value 26,500us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
17,753us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Other liabilities [Abstract]    
Derivatives liabilities at fair value 614us-gaap_DerivativeLiabilities
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
1,469us-gaap_DerivativeLiabilities
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Estimated Fair Value [Member] | Fannie Mae [Member]    
Liabilities [Abstract]    
Long-term debt 6,403us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
1,308us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
Recurring Fair Value Measurements [Member] | Estimated Fair Value [Member] | Fannie Mae [Member] | Senior Floating [Member]    
Liabilities [Abstract]    
Long-term debt 6,403us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
/ us-gaap_LongtermDebtTypeAxis
= fnm_SeniorFloatingDebtMember
955us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
/ us-gaap_LongtermDebtTypeAxis
= fnm_SeniorFloatingDebtMember
Recurring Fair Value Measurements [Member] | Estimated Fair Value [Member] | Fannie Mae [Member] | Senior Fixed [Member]    
Liabilities [Abstract]    
Long-term debt   353us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
/ us-gaap_LongtermDebtTypeAxis
= fnm_SeniorFixedDebtMember
Recurring Fair Value Measurements [Member] | Estimated Fair Value [Member] | Consolidated Trusts [Member]    
Assets [Abstract]    
Mortgage loans held for investment 15,629us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
14,268us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Liabilities [Abstract]    
Long-term debt 19,483us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
14,976us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Recurring Fair Value Measurements [Member] | Estimated Fair Value [Member] | Swaps [Member]    
Other assets [Abstract]    
Derivatives assets at fair value 6,235us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_SwapMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
9,640us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_SwapMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Other liabilities [Abstract]    
Derivatives liabilities at fair value 9,472us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_SwapMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
9,540us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_SwapMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Estimated Fair Value [Member] | Swaptions [Member]    
Other assets [Abstract]    
Derivatives assets at fair value 153us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_SwaptionMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
562us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_SwaptionMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Other liabilities [Abstract]    
Derivatives liabilities at fair value 991us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_SwaptionMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
1,084us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_SwaptionMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Estimated Fair Value [Member] | Other [Member]    
Other assets [Abstract]    
Derivatives assets at fair value 28us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_OtherContractMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
28us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_OtherContractMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Other liabilities [Abstract]    
Derivatives liabilities at fair value 1us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_OtherContractMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
1us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_OtherContractMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Estimated Fair Value [Member] | Netting Adjustment [Member]    
Other assets [Abstract]    
Derivatives assets at fair value (5,186)us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
(8,422)us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Other liabilities [Abstract]    
Derivatives liabilities at fair value (10,194)us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
(9,370)us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Estimated Fair Value [Member] | Mortgage commitment derivatives [Member]    
Other assets [Abstract]    
Derivatives assets at fair value 255us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= fnm_MortgageCommitmentDerivativesMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
265us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= fnm_MortgageCommitmentDerivativesMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Other liabilities [Abstract]    
Derivatives liabilities at fair value 344us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= fnm_MortgageCommitmentDerivativesMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
214us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= fnm_MortgageCommitmentDerivativesMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Estimated Fair Value [Member] | Fannie Mae [Member]    
Assets [Abstract]    
Trading securities 4,940us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
5,870us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 5,639us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
6,573us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Estimated Fair Value [Member] | Freddie Mac [Member]    
Assets [Abstract]    
Trading securities 1,369us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
1,839us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 5,528us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
6,842us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Estimated Fair Value [Member] | Ginnie Mae [Member]    
Assets [Abstract]    
Trading securities 166us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_GovernmentNationalMortgageAssociationCertificatesAndObligationsGNMAMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
407us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_GovernmentNationalMortgageAssociationCertificatesAndObligationsGNMAMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 476us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_GovernmentNationalMortgageAssociationCertificatesAndObligationsGNMAMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
588us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_GovernmentNationalMortgageAssociationCertificatesAndObligationsGNMAMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Estimated Fair Value [Member] | Alt-A private-label securities [Member]    
Assets [Abstract]    
Trading securities 920us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
1,516us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 5,678us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
7,349us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Estimated Fair Value [Member] | Subprime private-label securities [Member]    
Assets [Abstract]    
Trading securities 1,307us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
1,448us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 5,240us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
7,068us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Estimated Fair Value [Member] | CMBS [Member]    
Assets [Abstract]    
Trading securities 2,515us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
2,718us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 1,397us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
1,606us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Estimated Fair Value [Member] | Mortgage revenue bonds [Member]    
Assets [Abstract]    
Trading securities 722us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
565us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 4,023us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
5,256us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Estimated Fair Value [Member] | Other [Member]    
Assets [Abstract]    
Trading securities 99us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
99us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 2,673us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
2,889us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Estimated Fair Value [Member] | U.S. Treasury Securities [Member]    
Assets [Abstract]    
Trading securities 19,466us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USTreasurySecuritiesMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
16,306us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USTreasurySecuritiesMember
/ us-gaap_FairValueByMeasurementBasisAxis
= us-gaap_EstimateOfFairValueFairValueDisclosureMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member]    
Assets [Abstract]    
Trading securities 19,466us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
16,306us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Total assets at fair value 19,466us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
16,306us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Other assets [Abstract]    
Derivatives assets at fair value 0us-gaap_DerivativeAssets
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_DerivativeAssets
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Liabilities [Abstract]    
Long-term debt 0us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Total liabilities at fair value 0us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Other liabilities [Abstract]    
Derivatives liabilities at fair value 0us-gaap_DerivativeLiabilities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_DerivativeLiabilities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Fannie Mae [Member]    
Liabilities [Abstract]    
Long-term debt 0us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
0us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
Recurring Fair Value Measurements [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Fannie Mae [Member] | Senior Floating [Member]    
Liabilities [Abstract]    
Long-term debt 0us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
/ us-gaap_LongtermDebtTypeAxis
= fnm_SeniorFloatingDebtMember
0us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
/ us-gaap_LongtermDebtTypeAxis
= fnm_SeniorFloatingDebtMember
Recurring Fair Value Measurements [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Fannie Mae [Member] | Senior Fixed [Member]    
Liabilities [Abstract]    
Long-term debt   0us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
/ us-gaap_LongtermDebtTypeAxis
= fnm_SeniorFixedDebtMember
Recurring Fair Value Measurements [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Consolidated Trusts [Member]    
Assets [Abstract]    
Mortgage loans held for investment 0us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Liabilities [Abstract]    
Long-term debt 0us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Recurring Fair Value Measurements [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Swaps [Member]    
Other assets [Abstract]    
Derivatives assets at fair value 0us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_SwapMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_SwapMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Other liabilities [Abstract]    
Derivatives liabilities at fair value 0us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_SwapMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_SwapMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Swaptions [Member]    
Other assets [Abstract]    
Derivatives assets at fair value 0us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_SwaptionMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_SwaptionMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Other liabilities [Abstract]    
Derivatives liabilities at fair value 0us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_SwaptionMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_SwaptionMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other [Member]    
Other assets [Abstract]    
Derivatives assets at fair value 0us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_OtherContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_OtherContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Other liabilities [Abstract]    
Derivatives liabilities at fair value 0us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_OtherContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_OtherContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Netting Adjustment [Member]    
Other assets [Abstract]    
Derivatives assets at fair value 0us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Other liabilities [Abstract]    
Derivatives liabilities at fair value 0us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Mortgage commitment derivatives [Member]    
Other assets [Abstract]    
Derivatives assets at fair value 0us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= fnm_MortgageCommitmentDerivativesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= fnm_MortgageCommitmentDerivativesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Other liabilities [Abstract]    
Derivatives liabilities at fair value 0us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= fnm_MortgageCommitmentDerivativesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= fnm_MortgageCommitmentDerivativesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Fannie Mae [Member]    
Assets [Abstract]    
Trading securities 0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Freddie Mac [Member]    
Assets [Abstract]    
Trading securities 0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Ginnie Mae [Member]    
Assets [Abstract]    
Trading securities 0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_GovernmentNationalMortgageAssociationCertificatesAndObligationsGNMAMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_GovernmentNationalMortgageAssociationCertificatesAndObligationsGNMAMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_GovernmentNationalMortgageAssociationCertificatesAndObligationsGNMAMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_GovernmentNationalMortgageAssociationCertificatesAndObligationsGNMAMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Alt-A private-label securities [Member]    
Assets [Abstract]    
Trading securities 0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Subprime private-label securities [Member]    
Assets [Abstract]    
Trading securities 0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | CMBS [Member]    
Assets [Abstract]    
Trading securities 0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Mortgage revenue bonds [Member]    
Assets [Abstract]    
Trading securities 0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | Other [Member]    
Assets [Abstract]    
Trading securities 0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Quoted Prices in Active Markets for Identical Assets (Level 1) [Member] | U.S. Treasury Securities [Member]    
Assets [Abstract]    
Trading securities 19,466us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USTreasurySecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
16,306us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USTreasurySecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Significant Other Observable Inputs (Level 2) [Member]    
Assets [Abstract]    
Trading securities 9,008us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
11,688us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 15,574us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
19,159us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Total assets at fair value 44,867us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
52,841us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Other assets [Abstract]    
Derivatives assets at fair value 6,489us-gaap_DerivativeAssets
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
10,430us-gaap_DerivativeAssets
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Liabilities [Abstract]    
Long-term debt 24,996us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
14,811us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Total liabilities at fair value 35,667us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
25,545us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Other liabilities [Abstract]    
Derivatives liabilities at fair value 10,671us-gaap_DerivativeLiabilities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
10,734us-gaap_DerivativeLiabilities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Significant Other Observable Inputs (Level 2) [Member] | Fannie Mae [Member]    
Liabilities [Abstract]    
Long-term debt 6,040us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
353us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
Recurring Fair Value Measurements [Member] | Significant Other Observable Inputs (Level 2) [Member] | Fannie Mae [Member] | Senior Floating [Member]    
Liabilities [Abstract]    
Long-term debt 6,040us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
/ us-gaap_LongtermDebtTypeAxis
= fnm_SeniorFloatingDebtMember
0us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
/ us-gaap_LongtermDebtTypeAxis
= fnm_SeniorFloatingDebtMember
Recurring Fair Value Measurements [Member] | Significant Other Observable Inputs (Level 2) [Member] | Fannie Mae [Member] | Senior Fixed [Member]    
Liabilities [Abstract]    
Long-term debt   353us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
/ us-gaap_LongtermDebtTypeAxis
= fnm_SeniorFixedDebtMember
Recurring Fair Value Measurements [Member] | Significant Other Observable Inputs (Level 2) [Member] | Consolidated Trusts [Member]    
Assets [Abstract]    
Mortgage loans held for investment 13,796us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
11,564us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Liabilities [Abstract]    
Long-term debt 18,956us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
14,458us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Recurring Fair Value Measurements [Member] | Significant Other Observable Inputs (Level 2) [Member] | Swaps [Member]    
Other assets [Abstract]    
Derivatives assets at fair value 6,085us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_SwapMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
9,604us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_SwapMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Other liabilities [Abstract]    
Derivatives liabilities at fair value 9,339us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_SwapMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
9,444us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_SwapMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Significant Other Observable Inputs (Level 2) [Member] | Swaptions [Member]    
Other assets [Abstract]    
Derivatives assets at fair value 153us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_SwaptionMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
561us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_SwaptionMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Other liabilities [Abstract]    
Derivatives liabilities at fair value 991us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_SwaptionMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
1,084us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_SwaptionMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other [Member]    
Other assets [Abstract]    
Derivatives assets at fair value 0us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_OtherContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_OtherContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Other liabilities [Abstract]    
Derivatives liabilities at fair value 0us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_OtherContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_OtherContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Significant Other Observable Inputs (Level 2) [Member] | Netting Adjustment [Member]    
Other assets [Abstract]    
Derivatives assets at fair value 0us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Other liabilities [Abstract]    
Derivatives liabilities at fair value 0us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Significant Other Observable Inputs (Level 2) [Member] | Mortgage commitment derivatives [Member]    
Other assets [Abstract]    
Derivatives assets at fair value 251us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= fnm_MortgageCommitmentDerivativesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
265us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= fnm_MortgageCommitmentDerivativesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Other liabilities [Abstract]    
Derivatives liabilities at fair value 341us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= fnm_MortgageCommitmentDerivativesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
206us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= fnm_MortgageCommitmentDerivativesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Significant Other Observable Inputs (Level 2) [Member] | Fannie Mae [Member]    
Assets [Abstract]    
Trading securities 4,635us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
5,828us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 5,639us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
6,566us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Significant Other Observable Inputs (Level 2) [Member] | Freddie Mac [Member]    
Assets [Abstract]    
Trading securities 1,369us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
1,837us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 5,522us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
6,834us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Significant Other Observable Inputs (Level 2) [Member] | Ginnie Mae [Member]    
Assets [Abstract]    
Trading securities 166us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_GovernmentNationalMortgageAssociationCertificatesAndObligationsGNMAMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
407us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_GovernmentNationalMortgageAssociationCertificatesAndObligationsGNMAMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 476us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_GovernmentNationalMortgageAssociationCertificatesAndObligationsGNMAMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
588us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_GovernmentNationalMortgageAssociationCertificatesAndObligationsGNMAMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Significant Other Observable Inputs (Level 2) [Member] | Alt-A private-label securities [Member]    
Assets [Abstract]    
Trading securities 323us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
898us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 2,538us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
3,558us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Significant Other Observable Inputs (Level 2) [Member] | Subprime private-label securities [Member]    
Assets [Abstract]    
Trading securities 0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Significant Other Observable Inputs (Level 2) [Member] | CMBS [Member]    
Assets [Abstract]    
Trading securities 2,515us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
2,718us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 1,397us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
1,606us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Significant Other Observable Inputs (Level 2) [Member] | Mortgage revenue bonds [Member]    
Assets [Abstract]    
Trading securities 0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
3us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Significant Other Observable Inputs (Level 2) [Member] | Other [Member]    
Assets [Abstract]    
Trading securities 0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 2us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
4us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Significant Other Observable Inputs (Level 2) [Member] | U.S. Treasury Securities [Member]    
Assets [Abstract]    
Trading securities 0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USTreasurySecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USTreasurySecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Significant Unobservable Inputs (Level 3) [Member]    
Assets [Abstract]    
Trading securities 3,030us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
2,774us-gaap_TradingSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 15,080us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
19,012us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Total assets at fair value 20,125us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
24,555us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Other assets [Abstract]    
Derivatives assets at fair value 182us-gaap_DerivativeAssets
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
65us-gaap_DerivativeAssets
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Liabilities [Abstract]    
Long-term debt 890us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
1,473us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Total liabilities at fair value 1,027us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
1,578us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Other liabilities [Abstract]    
Derivatives liabilities at fair value 137us-gaap_DerivativeLiabilities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
105us-gaap_DerivativeLiabilities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Significant Unobservable Inputs (Level 3) [Member] | Fannie Mae [Member]    
Liabilities [Abstract]    
Long-term debt 363us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
955us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
Recurring Fair Value Measurements [Member] | Significant Unobservable Inputs (Level 3) [Member] | Fannie Mae [Member] | Senior Floating [Member]    
Liabilities [Abstract]    
Long-term debt 363us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
/ us-gaap_LongtermDebtTypeAxis
= fnm_SeniorFloatingDebtMember
955us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
/ us-gaap_LongtermDebtTypeAxis
= fnm_SeniorFloatingDebtMember
Recurring Fair Value Measurements [Member] | Significant Unobservable Inputs (Level 3) [Member] | Fannie Mae [Member] | Senior Fixed [Member]    
Liabilities [Abstract]    
Long-term debt   0us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
/ us-gaap_LongtermDebtTypeAxis
= fnm_SeniorFixedDebtMember
Recurring Fair Value Measurements [Member] | Significant Unobservable Inputs (Level 3) [Member] | Consolidated Trusts [Member]    
Assets [Abstract]    
Mortgage loans held for investment 1,833us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
2,704us-gaap_LoansReceivableFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Liabilities [Abstract]    
Long-term debt 527us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
518us-gaap_LongTermDebtFairValue
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Recurring Fair Value Measurements [Member] | Significant Unobservable Inputs (Level 3) [Member] | Swaps [Member]    
Other assets [Abstract]    
Derivatives assets at fair value 150us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_SwapMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
36us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_SwapMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Other liabilities [Abstract]    
Derivatives liabilities at fair value 133us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_SwapMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
96us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_SwapMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Significant Unobservable Inputs (Level 3) [Member] | Swaptions [Member]    
Other assets [Abstract]    
Derivatives assets at fair value 0us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_SwaptionMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
1us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_SwaptionMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Other liabilities [Abstract]    
Derivatives liabilities at fair value 0us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_SwaptionMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_SwaptionMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other [Member]    
Other assets [Abstract]    
Derivatives assets at fair value 28us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_OtherContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
28us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_OtherContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Other liabilities [Abstract]    
Derivatives liabilities at fair value 1us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_OtherContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
1us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= us-gaap_OtherContractMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Significant Unobservable Inputs (Level 3) [Member] | Netting Adjustment [Member]    
Other assets [Abstract]    
Derivatives assets at fair value 0us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Other liabilities [Abstract]    
Derivatives liabilities at fair value 0us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= fnm_NettingAdjustmentMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Significant Unobservable Inputs (Level 3) [Member] | Mortgage commitment derivatives [Member]    
Other assets [Abstract]    
Derivatives assets at fair value 4us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= fnm_MortgageCommitmentDerivativesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_DerivativeAssets
/ us-gaap_DerivativeInstrumentRiskAxis
= fnm_MortgageCommitmentDerivativesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Other liabilities [Abstract]    
Derivatives liabilities at fair value 3us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= fnm_MortgageCommitmentDerivativesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
8us-gaap_DerivativeLiabilities
/ us-gaap_DerivativeInstrumentRiskAxis
= fnm_MortgageCommitmentDerivativesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Significant Unobservable Inputs (Level 3) [Member] | Fannie Mae [Member]    
Assets [Abstract]    
Trading securities 305us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
42us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
7us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Significant Unobservable Inputs (Level 3) [Member] | Freddie Mac [Member]    
Assets [Abstract]    
Trading securities 0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
2us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 6us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
8us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Significant Unobservable Inputs (Level 3) [Member] | Ginnie Mae [Member]    
Assets [Abstract]    
Trading securities 0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_GovernmentNationalMortgageAssociationCertificatesAndObligationsGNMAMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_GovernmentNationalMortgageAssociationCertificatesAndObligationsGNMAMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_GovernmentNationalMortgageAssociationCertificatesAndObligationsGNMAMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_GovernmentNationalMortgageAssociationCertificatesAndObligationsGNMAMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Significant Unobservable Inputs (Level 3) [Member] | Alt-A private-label securities [Member]    
Assets [Abstract]    
Trading securities 597us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
618us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 3,140us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
3,791us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Significant Unobservable Inputs (Level 3) [Member] | Subprime private-label securities [Member]    
Assets [Abstract]    
Trading securities 1,307us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
1,448us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 5,240us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
7,068us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Significant Unobservable Inputs (Level 3) [Member] | CMBS [Member]    
Assets [Abstract]    
Trading securities 0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_CommercialMortgageBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Significant Unobservable Inputs (Level 3) [Member] | Mortgage revenue bonds [Member]    
Assets [Abstract]    
Trading securities 722us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
565us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 4,023us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
5,253us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Significant Unobservable Inputs (Level 3) [Member] | Other [Member]    
Assets [Abstract]    
Trading securities 99us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
99us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Available-for-sale securities 2,671us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
2,885us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Recurring Fair Value Measurements [Member] | Significant Unobservable Inputs (Level 3) [Member] | U.S. Treasury Securities [Member]    
Assets [Abstract]    
Trading securities $ 0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USTreasurySecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
$ 0us-gaap_TradingSecurities
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USTreasurySecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember