XML 65 R60.htm IDEA: XBRL DOCUMENT v2.4.1.9
Fair Value Disclosures - Fair Value Measurements, Recurring and Nonrecurring (Details) (USD $)
In Thousands, unless otherwise specified
Mar. 31, 2015
Dec. 31, 2014
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Derivative Asset $ 4,808us-gaap_DerivativeAssets $ 4,177us-gaap_DerivativeAssets
Derivative Liability 46,623us-gaap_DerivativeLiabilities 38,217us-gaap_DerivativeLiabilities
Loans and Leases Receivable, Net Amount 3,533,555us-gaap_LoansAndLeasesReceivableNetReportedAmount 3,520,075us-gaap_LoansAndLeasesReceivableNetReportedAmount
Fair Value, Measurements, Nonrecurring [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Assets, Fair Value Disclosure 6,376us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember
5,973us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember
Loans and Leases Receivable, Net Amount 6,376us-gaap_LoansAndLeasesReceivableNetReportedAmount
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember
5,973us-gaap_LoansAndLeasesReceivableNetReportedAmount
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember
Fair Value, Measurements, Nonrecurring [Member] | Fair Value, Inputs, Level 1 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Assets, Fair Value Disclosure 0us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember
0us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember
Loans and Leases Receivable, Net Amount 0us-gaap_LoansAndLeasesReceivableNetReportedAmount
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember
0us-gaap_LoansAndLeasesReceivableNetReportedAmount
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember
Fair Value, Measurements, Nonrecurring [Member] | Fair Value, Inputs, Level 2 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Assets, Fair Value Disclosure 0us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember
0us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember
Loans and Leases Receivable, Net Amount 0us-gaap_LoansAndLeasesReceivableNetReportedAmount
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember
0us-gaap_LoansAndLeasesReceivableNetReportedAmount
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember
Fair Value, Measurements, Nonrecurring [Member] | Fair Value, Inputs, Level 3 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Assets, Fair Value Disclosure 6,376us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember
5,973us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember
Loans and Leases Receivable, Net Amount 6,376us-gaap_LoansAndLeasesReceivableNetReportedAmount
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember
5,973us-gaap_LoansAndLeasesReceivableNetReportedAmount
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsNonrecurringMember
Fair Value, Measurements, Recurring [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Derivative Asset 4,808us-gaap_DerivativeAssets
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
4,177us-gaap_DerivativeAssets
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Assets, Fair Value Disclosure 7,819,636us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
7,374,178us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Derivative Liability 95,493us-gaap_DerivativeLiabilities
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
84,844us-gaap_DerivativeLiabilities
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Financial and Nonfinancial Liabilities, Fair Value Disclosure 95,493us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
84,844us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 1 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Derivative Asset 0us-gaap_DerivativeAssets
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_DerivativeAssets
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Assets, Fair Value Disclosure 862,649us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
1,050,691us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Derivative Liability 5us-gaap_DerivativeLiabilities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
3us-gaap_DerivativeLiabilities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Financial and Nonfinancial Liabilities, Fair Value Disclosure 5us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
3us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 2 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Derivative Asset 4,808us-gaap_DerivativeAssets
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
4,177us-gaap_DerivativeAssets
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Assets, Fair Value Disclosure 1,241,324us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
851,409us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Derivative Liability 95,488us-gaap_DerivativeLiabilities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
84,841us-gaap_DerivativeLiabilities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Financial and Nonfinancial Liabilities, Fair Value Disclosure 95,488us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
84,841us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 3 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Derivative Asset 0us-gaap_DerivativeAssets
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_DerivativeAssets
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Assets, Fair Value Disclosure 5,715,663us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
5,472,078us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Derivative Liability 0us-gaap_DerivativeLiabilities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_DerivativeLiabilities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Financial and Nonfinancial Liabilities, Fair Value Disclosure 0us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Farmer Mac Guaranteed Securities [Member] | Available-for-sale Securities [Member] | Institutional Credit [Member] | Fair Value, Measurements, Recurring [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 3,818,704us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentSponsoredEnterprisesDebtSecuritiesMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_StatementBusinessSegmentsAxis
= agm_InstitutionalCreditMemberMember
3,631,662us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentSponsoredEnterprisesDebtSecuritiesMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_StatementBusinessSegmentsAxis
= agm_InstitutionalCreditMemberMember
Farmer Mac Guaranteed Securities [Member] | Available-for-sale Securities [Member] | Institutional Credit [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 1 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentSponsoredEnterprisesDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_StatementBusinessSegmentsAxis
= agm_InstitutionalCreditMemberMember
0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentSponsoredEnterprisesDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_StatementBusinessSegmentsAxis
= agm_InstitutionalCreditMemberMember
Farmer Mac Guaranteed Securities [Member] | Available-for-sale Securities [Member] | Institutional Credit [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 2 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentSponsoredEnterprisesDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_StatementBusinessSegmentsAxis
= agm_InstitutionalCreditMemberMember
0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentSponsoredEnterprisesDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_StatementBusinessSegmentsAxis
= agm_InstitutionalCreditMemberMember
Farmer Mac Guaranteed Securities [Member] | Available-for-sale Securities [Member] | Institutional Credit [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 3 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 3,818,704us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentSponsoredEnterprisesDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_StatementBusinessSegmentsAxis
= agm_InstitutionalCreditMemberMember
3,631,662us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentSponsoredEnterprisesDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_StatementBusinessSegmentsAxis
= agm_InstitutionalCreditMemberMember
Farmer Mac Guaranteed Securities [Member] | Available-for-sale Securities [Member] | USDA Guarantees [Member] | Fair Value, Measurements, Recurring [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 23,505us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentSponsoredEnterprisesDebtSecuritiesMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_StatementBusinessSegmentsAxis
= agm_USDAGuaranteesMember
27,619us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentSponsoredEnterprisesDebtSecuritiesMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_StatementBusinessSegmentsAxis
= agm_USDAGuaranteesMember
Farmer Mac Guaranteed Securities [Member] | Available-for-sale Securities [Member] | USDA Guarantees [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 1 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentSponsoredEnterprisesDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_StatementBusinessSegmentsAxis
= agm_USDAGuaranteesMember
0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentSponsoredEnterprisesDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_StatementBusinessSegmentsAxis
= agm_USDAGuaranteesMember
Farmer Mac Guaranteed Securities [Member] | Available-for-sale Securities [Member] | USDA Guarantees [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 2 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentSponsoredEnterprisesDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_StatementBusinessSegmentsAxis
= agm_USDAGuaranteesMember
0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentSponsoredEnterprisesDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_StatementBusinessSegmentsAxis
= agm_USDAGuaranteesMember
Farmer Mac Guaranteed Securities [Member] | Available-for-sale Securities [Member] | USDA Guarantees [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 3 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 23,505us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentSponsoredEnterprisesDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_StatementBusinessSegmentsAxis
= agm_USDAGuaranteesMember
27,619us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentSponsoredEnterprisesDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_StatementBusinessSegmentsAxis
= agm_USDAGuaranteesMember
Farmer Mac Guaranteed Securities and USDA Securities [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member]
   
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 3,842,209us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
3,659,281us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
Farmer Mac Guaranteed Securities and USDA Securities [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 1 [Member]
   
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
Farmer Mac Guaranteed Securities and USDA Securities [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 2 [Member]
   
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
Farmer Mac Guaranteed Securities and USDA Securities [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 3 [Member]
   
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 3,842,209us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
3,659,281us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
Investment Securities [Member] | Fair Value, Measurements, Recurring [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 2,140,182us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
1,939,188us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Investment Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 1 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 862,649us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
1,050,691us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Investment Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 2 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 1,236,516us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
847,232us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Investment Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 3 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 41,017us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
41,265us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Investment Securities [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 2,139,544us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
1,938,499us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
Investment Securities [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 1 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 862,649us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
1,050,691us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
Investment Securities [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 2 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 1,236,516us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
847,232us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
Investment Securities [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 3 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 40,379us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
40,576us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
Investment Securities [Member] | Trading Securities [Member] | Fair Value, Measurements, Recurring [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 638us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_TradingAccountAssetsMember
689us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_TradingAccountAssetsMember
Investment Securities [Member] | Trading Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 1 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_TradingAccountAssetsMember
0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_TradingAccountAssetsMember
Investment Securities [Member] | Trading Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 2 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_TradingAccountAssetsMember
0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_TradingAccountAssetsMember
Investment Securities [Member] | Trading Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 3 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 638us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_TradingAccountAssetsMember
689us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_TradingAccountAssetsMember
USDA Securities [Member] | Fair Value, Measurements, Recurring [Member]
   
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 1,832,437us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
1,771,532us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
USDA Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 1 [Member]
   
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
USDA Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 2 [Member]
   
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
USDA Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 3 [Member]
   
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 1,832,437us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
1,771,532us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
USDA Securities [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member]
   
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 1,794,844us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
1,731,222us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
USDA Securities [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 1 [Member]
   
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
USDA Securities [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 2 [Member]
   
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
USDA Securities [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 3 [Member]
   
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 1,794,844us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
1,731,222us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
USDA Securities [Member] | Trading Securities [Member] | Fair Value, Measurements, Recurring [Member]
   
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 37,593us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_TradingAccountAssetsMember
40,310us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_TradingAccountAssetsMember
USDA Securities [Member] | Trading Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 1 [Member]
   
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_TradingAccountAssetsMember
0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_TradingAccountAssetsMember
USDA Securities [Member] | Trading Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 2 [Member]
   
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_TradingAccountAssetsMember
0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_TradingAccountAssetsMember
USDA Securities [Member] | Trading Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 3 [Member]
   
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 37,593us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_TradingAccountAssetsMember
40,310us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_TradingAccountAssetsMember
Floating Interest Rate [Member] | Floating rate auction-rate certificates backed by Government guaranteed student loans | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 40,379us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_AuctionRateSecuritiesMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
40,576us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_AuctionRateSecuritiesMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
Floating Interest Rate [Member] | Floating rate auction-rate certificates backed by Government guaranteed student loans | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 1 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_AuctionRateSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_AuctionRateSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
Floating Interest Rate [Member] | Floating rate auction-rate certificates backed by Government guaranteed student loans | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 2 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_AuctionRateSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_AuctionRateSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
Floating Interest Rate [Member] | Floating rate auction-rate certificates backed by Government guaranteed student loans | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 3 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 40,379us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_AuctionRateSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
40,576us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_AuctionRateSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
Floating Interest Rate [Member] | Asset-backed Securities [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 100,132us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
100,902us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
Floating Interest Rate [Member] | Asset-backed Securities [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 1 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
Floating Interest Rate [Member] | Asset-backed Securities [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 2 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 100,132us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
100,902us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
Floating Interest Rate [Member] | Asset-backed Securities [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 3 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
Floating Interest Rate [Member] | Asset-backed Securities [Member] | Trading Securities [Member] | Fair Value, Measurements, Recurring [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 638us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_TradingAccountAssetsMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
689us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_TradingAccountAssetsMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
Floating Interest Rate [Member] | Asset-backed Securities [Member] | Trading Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 1 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_TradingAccountAssetsMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_TradingAccountAssetsMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
Floating Interest Rate [Member] | Asset-backed Securities [Member] | Trading Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 2 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_TradingAccountAssetsMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_TradingAccountAssetsMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
Floating Interest Rate [Member] | Asset-backed Securities [Member] | Trading Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 3 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 638us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_TradingAccountAssetsMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
689us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_TradingAccountAssetsMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
Floating Interest Rate [Member] | Corporate Debt Securities [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 10,085us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
10,091us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
Floating Interest Rate [Member] | Corporate Debt Securities [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 1 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
Floating Interest Rate [Member] | Corporate Debt Securities [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 2 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 10,085us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
10,091us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
Floating Interest Rate [Member] | Corporate Debt Securities [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 3 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
Floating Interest Rate [Member] | Government/GSE Guaranteed Mortgage Backed Securities [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 734,572us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
612,753us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
Floating Interest Rate [Member] | Government/GSE Guaranteed Mortgage Backed Securities [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 1 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
Floating Interest Rate [Member] | Government/GSE Guaranteed Mortgage Backed Securities [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 2 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 734,572us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
612,753us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
Floating Interest Rate [Member] | Government/GSE Guaranteed Mortgage Backed Securities [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 3 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
Floating Interest Rate [Member] | GSE Subordinated Debt [Member} | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 65,841us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_SubordinatedDebtMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
66,320us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_SubordinatedDebtMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
Floating Interest Rate [Member] | GSE Subordinated Debt [Member} | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 1 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_SubordinatedDebtMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_SubordinatedDebtMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
Floating Interest Rate [Member] | GSE Subordinated Debt [Member} | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 2 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 65,841us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_SubordinatedDebtMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
66,320us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_SubordinatedDebtMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
Floating Interest Rate [Member] | GSE Subordinated Debt [Member} | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 3 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_SubordinatedDebtMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_SubordinatedDebtMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
Floating Interest Rate [Member] | Senior Agency Debt [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 297,727us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
18,939us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
Floating Interest Rate [Member] | Senior Agency Debt [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 1 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
Floating Interest Rate [Member] | Senior Agency Debt [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 2 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 297,727us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
18,939us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
Floating Interest Rate [Member] | Senior Agency Debt [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 3 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
Floating Interest Rate [Member] | US Treasury Securities [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure   74,979us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USTreasurySecuritiesMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
Floating Interest Rate [Member] | US Treasury Securities [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 1 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure   74,979us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USTreasurySecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
Floating Interest Rate [Member] | US Treasury Securities [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 2 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure   0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USTreasurySecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
Floating Interest Rate [Member] | US Treasury Securities [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 3 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure   0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USTreasurySecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FloatingInterestRateMember
Fixed Interest Rate [Member] | Corporate Debt Securities [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 20,030us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FixedInterestRateMember
30,025us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FixedInterestRateMember
Fixed Interest Rate [Member] | Corporate Debt Securities [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 1 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FixedInterestRateMember
0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FixedInterestRateMember
Fixed Interest Rate [Member] | Corporate Debt Securities [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 2 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 20,030us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FixedInterestRateMember
30,025us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FixedInterestRateMember
Fixed Interest Rate [Member] | Corporate Debt Securities [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 3 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FixedInterestRateMember
0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FixedInterestRateMember
Fixed Interest Rate [Member] | Government/GSE Guaranteed Mortgage Backed Securities [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 8,129us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FixedInterestRateMember
8,202us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FixedInterestRateMember
Fixed Interest Rate [Member] | Government/GSE Guaranteed Mortgage Backed Securities [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 1 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FixedInterestRateMember
0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FixedInterestRateMember
Fixed Interest Rate [Member] | Government/GSE Guaranteed Mortgage Backed Securities [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 2 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 8,129us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FixedInterestRateMember
8,202us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FixedInterestRateMember
Fixed Interest Rate [Member] | Government/GSE Guaranteed Mortgage Backed Securities [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 3 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FixedInterestRateMember
0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_MortgageBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FixedInterestRateMember
Fixed Interest Rate [Member] | US Treasury Securities [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 862,649us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USTreasurySecuritiesMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FixedInterestRateMember
975,712us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USTreasurySecuritiesMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FixedInterestRateMember
Fixed Interest Rate [Member] | US Treasury Securities [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 1 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 862,649us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USTreasurySecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FixedInterestRateMember
975,712us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USTreasurySecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FixedInterestRateMember
Fixed Interest Rate [Member] | US Treasury Securities [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 2 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USTreasurySecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FixedInterestRateMember
0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USTreasurySecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FixedInterestRateMember
Fixed Interest Rate [Member] | US Treasury Securities [Member] | Available-for-sale Securities [Member] | Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 3 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Investments, Fair Value Disclosure $ 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USTreasurySecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FixedInterestRateMember
$ 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_FairValueByAssetClassAxis
= us-gaap_USTreasurySecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_GainLossOnInvestmentsByCategoryAxis
= us-gaap_AvailableforsaleSecuritiesMember
/ us-gaap_ProductOrServiceAxis
= agm_FixedInterestRateMember