XML 62 R83.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
Dec. 31, 2014
Dec. 31, 2013
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross $ 5,417,174us-gaap_NotesReceivableGross [1],[2] $ 5,163,080us-gaap_NotesReceivableGross [1],[2]
Financing Receivable, Recorded Investment, Equal to Greater than 90 Days Past Due 18,917us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue [1] 28,296us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue [3]
Pass [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 5,172,691us-gaap_NotesReceivableGross
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1] 4,845,302us-gaap_NotesReceivableGross
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1]
Special Mention [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 111,888us-gaap_NotesReceivableGross
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4] 122,830us-gaap_NotesReceivableGross
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4]
Substandard [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 132,595us-gaap_NotesReceivableGross
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5] 194,948us-gaap_NotesReceivableGross
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5]
On-balance sheet [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 2,540,222us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
[1] 2,135,467us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
[1]
Financing Receivable, Recorded Investment, Equal to Greater than 90 Days Past Due 18,427us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
[1] 27,580us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
[3]
On-balance sheet [Member] | Pass [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 2,419,285us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1] 1,988,945us-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 54,495us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4] 47,171us-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 66,442us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5] 99,351us-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,876,952us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
[1] 3,027,613us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
[1]
Financing Receivable, Recorded Investment, Equal to Greater than 90 Days Past Due 490us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
[1] 716us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
[3]
Off-balance sheet [Member] | Pass [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 2,753,406us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1] 2,856,357us-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 57,393us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4] 75,659us-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 66,153us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5] 95,597us-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,941,266us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_CropsMember
[1] 2,666,857us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_CropsMember
[1]
Financing Receivable, Recorded Investment, Equal to Greater than 90 Days Past Due 4,175us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ agm_CommodityByTypeAxis
= agm_CropsMember
[1] 8,256us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ agm_CommodityByTypeAxis
= agm_CropsMember
[3]
Crops [Member] | Pass [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 2,887,319us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_CropsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1] 2,600,039us-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 30,417us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_CropsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4] 26,633us-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 23,530us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_CropsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5] 40,185us-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,633,667us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_CropsMember
[1] 1,385,008us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_CropsMember
[1]
Financing Receivable, Recorded Investment, Equal to Greater than 90 Days Past Due 4,175us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_CropsMember
[1] 8,036us-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,604,546us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_CropsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1] 1,348,205us-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 16,814us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_CropsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4] 15,656us-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 12,307us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_CropsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5] 21,147us-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,307,599us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_CropsMember
[1] 1,281,849us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_CropsMember
[1]
Financing Receivable, Recorded Investment, Equal to Greater than 90 Days Past Due 0us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_CropsMember
[1] 220us-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,282,773us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_CropsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1] 1,251,834us-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 13,603us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_CropsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4] 10,977us-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 11,223us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_CropsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5] 19,038us-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 920,195us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
[1] 907,824us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
[1]
Financing Receivable, Recorded Investment, Equal to Greater than 90 Days Past Due 6,869us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
[1] 11,841us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
[3]
Permanent Plantings [Member] | Pass [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 856,901us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1] 838,318us-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 18,180us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4] 20,594us-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 45,114us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5] 48,912us-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 395,421us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
[1] 336,478us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
[1]
Financing Receivable, Recorded Investment, Equal to Greater than 90 Days Past Due 6,869us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
[1] 11,841us-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 353,487us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1] 290,064us-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 6,030us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4] 4,973us-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 35,904us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5] 41,441us-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 524,774us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
[1] 571,346us-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 503,414us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1] 548,254us-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 12,150us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4] 15,621us-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 9,210us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PermanentPlantingsMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5] 7,471us-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,260,618us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_LivestockMember
[1] 1,246,105us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_LivestockMember
[1]
Financing Receivable, Recorded Investment, Equal to Greater than 90 Days Past Due 5,045us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ agm_CommodityByTypeAxis
= agm_LivestockMember
[1] 4,462us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ agm_CommodityByTypeAxis
= agm_LivestockMember
[3]
Livestock [Member] | Pass [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 1,174,057us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_LivestockMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1] 1,144,438us-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 61,320us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_LivestockMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4] 55,912us-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 25,241us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_LivestockMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5] 45,755us-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 412,620us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_LivestockMember
[1] 330,509us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_LivestockMember
[1]
Financing Receivable, Recorded Investment, Equal to Greater than 90 Days Past Due 4,555us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_LivestockMember
[1] 4,462us-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 375,010us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_LivestockMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1] 300,308us-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 31,039us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_LivestockMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4] 19,357us-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,571us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_LivestockMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5] 10,844us-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 847,998us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_LivestockMember
[1] 915,596us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_LivestockMember
[1]
Financing Receivable, Recorded Investment, Equal to Greater than 90 Days Past Due 490us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_LivestockMember
[1] 0us-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 799,047us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_LivestockMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1] 844,130us-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 30,281us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_LivestockMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4] 36,555us-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,670us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_LivestockMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5] 34,911us-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 173,954us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
[1] 162,743us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
[1]
Financing Receivable, Recorded Investment, Equal to Greater than 90 Days Past Due 2,828us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
[1] 3,618us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
[3]
Part-Time Farm [Member] | Pass [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 154,931us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1] 144,611us-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,963us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4] 1,835us-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 17,060us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5] 16,297us-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 69,511us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
[1] 50,362us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
[1]
Financing Receivable, Recorded Investment, Equal to Greater than 90 Days Past Due 2,828us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
[1] 3,122us-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,239us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1] 39,022us-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 612us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4] 918us-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 11,660us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5] 10,422us-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 104,443us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
[1] 112,381us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
[1]
Financing Receivable, Recorded Investment, Equal to Greater than 90 Days Past Due 0us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
[1] 496us-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 97,692us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1] 105,589us-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,351us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SpecialMentionMember
[1],[4] 917us-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,400us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_PartTimeFarmMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5] 5,875us-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 114,360us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_AgricultureStorageAndProcessingMember
[1] 170,918us-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 93,366us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_AgricultureStorageAndProcessingMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1] 110,059us-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] 17,278us-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 20,994us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_AgricultureStorageAndProcessingMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5] 43,581us-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 29,003us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_AgricultureStorageAndProcessingMember
[1] 32,636us-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 29,003us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_AgricultureStorageAndProcessingMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1] 10,987us-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] 6,267us-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] 15,382us-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 85,357us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_AgricultureStorageAndProcessingMember
[1] 138,282us-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,363us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_AgricultureStorageAndProcessingMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1] 99,072us-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] 11,011us-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 20,994us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_AgricultureStorageAndProcessingMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5] 28,199us-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 6,781us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_OtherCommodityMember
[1] 8,633us-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] 119us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ agm_CommodityByTypeAxis
= agm_OtherCommodityMember
[3]
Other Commodity [Member] | Pass [Member]    
Financing Receivable, Recorded Investment [Line Items]    
Financing Receivable, Gross 6,117us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_OtherCommodityMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1] 7,837us-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] 578us-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 656us-gaap_NotesReceivableGross
/ agm_CommodityByTypeAxis
= agm_OtherCommodityMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5] 218us-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 0us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_OtherCommodityMember
[1] 474us-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] 119us-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 0us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OnBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_OtherCommodityMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1] 359us-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] 115us-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,781us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_OtherCommodityMember
[1] 8,159us-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 6,117us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_OtherCommodityMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PassMember
[1] 7,478us-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] 578us-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 $ 656us-gaap_NotesReceivableGross
/ us-gaap_BalanceSheetLocationAxis
= agm_OffBalanceSheetMember
/ agm_CommodityByTypeAxis
= agm_OtherCommodityMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_SubstandardMember
[1],[5] $ 103us-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.