XML 26 R52.htm IDEA: XBRL DOCUMENT v2.4.1.9
Loans and Allowance for Losses and Concentrations of Credit Risk - Financing Receivables Credit Quality Indicators (Details) (USD $)
In Thousands, unless otherwise specified
Mar. 31, 2015
Dec. 31, 2014
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross $ 5,347,248us-gaap_NotesReceivableGross [1],[2] $ 5,417,174us-gaap_NotesReceivableGross [1],[2]
Financing Receivable, Recorded Investment, Equal to Greater than 90 Days Past Due 32,101us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue [1] 18,917us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue [3]
Pass [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 5,115,357us-gaap_NotesReceivableGross
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1] 5,172,691us-gaap_NotesReceivableGross
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1]
Special Mention [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 95,195us-gaap_NotesReceivableGross
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4] 111,888us-gaap_NotesReceivableGross
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4]
Substandard [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 136,696us-gaap_NotesReceivableGross
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5] 132,595us-gaap_NotesReceivableGross
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5]
On-balance sheet [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 2,570,912us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
[1] 2,540,222us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
[1]
Financing Receivable, Recorded Investment, Equal to Greater than 90 Days Past Due 30,151us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
[1] 18,427us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
[3]
On-balance sheet [Member] | Pass [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 2,449,530us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1] 2,419,285us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1]
On-balance sheet [Member] | Special Mention [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 46,655us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4] 54,495us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4]
On-balance sheet [Member] | Substandard [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 74,727us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5] 66,442us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5]
Off-balance sheet [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 2,776,336us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
[1] 2,876,952us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
[1]
Financing Receivable, Recorded Investment, Equal to Greater than 90 Days Past Due 1,950us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
[1] 490us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
[3]
Off-balance sheet [Member] | Pass [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 2,665,827us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1] 2,753,406us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1]
Off-balance sheet [Member] | Special Mention [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 48,540us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4] 57,393us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4]
Off-balance sheet [Member] | Substandard [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 61,969us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5] 66,153us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5]
Crops [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 2,928,976us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_CropsMember
[1] 2,941,266us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_CropsMember
[1]
Financing Receivable, Recorded Investment, Equal to Greater than 90 Days Past Due 3,817us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ agm_CommodityByTypeAxis
= agm_CropsMember
[1] 4,175us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ agm_CommodityByTypeAxis
= agm_CropsMember
[3]
Crops [Member] | Pass [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 2,872,721us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_CropsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1] 2,887,319us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_CropsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1]
Crops [Member] | Special Mention [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 27,005us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_CropsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4] 30,417us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_CropsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4]
Crops [Member] | Substandard [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 29,250us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_CropsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5] 23,530us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_CropsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5]
Crops [Member] | On-balance sheet [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 1,661,202us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_CropsMember
[1] 1,633,667us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_CropsMember
[1]
Financing Receivable, Recorded Investment, Equal to Greater than 90 Days Past Due 2,406us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_CropsMember
[1] 4,175us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_CropsMember
[3]
Crops [Member] | On-balance sheet [Member] | Pass [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 1,629,509us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_CropsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1] 1,604,546us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_CropsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1]
Crops [Member] | On-balance sheet [Member] | Special Mention [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 12,987us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_CropsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4] 16,814us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_CropsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4]
Crops [Member] | On-balance sheet [Member] | Substandard [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 18,706us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_CropsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5] 12,307us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_CropsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5]
Crops [Member] | Off-balance sheet [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 1,267,774us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_CropsMember
[1] 1,307,599us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_CropsMember
[1]
Financing Receivable, Recorded Investment, Equal to Greater than 90 Days Past Due 1,411us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_CropsMember
[1] 0us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_CropsMember
[3]
Crops [Member] | Off-balance sheet [Member] | Pass [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 1,243,212us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_CropsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1] 1,282,773us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_CropsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1]
Crops [Member] | Off-balance sheet [Member] | Special Mention [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 14,018us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_CropsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4] 13,603us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_CropsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4]
Crops [Member] | Off-balance sheet [Member] | Substandard [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 10,544us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_CropsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5] 11,223us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_CropsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5]
Permanent Plantings [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 909,088us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
[1] 920,195us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
[1]
Financing Receivable, Recorded Investment, Equal to Greater than 90 Days Past Due 21,967us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
[1] 6,869us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
[3]
Permanent Plantings [Member] | Pass [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 846,402us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1] 856,901us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1]
Permanent Plantings [Member] | Special Mention [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 15,814us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4] 18,180us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4]
Permanent Plantings [Member] | Substandard [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 46,872us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5] 45,114us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5]
Permanent Plantings [Member] | On-balance sheet [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 405,410us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
[1] 395,421us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
[1]
Financing Receivable, Recorded Investment, Equal to Greater than 90 Days Past Due 21,967us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
[1] 6,869us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
[3]
Permanent Plantings [Member] | On-balance sheet [Member] | Pass [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 361,875us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1] 353,487us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1]
Permanent Plantings [Member] | On-balance sheet [Member] | Special Mention [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 4,181us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4] 6,030us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4]
Permanent Plantings [Member] | On-balance sheet [Member] | Substandard [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 39,354us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5] 35,904us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5]
Permanent Plantings [Member] | Off-balance sheet [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 503,678us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
[1] 524,774us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
[1]
Financing Receivable, Recorded Investment, Equal to Greater than 90 Days Past Due 0us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
[1] 0us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
[3]
Permanent Plantings [Member] | Off-balance sheet [Member] | Pass [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 484,527us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1] 503,414us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1]
Permanent Plantings [Member] | Off-balance sheet [Member] | Special Mention [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 11,633us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4] 12,150us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4]
Permanent Plantings [Member] | Off-balance sheet [Member] | Substandard [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 7,518us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5] 9,210us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5]
Livestock [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 1,221,734us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_LivestockMember
[1] 1,260,618us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_LivestockMember
[1]
Financing Receivable, Recorded Investment, Equal to Greater than 90 Days Past Due 3,014us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ agm_CommodityByTypeAxis
= agm_LivestockMember
[1] 5,045us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ agm_CommodityByTypeAxis
= agm_LivestockMember
[3]
Livestock [Member] | Pass [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 1,146,597us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_LivestockMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1] 1,174,057us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_LivestockMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1]
Livestock [Member] | Special Mention [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 50,403us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_LivestockMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4] 61,320us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_LivestockMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4]
Livestock [Member] | Substandard [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 24,734us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_LivestockMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5] 25,241us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_LivestockMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5]
Livestock [Member] | On-balance sheet [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 408,656us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_LivestockMember
[1] 412,620us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_LivestockMember
[1]
Financing Receivable, Recorded Investment, Equal to Greater than 90 Days Past Due 2,517us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_LivestockMember
[1] 4,555us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_LivestockMember
[3]
Livestock [Member] | On-balance sheet [Member] | Pass [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 373,623us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_LivestockMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1] 375,010us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_LivestockMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1]
Livestock [Member] | On-balance sheet [Member] | Special Mention [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 28,855us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_LivestockMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4] 31,039us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_LivestockMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4]
Livestock [Member] | On-balance sheet [Member] | Substandard [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 6,178us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_LivestockMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5] 6,571us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_LivestockMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5]
Livestock [Member] | Off-balance sheet [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 813,078us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_LivestockMember
[1] 847,998us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_LivestockMember
[1]
Financing Receivable, Recorded Investment, Equal to Greater than 90 Days Past Due 497us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_LivestockMember
[1] 490us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_LivestockMember
[3]
Livestock [Member] | Off-balance sheet [Member] | Pass [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 772,974us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_LivestockMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1] 799,047us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_LivestockMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1]
Livestock [Member] | Off-balance sheet [Member] | Special Mention [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 21,548us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_LivestockMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4] 30,281us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_LivestockMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4]
Livestock [Member] | Off-balance sheet [Member] | Substandard [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 18,556us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_LivestockMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5] 18,670us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_LivestockMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5]
Part-Time Farm [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 169,417us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
[1] 173,954us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
[1]
Financing Receivable, Recorded Investment, Equal to Greater than 90 Days Past Due 3,303us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
[1] 2,828us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
[3]
Part-Time Farm [Member] | Pass [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 151,840us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1] 154,931us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1]
Part-Time Farm [Member] | Special Mention [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 1,965us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4] 1,963us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4]
Part-Time Farm [Member] | Substandard [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 15,612us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5] 17,060us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5]
Part-Time Farm [Member] | On-balance sheet [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 68,484us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
[1] 69,511us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
[1]
Financing Receivable, Recorded Investment, Equal to Greater than 90 Days Past Due 3,261us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
[1] 2,828us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
[3]
Part-Time Farm [Member] | On-balance sheet [Member] | Pass [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 57,363us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1] 57,239us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1]
Part-Time Farm [Member] | On-balance sheet [Member] | Special Mention [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 632us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4] 612us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4]
Part-Time Farm [Member] | On-balance sheet [Member] | Substandard [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 10,489us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5] 11,660us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5]
Part-Time Farm [Member] | Off-balance sheet [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 100,933us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
[1] 104,443us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
[1]
Financing Receivable, Recorded Investment, Equal to Greater than 90 Days Past Due 42us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
[1] 0us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
[3]
Part-Time Farm [Member] | Off-balance sheet [Member] | Pass [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 94,477us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1] 97,692us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1]
Part-Time Farm [Member] | Off-balance sheet [Member] | Special Mention [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 1,333us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4] 1,351us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4]
Part-Time Farm [Member] | Off-balance sheet [Member] | Substandard [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 5,123us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5] 5,400us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5]
Agriculture Storage and Processing [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 110,367us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_AgricultureStorageAndProcessingMember
[1] 114,360us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_AgricultureStorageAndProcessingMember
[1]
Financing Receivable, Recorded Investment, Equal to Greater than 90 Days Past Due 0us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ agm_CommodityByTypeAxis
= agm_AgricultureStorageAndProcessingMember
[1] 0us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ agm_CommodityByTypeAxis
= agm_AgricultureStorageAndProcessingMember
[3]
Agriculture Storage and Processing [Member] | Pass [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 90,787us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_AgricultureStorageAndProcessingMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1] 93,366us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_AgricultureStorageAndProcessingMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1]
Agriculture Storage and Processing [Member] | Special Mention [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 0us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_AgricultureStorageAndProcessingMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4] 0us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_AgricultureStorageAndProcessingMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4]
Agriculture Storage and Processing [Member] | Substandard [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 19,580us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_AgricultureStorageAndProcessingMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5] 20,994us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_AgricultureStorageAndProcessingMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5]
Agriculture Storage and Processing [Member] | On-balance sheet [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 25,800us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_AgricultureStorageAndProcessingMember
[1] 29,003us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_AgricultureStorageAndProcessingMember
[1]
Financing Receivable, Recorded Investment, Equal to Greater than 90 Days Past Due 0us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_AgricultureStorageAndProcessingMember
[1] 0us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_AgricultureStorageAndProcessingMember
[3]
Agriculture Storage and Processing [Member] | On-balance sheet [Member] | Pass [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 25,800us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_AgricultureStorageAndProcessingMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1] 29,003us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_AgricultureStorageAndProcessingMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1]
Agriculture Storage and Processing [Member] | On-balance sheet [Member] | Special Mention [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 0us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_AgricultureStorageAndProcessingMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4] 0us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_AgricultureStorageAndProcessingMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4]
Agriculture Storage and Processing [Member] | On-balance sheet [Member] | Substandard [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 0us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_AgricultureStorageAndProcessingMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5] 0us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_AgricultureStorageAndProcessingMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5]
Agriculture Storage and Processing [Member] | Off-balance sheet [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 84,567us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_AgricultureStorageAndProcessingMember
[1] 85,357us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_AgricultureStorageAndProcessingMember
[1]
Financing Receivable, Recorded Investment, Equal to Greater than 90 Days Past Due 0us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_AgricultureStorageAndProcessingMember
[1] 0us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_AgricultureStorageAndProcessingMember
[3]
Agriculture Storage and Processing [Member] | Off-balance sheet [Member] | Pass [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 64,987us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_AgricultureStorageAndProcessingMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1] 64,363us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_AgricultureStorageAndProcessingMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1]
Agriculture Storage and Processing [Member] | Off-balance sheet [Member] | Special Mention [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 0us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_AgricultureStorageAndProcessingMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4] 0us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_AgricultureStorageAndProcessingMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4]
Agriculture Storage and Processing [Member] | Off-balance sheet [Member] | Substandard [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 19,580us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_AgricultureStorageAndProcessingMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5] 20,994us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_AgricultureStorageAndProcessingMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5]
Other Commodity [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 7,666us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_OtherCommodityMember
[1] 6,781us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_OtherCommodityMember
[1]
Financing Receivable, Recorded Investment, Equal to Greater than 90 Days Past Due 0us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ agm_CommodityByTypeAxis
= agm_OtherCommodityMember
[1] 0us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ agm_CommodityByTypeAxis
= agm_OtherCommodityMember
[3]
Other Commodity [Member] | Pass [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 7,010us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_OtherCommodityMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1] 6,117us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_OtherCommodityMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1]
Other Commodity [Member] | Special Mention [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 8us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_OtherCommodityMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4] 8us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_OtherCommodityMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4]
Other Commodity [Member] | Substandard [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 648us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_OtherCommodityMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5] 656us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_OtherCommodityMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5]
Other Commodity [Member] | On-balance sheet [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 1,360us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_OtherCommodityMember
[1] 0us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_OtherCommodityMember
[1]
Financing Receivable, Recorded Investment, Equal to Greater than 90 Days Past Due 0us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_OtherCommodityMember
[1] 0us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_OtherCommodityMember
[3]
Other Commodity [Member] | On-balance sheet [Member] | Pass [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 1,360us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_OtherCommodityMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1] 0us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_OtherCommodityMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1]
Other Commodity [Member] | On-balance sheet [Member] | Special Mention [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 0us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_OtherCommodityMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4] 0us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_OtherCommodityMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4]
Other Commodity [Member] | On-balance sheet [Member] | Substandard [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 0us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_OtherCommodityMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5] 0us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_OtherCommodityMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5]
Other Commodity [Member] | Off-balance sheet [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 6,306us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_OtherCommodityMember
[1] 6,781us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_OtherCommodityMember
[1]
Financing Receivable, Recorded Investment, Equal to Greater than 90 Days Past Due 0us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_OtherCommodityMember
[1] 0us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_OtherCommodityMember
[3]
Other Commodity [Member] | Off-balance sheet [Member] | Pass [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 5,650us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_OtherCommodityMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1] 6,117us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_OtherCommodityMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1]
Other Commodity [Member] | Off-balance sheet [Member] | Special Mention [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 8us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_OtherCommodityMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4] 8us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_OtherCommodityMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4]
Other Commodity [Member] | Off-balance sheet [Member] | Substandard [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross $ 648us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_OtherCommodityMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5] $ 656us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_OtherCommodityMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5]
[1] Amounts represent unpaid principal balance of risk-rated loans, which is the basis Farmer Mac uses to analyze its portfolio, and recorded investment of past due loans.
[2] Geographic regions: Northwest (AK, ID, MT, OR, WA, WY); Southwest (AZ, CA, CO, HI, NM, NV, UT); Mid-North (IA, IL, IN, MI, MN, NE, ND, SD, WI); Mid-South (AR, KS, LA, MO, OK, TX); Northeast (CT, DE, KY, MA, MD, ME, NH, NJ, NY, OH, PA, RI, VA, VT, WV); Southeast (AL, FL, GA, MS, NC, SC, TN).
[3] (1) Amounts represent unpaid principal balance of risk-rated loans, which is the basis Farmer Mac uses to analyze its portfolio, and recorded investment of past due loans.
[4] Assets in the Special mention category generally have potential weaknesses due to performance issues but are currently considered to be adequately secured.
[5] Substandard assets have a well-defined weakness or weaknesses and there is a distinct possibility that some loss will be sustained if deficiencies are not corrected.