XML 21 R10.htm IDEA: XBRL DOCUMENT v3.25.2
REVENUE RECOGNITION
6 Months Ended
Jun. 30, 2025
Revenue from Contract with Customer [Abstract]  
REVENUE RECOGNITION REVENUE RECOGNITION
We account for revenue in accordance with ASC Topic 606, "Revenue from Contracts with Customers." The unit of account in ASC 606 is a performance obligation, which is a promise in a contract with a customer to transfer a good or service to the customer.
The majority of our revenue is recognized over time, as control is transferred continuously to our customers, who receive and consume benefits as we perform. Revenue transferred to customers over time accounted for 68% and 73% of our revenue for the three and six months ended June 30, 2025, respectively, and 84% and 82% of our revenue for the three and six months ended June 30, 2024, respectively. All of our business groups earn services revenue under a variety of contract types, including time and materials, firm-fixed price, firm-fixed price level of effort, and cost-plus fixed fee, which may include variable consideration. On the other hand, for performance obligations in which control does not continuously transfer to the customer, we recognize revenue at the point in time when each performance obligation is fully satisfied. This coincides with the point in time the customer obtains control of the product or service, which typically occurs upon customer acceptance or receipt of the product or service, given that we maintain control of the product or service until that point. Revenue transferred to customers at a point in time accounted for 32% and 27% of our revenue for the three and six months ended June 30, 2025, respectively, and 16% and 18% of our revenue for the three and six months ended June 30, 2024, respectively. The change in revenue mix for the three and six months ended June 30, 2025, as compared to the prior periods, was primarily driven by an increase in product sales volume.
Orders for the sale of software licenses may contain multiple performance obligations, such as maintenance, training, or consulting services, which are typically delivered over time, consistent with the transfer of control disclosed above for the provision of services. When an order contains multiple performance obligations, we allocate the transaction price to the performance obligations based on the standalone selling price of the product or service underlying each performance obligation. The standalone selling price represents the amount we would sell the product or service to a customer on a standalone basis.
For certain performance obligations where we are not primarily responsible for fulfilling the promise to provide the goods or services to the customer, do not have inventory risk and have limited discretion in establishing the price for the goods or services, we recognize revenue on a net basis.
Our contracts may include various types of variable considerations and may include estimated amounts in the transaction price, based on all of the information available to us, and to the extent it is probable that a significant reversal of cumulative revenue recognized will not occur when any uncertainty associated with the variable consideration is resolved. We evaluate and include these estimated amounts of variable consideration in the transaction price and as performance on these contracts is complete, we adjust our revenue, when deemed necessary. No revenue adjustments were recorded during the three and six months ended June 30, 2025, and 2024.
We provide for anticipated losses on contracts during the period when the loss is determined by recording an expense for the total expected costs that exceeds the total estimated revenue for a performance obligation. No contract loss was recorded during the three months ended June 30, 2025, and 2024. We recorded an immaterial contract loss during the six months ended June 30, 2025, and 2024.
Disaggregated Revenues
In addition to our segment reporting, as further discussed in Note 15 – Segment Information, we disaggregate our revenues by customer and contract types. We treat sales to U.S. customers as sales within the United States, regardless of where the services are performed. Substantially most of our revenues are generated from U.S. customers, while international customers are de minimis; as such, the financial information by geographic location is not presented.
Table 3.1: Revenue by Customer Type
For the Three Months EndedFor the Six Months Ended
June 30, 2025June 30, 2024June 30, 2025June 30, 2024
Amount%Amount%Amount%Amount%
(dollars in thousands)
Federal$32,672 91 %$24,832 87 %$59,972 90%$51,439 89%
State & local, and commercial3,296 9 %3,666 13 %6,612 10%6,678 11%
Total revenue$35,968 100 %$28,498 100 %$66,584 100 %$58,117 100 %
Table 3.2: Revenue by Contract Type
For the Three Months EndedFor the Six Months Ended
June 30, 2025June 30, 2024June 30, 2025June 30, 2024
Amount%Amount%Amount%Amount%
(dollars in thousands)
Firm fixed-price$25,153 70 %$22,179 78 %$45,151 68%$45,015 77%
Time-and-materials8,913 25 %3,022 11 %17,290 26%6,159 11%
Cost plus fixed fee1,902 5 %3,297 11 %4,143 6%6,943 12%
Total revenue$35,968 100 %$28,498 100 %$66,584 100 %$58,117 100 %
A majority of the Company's revenue was derived under prime contracts and subcontracts with agencies and departments of the federal government. No other customer accounted for 10% or more of the Company's revenue during the three and six months ended June 30, 2025, and 2024.
Table 3.3: Revenue Concentration Greater than 10% of Total Revenue
For the Three Months EndedFor the Six Months Ended
June 30, 2025June 30, 2024June 30, 2025June 30, 2024
(in thousands)
Federal government:
Security Solutions$29,032 $14,209 $51,684 $29,872 
Secure Networks3,640 10,623 8,288 21,567 
Total$32,672 $24,832 $59,972 $51,439 
Table 3.4: Contract Balances
Balance Sheet PresentationJune 30, 2025December 31, 2024
(in thousands)
Billed accounts receivables (1)
Accounts receivable, net$17,111 $10,014 
Unbilled accounts receivableAccounts receivable, net1,210 5,412 
Contract assetsAccounts receivable, net784 3,746 
Contract liabilitiesContract liabilities12,951 6,838 
(1) Net of allowance for credit losses.
The changes in the Company's contract assets and contract liabilities during the current period were primarily the result of the timing differences between the Company's performance, invoicing and customer payments. Revenue recognized for the three and six months ended June 30, 2025, which was included in the contract liabilities balance at the beginning of each reporting period, was $1.7 million and $4.1 million, respectively. Revenue recognized for the three and six months ended June 30, 2024, which was included in the contract liabilities balance at the beginning of each reporting period, was $1.9 million and $4.5 million, respectively.
As of June 30, 2025, we had approximately $51.7 million of remaining performance obligations, which we also refer to as funded backlog. We expect to recognize approximately 95% of our remaining performance obligations over the next 12 months, and the balance thereafter.