XML 105 R88.htm IDEA: XBRL DOCUMENT v2.4.1.9
Fair Value Level 3 Rollforward (Details) (USD $)
In Millions, unless otherwise specified
3 Months Ended
Mar. 31, 2015
Mar. 31, 2014
Trading Securities [Member]    
Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward]    
Beginning Balance $ 3,030us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
$ 2,774us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Total (losses) or gains (realized/unrealized) Included in Net Income 15us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
139us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Total (Losses) or gains (realized/unrealized) Included in Other Comprehensive Income 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Purchases 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Sales (410)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Issues 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Settlements (57)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
(95)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Transfers out of Level 3 (322)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
(117)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Transfers into Level 3 30us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
110us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Ending Balance 2,286us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
2,811us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Net unrealized (losses) gains included in net income related to assets and liabilities still held at period end 127us-gaap_FairValueAssetsMeasuredOnRecurringBasisChangeInUnrealizedGainLoss
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
138us-gaap_FairValueAssetsMeasuredOnRecurringBasisChangeInUnrealizedGainLoss
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Trading Securities [Member] | Fannie Mae [Member]    
Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward]    
Beginning Balance 305us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
42us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Total (losses) or gains (realized/unrealized) Included in Net Income (27)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
(1)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Total (Losses) or gains (realized/unrealized) Included in Other Comprehensive Income 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Purchases 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Sales 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Issues 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Settlements 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
(2)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Transfers out of Level 3 (278)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
(39)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Transfers into Level 3 2us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Ending Balance 2us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Net unrealized (losses) gains included in net income related to assets and liabilities still held at period end (19)us-gaap_FairValueAssetsMeasuredOnRecurringBasisChangeInUnrealizedGainLoss
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
0us-gaap_FairValueAssetsMeasuredOnRecurringBasisChangeInUnrealizedGainLoss
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Trading Securities [Member] | Freddie Mac [Member]    
Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward]    
Beginning Balance   2us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Total (losses) or gains (realized/unrealized) Included in Net Income   0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Total (Losses) or gains (realized/unrealized) Included in Other Comprehensive Income   0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Purchases   0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Sales   0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Issues   0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Settlements   0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Transfers out of Level 3   (2)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Transfers into Level 3   0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Ending Balance   0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Net unrealized (losses) gains included in net income related to assets and liabilities still held at period end   0us-gaap_FairValueAssetsMeasuredOnRecurringBasisChangeInUnrealizedGainLoss
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Trading Securities [Member] | Alt-A private-label securities [Member]    
Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward]    
Beginning Balance 597us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
618us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Total (losses) or gains (realized/unrealized) Included in Net Income 8us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
19us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Total (Losses) or gains (realized/unrealized) Included in Other Comprehensive Income 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Purchases 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Sales 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Issues 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Settlements (17)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
(16)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Transfers out of Level 3 (44)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
(76)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Transfers into Level 3 28us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
110us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Ending Balance 572us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
655us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Net unrealized (losses) gains included in net income related to assets and liabilities still held at period end 8us-gaap_FairValueAssetsMeasuredOnRecurringBasisChangeInUnrealizedGainLoss
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
17us-gaap_FairValueAssetsMeasuredOnRecurringBasisChangeInUnrealizedGainLoss
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Trading Securities [Member] | Subprime private-label securities [Member]    
Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward]    
Beginning Balance 1,307us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
1,448us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Total (losses) or gains (realized/unrealized) Included in Net Income 1us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
76us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Total (Losses) or gains (realized/unrealized) Included in Other Comprehensive Income 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Purchases 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Sales (398)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Issues 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Settlements (34)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
(71)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Transfers out of Level 3 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Transfers into Level 3 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Ending Balance 876us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
1,453us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Net unrealized (losses) gains included in net income related to assets and liabilities still held at period end 107us-gaap_FairValueAssetsMeasuredOnRecurringBasisChangeInUnrealizedGainLoss
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
76us-gaap_FairValueAssetsMeasuredOnRecurringBasisChangeInUnrealizedGainLoss
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Trading Securities [Member] | Mortgage revenue bonds [Member]    
Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward]    
Beginning Balance 722us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
565us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Total (losses) or gains (realized/unrealized) Included in Net Income 35us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
40us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Total (Losses) or gains (realized/unrealized) Included in Other Comprehensive Income 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Purchases 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Sales (12)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Issues 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Settlements (3)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
(4)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Transfers out of Level 3 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Transfers into Level 3 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Ending Balance 742us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
601us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Net unrealized (losses) gains included in net income related to assets and liabilities still held at period end 33us-gaap_FairValueAssetsMeasuredOnRecurringBasisChangeInUnrealizedGainLoss
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
40us-gaap_FairValueAssetsMeasuredOnRecurringBasisChangeInUnrealizedGainLoss
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Trading Securities [Member] | Other [Member]    
Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward]    
Beginning Balance 99us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
99us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Total (losses) or gains (realized/unrealized) Included in Net Income (2)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
5us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Total (Losses) or gains (realized/unrealized) Included in Other Comprehensive Income 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Purchases 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Sales 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Issues 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Settlements (3)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
(2)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Transfers out of Level 3 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Transfers into Level 3 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Ending Balance 94us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
102us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Net unrealized (losses) gains included in net income related to assets and liabilities still held at period end (2)us-gaap_FairValueAssetsMeasuredOnRecurringBasisChangeInUnrealizedGainLoss
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
5us-gaap_FairValueAssetsMeasuredOnRecurringBasisChangeInUnrealizedGainLoss
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_TradingAccountAssetsMember
Available-for-sale securities [Member]    
Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward]    
Beginning Balance 15,080us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
19,012us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Total (losses) or gains (realized/unrealized) Included in Net Income 166us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
29us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Total (Losses) or gains (realized/unrealized) Included in Other Comprehensive Income 13us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
526us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Purchases 239us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Sales (1,317)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
(19)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Issues 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Settlements (712)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
(864)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Transfers out of Level 3 (311)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
(611)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Transfers into Level 3 313us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
390us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Ending Balance 13,471us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
18,463us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Net unrealized (losses) gains included in net income related to assets and liabilities still held at period end 0us-gaap_FairValueAssetsMeasuredOnRecurringBasisChangeInUnrealizedGainLoss
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_FairValueAssetsMeasuredOnRecurringBasisChangeInUnrealizedGainLoss
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Available-for-sale securities [Member] | Fannie Mae [Member]    
Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward]    
Beginning Balance 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
7us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Total (losses) or gains (realized/unrealized) Included in Net Income 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Total (Losses) or gains (realized/unrealized) Included in Other Comprehensive Income 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Purchases 239us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Sales (34)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Issues 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Settlements 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Transfers out of Level 3 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
(2)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Transfers into Level 3 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Ending Balance 205us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
5us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Net unrealized (losses) gains included in net income related to assets and liabilities still held at period end 0us-gaap_FairValueAssetsMeasuredOnRecurringBasisChangeInUnrealizedGainLoss
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_FairValueAssetsMeasuredOnRecurringBasisChangeInUnrealizedGainLoss
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalNationalMortgageAssociationCertificatesAndObligationsFNMAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Available-for-sale securities [Member] | Freddie Mac [Member]    
Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward]    
Beginning Balance 6us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
8us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Total (losses) or gains (realized/unrealized) Included in Net Income 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Total (Losses) or gains (realized/unrealized) Included in Other Comprehensive Income 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Purchases 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Sales 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Issues 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Settlements 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Transfers out of Level 3 (1)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Transfers into Level 3 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Ending Balance 5us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
8us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Net unrealized (losses) gains included in net income related to assets and liabilities still held at period end 0us-gaap_FairValueAssetsMeasuredOnRecurringBasisChangeInUnrealizedGainLoss
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_FairValueAssetsMeasuredOnRecurringBasisChangeInUnrealizedGainLoss
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_FederalHomeLoanMortgageCorporationCertificatesAndObligationsFHLMCMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Available-for-sale securities [Member] | Alt-A private-label securities [Member]    
Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward]    
Beginning Balance 3,140us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
3,791us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Total (losses) or gains (realized/unrealized) Included in Net Income 101us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
13us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Total (Losses) or gains (realized/unrealized) Included in Other Comprehensive Income (78)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
73us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Purchases 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Sales (556)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Issues 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Settlements (124)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
(88)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Transfers out of Level 3 (310)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
(609)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Transfers into Level 3 313us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
390us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Ending Balance 2,486us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
3,570us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Net unrealized (losses) gains included in net income related to assets and liabilities still held at period end 0us-gaap_FairValueAssetsMeasuredOnRecurringBasisChangeInUnrealizedGainLoss
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_FairValueAssetsMeasuredOnRecurringBasisChangeInUnrealizedGainLoss
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesAltAMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Available-for-sale securities [Member] | Subprime private-label securities [Member]    
Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward]    
Beginning Balance 5,240us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
7,068us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Total (losses) or gains (realized/unrealized) Included in Net Income 180us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
33us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Total (Losses) or gains (realized/unrealized) Included in Other Comprehensive Income (101)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
219us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Purchases 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Sales (565)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Issues 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Settlements (146)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
(290)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Transfers out of Level 3 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Transfers into Level 3 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Ending Balance 4,608us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
7,030us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Net unrealized (losses) gains included in net income related to assets and liabilities still held at period end 0us-gaap_FairValueAssetsMeasuredOnRecurringBasisChangeInUnrealizedGainLoss
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_FairValueAssetsMeasuredOnRecurringBasisChangeInUnrealizedGainLoss
/ us-gaap_FairValueByAssetClassAxis
= fnm_MortgageBackedSecuritiesIssuedByPrivateEnterprisesSubprimeMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Available-for-sale securities [Member] | Mortgage revenue bonds [Member]    
Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward]    
Beginning Balance 4,023us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
5,253us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Total (losses) or gains (realized/unrealized) Included in Net Income 23us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
(20)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Total (Losses) or gains (realized/unrealized) Included in Other Comprehensive Income 52us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
193us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Purchases 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Sales (162)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
(19)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Issues 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Settlements (376)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
(401)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Transfers out of Level 3 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Transfers into Level 3 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Ending Balance 3,560us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
5,006us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Net unrealized (losses) gains included in net income related to assets and liabilities still held at period end 0us-gaap_FairValueAssetsMeasuredOnRecurringBasisChangeInUnrealizedGainLoss
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_FairValueAssetsMeasuredOnRecurringBasisChangeInUnrealizedGainLoss
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USStatesAndPoliticalSubdivisionsMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Available-for-sale securities [Member] | Other [Member]    
Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward]    
Beginning Balance 2,671us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
2,885us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Total (losses) or gains (realized/unrealized) Included in Net Income (138)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
3us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Total (Losses) or gains (realized/unrealized) Included in Other Comprehensive Income 140us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
41us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Purchases 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Sales 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Issues 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Settlements (66)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
(85)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Transfers out of Level 3 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Transfers into Level 3 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Ending Balance 2,607us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
2,844us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Net unrealized (losses) gains included in net income related to assets and liabilities still held at period end 0us-gaap_FairValueAssetsMeasuredOnRecurringBasisChangeInUnrealizedGainLoss
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_FairValueAssetsMeasuredOnRecurringBasisChangeInUnrealizedGainLoss
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesOtherMember
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_AvailableforsaleSecuritiesMember
Mortgage Loans [Member] | Consolidated Trusts [Member]    
Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward]    
Beginning Balance 1,833us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_MortgageLoansOnRealEstateMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
2,704us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_MortgageLoansOnRealEstateMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Total (losses) or gains (realized/unrealized) Included in Net Income 34us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_MortgageLoansOnRealEstateMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
25us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_MortgageLoansOnRealEstateMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Total (Losses) or gains (realized/unrealized) Included in Other Comprehensive Income 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_MortgageLoansOnRealEstateMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_MortgageLoansOnRealEstateMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Purchases 3us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_MortgageLoansOnRealEstateMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
24us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_MortgageLoansOnRealEstateMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Sales 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_MortgageLoansOnRealEstateMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_MortgageLoansOnRealEstateMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Issues 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_MortgageLoansOnRealEstateMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_MortgageLoansOnRealEstateMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Settlements (77)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_MortgageLoansOnRealEstateMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
(81)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_MortgageLoansOnRealEstateMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Transfers out of Level 3 (57)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_MortgageLoansOnRealEstateMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
(148)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_MortgageLoansOnRealEstateMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Transfers into Level 3 74us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_MortgageLoansOnRealEstateMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
84us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_MortgageLoansOnRealEstateMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Ending Balance 1,810us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_MortgageLoansOnRealEstateMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
2,608us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_MortgageLoansOnRealEstateMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Net unrealized (losses) gains included in net income related to assets and liabilities still held at period end 19us-gaap_FairValueAssetsMeasuredOnRecurringBasisChangeInUnrealizedGainLoss
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_MortgageLoansOnRealEstateMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
11us-gaap_FairValueAssetsMeasuredOnRecurringBasisChangeInUnrealizedGainLoss
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_MortgageLoansOnRealEstateMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Net derivatives [Member]    
Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward]    
Beginning Balance 45us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_DerivativeMember
(40)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_DerivativeMember
Total (losses) or gains (realized/unrealized) Included in Net Income 27us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_DerivativeMember
30us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_DerivativeMember
Total (Losses) or gains (realized/unrealized) Included in Other Comprehensive Income 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_DerivativeMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_DerivativeMember
Purchases 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_DerivativeMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_DerivativeMember
Sales 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_DerivativeMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSales
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_DerivativeMember
Issues 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_DerivativeMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetIssues
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_DerivativeMember
Settlements (6)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_DerivativeMember
(12)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_DerivativeMember
Transfers out of Level 3 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_DerivativeMember
(1)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_DerivativeMember
Transfers into Level 3 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_DerivativeMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_DerivativeMember
Ending Balance 66us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_DerivativeMember
(23)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_DerivativeMember
Net unrealized (losses) gains included in net income related to assets and liabilities still held at period end 39us-gaap_FairValueAssetsMeasuredOnRecurringBasisChangeInUnrealizedGainLoss
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_DerivativeMember
11us-gaap_FairValueAssetsMeasuredOnRecurringBasisChangeInUnrealizedGainLoss
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_DerivativeMember
Long-term debt [Member]    
Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward]    
Beginning Balance (890)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
(1,473)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
Total (Losses) Gains (Realized/Unrealized) Included in Net Loss (41)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
(91)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
Total Gains or (Losses) Included in Other Comprehensive Income (Loss) 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInOtherComprehensiveIncome
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInOtherComprehensiveIncome
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
Purchases 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
Sales 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySales
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySales
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
Issues 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
(750)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
Settlements 9us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
38us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
Transfers out of Level 3 50us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationLiabilityTransfersOutOfLevel3
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
1,484us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationLiabilityTransfersOutOfLevel3
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
Transfers into Level 3 (66)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationLiabilityTransfersIntoLevel3
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
(24)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationLiabilityTransfersIntoLevel3
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
Ending Balance (938)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
(816)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
Net Unrealized (Loss) Gain Included in Net Loss Related to Liabilities Still Held at period end (40)us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisChangeInUnrealizedGainLoss
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
(45)us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisChangeInUnrealizedGainLoss
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
Long-term debt [Member] | Consolidated Trusts [Member]    
Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward]    
Beginning Balance (527)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
(518)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Total (Losses) Gains (Realized/Unrealized) Included in Net Loss (13)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
(1)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Total Gains or (Losses) Included in Other Comprehensive Income (Loss) 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInOtherComprehensiveIncome
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInOtherComprehensiveIncome
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Purchases 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Sales 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySales
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySales
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Issues 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Settlements 9us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
18us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Transfers out of Level 3 50us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationLiabilityTransfersOutOfLevel3
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
19us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationLiabilityTransfersOutOfLevel3
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Transfers into Level 3 (66)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationLiabilityTransfersIntoLevel3
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
(24)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationLiabilityTransfersIntoLevel3
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Ending Balance (547)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
(506)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Net Unrealized (Loss) Gain Included in Net Loss Related to Liabilities Still Held at period end (12)us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisChangeInUnrealizedGainLoss
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
(1)us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisChangeInUnrealizedGainLoss
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_VariableInterestEntityPrimaryBeneficiaryMember
Long-term debt [Member] | Senior Floating [Member] | Fannie Mae [Member]    
Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward]    
Beginning Balance (363)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
/ us-gaap_LongtermDebtTypeAxis
= fnm_SeniorFloatingDebtMember
(955)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
/ us-gaap_LongtermDebtTypeAxis
= fnm_SeniorFloatingDebtMember
Total (Losses) Gains (Realized/Unrealized) Included in Net Loss (28)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
/ us-gaap_LongtermDebtTypeAxis
= fnm_SeniorFloatingDebtMember
(90)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
/ us-gaap_LongtermDebtTypeAxis
= fnm_SeniorFloatingDebtMember
Total Gains or (Losses) Included in Other Comprehensive Income (Loss) 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInOtherComprehensiveIncome
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
/ us-gaap_LongtermDebtTypeAxis
= fnm_SeniorFloatingDebtMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInOtherComprehensiveIncome
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
/ us-gaap_LongtermDebtTypeAxis
= fnm_SeniorFloatingDebtMember
Purchases 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
/ us-gaap_LongtermDebtTypeAxis
= fnm_SeniorFloatingDebtMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
/ us-gaap_LongtermDebtTypeAxis
= fnm_SeniorFloatingDebtMember
Sales 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySales
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
/ us-gaap_LongtermDebtTypeAxis
= fnm_SeniorFloatingDebtMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySales
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
/ us-gaap_LongtermDebtTypeAxis
= fnm_SeniorFloatingDebtMember
Issues 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
/ us-gaap_LongtermDebtTypeAxis
= fnm_SeniorFloatingDebtMember
(750)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
/ us-gaap_LongtermDebtTypeAxis
= fnm_SeniorFloatingDebtMember
Settlements 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
/ us-gaap_LongtermDebtTypeAxis
= fnm_SeniorFloatingDebtMember
20us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
/ us-gaap_LongtermDebtTypeAxis
= fnm_SeniorFloatingDebtMember
Transfers out of Level 3 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationLiabilityTransfersOutOfLevel3
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
/ us-gaap_LongtermDebtTypeAxis
= fnm_SeniorFloatingDebtMember
1,465us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationLiabilityTransfersOutOfLevel3
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
/ us-gaap_LongtermDebtTypeAxis
= fnm_SeniorFloatingDebtMember
Transfers into Level 3 0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationLiabilityTransfersIntoLevel3
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
/ us-gaap_LongtermDebtTypeAxis
= fnm_SeniorFloatingDebtMember
0us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationLiabilityTransfersIntoLevel3
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
/ us-gaap_LongtermDebtTypeAxis
= fnm_SeniorFloatingDebtMember
Ending Balance (391)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
/ us-gaap_LongtermDebtTypeAxis
= fnm_SeniorFloatingDebtMember
(310)us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
/ us-gaap_LongtermDebtTypeAxis
= fnm_SeniorFloatingDebtMember
Net Unrealized (Loss) Gain Included in Net Loss Related to Liabilities Still Held at period end $ (28)us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisChangeInUnrealizedGainLoss
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
/ us-gaap_LongtermDebtTypeAxis
= fnm_SeniorFloatingDebtMember
$ (44)us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisChangeInUnrealizedGainLoss
/ fnm_FairValueItemPrimaryCategorizationAxis
= us-gaap_LongTermDebtMember
/ dei_LegalEntityAxis
= us-gaap_ParentCompanyMember
/ us-gaap_LongtermDebtTypeAxis
= fnm_SeniorFloatingDebtMember