XML 59 R48.htm IDEA: XBRL DOCUMENT
v3.21.1

Notes Payable - Narrative (Details) - USD ($) | 3 Months Ended
--- | ---
Mar. 31, 2021 | Mar. 31, 2020
Debt Instrument [Line Items] |  |
Medium term notes called during the period | $ 1,000,000,000.0 | $ 800,000,000
Maximum borrowing capacity from U.S. Treasury | 1,500,000,000 |
Outstanding debt repurchases | $ 0 | 0
Discount Notes |  |
Debt Instrument [Line Items] |  |
Maturities of notes | 1 year |
Medium-term notes | Minimum |  |
Debt Instrument [Line Items] |  |
Maturities of notes | 6 months |
Medium-term notes | Maximum |  |
Debt Instrument [Line Items] |  |
Maturities of notes | 15 years |
Discount notes |  |
Debt Instrument [Line Items] |  |
Maximum amount of discount notes outstanding at any month end | $ 1,800,000,000 | $ 2,600,000,000

X
- Definition Medium Term Notes Called During the Period + References No definition available. + Details
Name: | agm_MediumTermNotesCalledDuringThePeriod
Namespace Prefix: | agm_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | duration

X
- Definition Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table. + References No definition available. + Details
Name: | us-gaap_DebtInstrumentLineItems
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition Period of time between issuance and maturity of debt instrument, in PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. + References No definition available. + Details
Name: | us-gaap_DebtInstrumentTerm
Namespace Prefix: | us-gaap_
Data Type: | xbrli:durationItemType
Balance Type: | na
Period Type: | duration

X
- Definition Gross amount of debt extinguished. + References No definition available. + Details
Name: | us-gaap_ExtinguishmentOfDebtAmount
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | duration

X
- Definition Maximum borrowing capacity under the credit facility without consideration of any current restrictions on the amount that could be borrowed or the amounts currently outstanding under the facility. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 210 -SubTopic 10 -Section S99 -Paragraph 1 -Subparagraph (SX 210.5-02.19(b),22(b)) -URI http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682 + Details
Name: | us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | instant

X
- Definition For the form of debt having an initial term of less than one year or less than the normal operating cycle, if longer, maximum month-end borrowings during the period. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 210 -SubTopic 10 -Section S99 -Paragraph 1 -Subparagraph (SX 210.5-02(19)) -URI http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682 + Details
Name: | us-gaap_ShorttermDebtMaximumMonthendOutstandingAmount
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | duration

X
- Details
Name: | us-gaap_DebtInstrumentAxis=agm_DiscountNotesMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_DebtInstrumentAxis=us-gaap_MediumTermNotesMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | srt_RangeAxis=srt_MinimumMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | srt_RangeAxis=srt_MaximumMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_DebtInstrumentAxis=us-gaap_NotesPayableToBanksMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |