XML 44 R34.htm IDEA: XBRL DOCUMENT
v3.23.1

Basis of Presentation and Nature of Operations - Additional Information (Details) $ in Millions | 3 Months Ended
--- | ---
Mar. 31, 2023 Office Segment | Mar. 31, 2022 USD ($) Segment
Basis of Presentation and Nature of Operations [Line Items] |  |
Number of operating segments | Segment | 1 | 1
Number of reporting segments | Segment | 1 | 1
Reclassification of interest income | $ |  | $ 0.1
Domestic | Minimum |  |
Basis of Presentation and Nature of Operations [Line Items] |  |
Number of offices | Office | 50 |
International | Minimum |  |
Basis of Presentation and Nature of Operations [Line Items] |  |
Number of offices | Office | 20 |

X
- Definition Basis of presentation and nature of operations. + References No definition available. + Details
Name: | icfi_BasisOfPresentationAndNatureOfOperationsLineItems
Namespace Prefix: | icfi_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition The number of offices owned by the company. + References No definition available. + Details
Name: | icfi_NumberOfOffices
Namespace Prefix: | icfi_
Data Type: | xbrli:integerItemType
Balance Type: | na
Period Type: | instant

X
- Definition Reclassification of interest income. + References No definition available. + Details
Name: | icfi_ReclassificationOfInterestIncome
Namespace Prefix: | icfi_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | duration

X
- Definition Number of operating segments. An operating segment is a component of an enterprise: (a) that engages in business activities from which it may earn revenues and incur expenses (including revenues and expenses relating to transactions with other components of the same enterprise), (b) whose operating results are regularly reviewed by the enterprise's chief operating decision maker to make decisions about resources to be allocated to the segment and assess its performance, and (c) for which discrete financial information is available. An operating segment may engage in business activities for which it has yet to earn revenues, for example, start-up operations may be operating segments before earning revenues. + References Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef -Publisher FASB -Name Accounting Standards Codification -Topic 280 -SubTopic 10 -Section 50 -Paragraph 18 -URI https://asc.fasb.org/extlink&oid=126901519&loc=d3e8672-108599 + Details
Name: | us-gaap_NumberOfOperatingSegments
Namespace Prefix: | us-gaap_
Data Type: | xbrli:integerItemType
Balance Type: | na
Period Type: | duration

X
- Definition Number of segments reported by the entity. A reportable segment is a component of an entity for which there is an accounting requirement to report separate financial information on that component in the entity's financial statements. + References Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef -Publisher FASB -Name Accounting Standards Codification -Topic 280 -SubTopic 10 -Section 50 -Paragraph 18 -URI https://asc.fasb.org/extlink&oid=126901519&loc=d3e8672-108599 + Details
Name: | us-gaap_NumberOfReportableSegments
Namespace Prefix: | us-gaap_
Data Type: | xbrli:integerItemType
Balance Type: | na
Period Type: | duration

X
- Details
Name: | srt_StatementGeographicalAxis=country_US
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_StatementGeographicalAxis=us-gaap_NonUsMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |