Revenues (Tables)
|
6 Months Ended |
Jun. 30, 2026 |
| Revenue from Contract with Customer [Abstract] |
|
| Schedule of Disaggregation of Revenue |
The table below presents total revenues by contract type for the following periods: | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Three Months Ended June 30, | | Six Months Ended June 30, | | 2026 | | 2025 | | 2026 | | 2025 | | | | Time and materials | $ | 17,852 | | | $ | 20,615 | | | $ | 34,985 | | | $ | 43,847 | | | | Firm fixed price (1) | 18,674 | | | 6,685 | | | 31,809 | | | 13,787 | | | | Cost-reimbursable | 223 | | | 5,172 | | | 4,390 | | | 9,595 | | | | Total revenues | $ | 36,749 | | | $ | 32,472 | | | $ | 71,184 | | | $ | 67,229 | | | |
(1) This includes Fixed Price, Level of Effort contracts, which are substantially similar to time-and-materials contracts except that the Company is required to deliver a specified level of effort over a stated period of time. For these contracts, the Company determines the revenue earned using contract hours worked at negotiated bill rates as the Company delivers the contractually required workforce.
The table below presents the revenue recognition pattern for the following periods:
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Three Months Ended June 30, 2026 | | Three Months Ended June 30, 2025 | | | | | | | | Point in Time | | Over Time | | Total Revenue | | Point in Time | | Over Time | | Total Revenue | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All revenue streams | $ | 1,818 | | | $ | 34,931 | | | $ | 36,749 | | | $ | 1,619 | | | $ | 30,853 | | | $ | 32,472 | | | | | | | | | | | | | | | | | | | | | | | | | | | Six Months Ended June 30, 2026 | | Six Months Ended June 30, 2025 | | | | Point in Time | | Over Time | | Total Revenue | | Point in Time | | Over Time | | Total Revenue | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All revenue streams | $ | 3,564 | | | $ | 67,620 | | | $ | 71,184 | | | $ | 2,937 | | | $ | 64,292 | | | $ | 67,229 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
The table below presents total revenues by major customer type for the following periods: | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Three Months Ended June 30, | | Six Months Ended June 30, | | 2026 | | 2025 | | 2026 | | 2025 | | | U.S. government | $ | 31,565 | | | $ | 29,641 | | | $ | 61,499 | | | $ | 61,795 | | | | Non-U.S. government and commercial | 5,184 | | | 2,831 | | | 9,685 | | | 5,434 | | | | Total revenues | $ | 36,749 | | | $ | 32,472 | | | $ | 71,184 | | | $ | 67,229 | | | |
|
| Schedule of Summarized Activity of Allowance for Expected Credit Losses |
The table below summarizes the activity in the allowance for expected credit losses:
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Three Months Ended June 30, | | Six Months Ended June 30, | | 2026 | | 2025 | | 2026 | | 2025 | | | | Beginning balance | $ | 438 | | | $ | 127 | | | $ | 438 | | | $ | 127 | | | | Additions | 41 | | | 351 | | | 41 | | | 351 | | | | Write-offs | (348) | | | (40) | | | (348) | | | (40) | | | | | Recoveries | — | | | — | | | — | | | — | | | | Ending balance | $ | 131 | | | $ | 438 | | | $ | 131 | | | $ | 438 | | | |
|
| Schedule of Concentration of Risk, by Risk Factor |
Revenue earned from customers contributing in excess of 10% of total revenues are presented in the tables below for the following periods: | | | | | | | | | | | | | | | | | | | | | | | | | Three Months Ended June 30, 2026 | | Six Months Ended June 30, 2026 | | Total | | Percent of total revenues | | Total | | Percent of total revenues | Customer A(1) | $ | — | | | — | % | | $ | — | | | — | % | Customer B | 4,320 | | | 12 | % | | 7,996 | | | 11 | % | Customer C | 4,839 | | | 13 | % | | — | | | — | % | Customer D | 3,806 | | | 10 | % | | 7,353 | | | 10 | % | Customer E | — | | | — | % | | 7,120 | | | 10 | % | Customer F | 5,725 | | | 16 | % | | 11,410 | | | 16 | % | All others | 18,059 | | | 49 | % | | 37,305 | | | 53 | % | Total revenues | $ | 36,749 | | | 100 | % | | $ | 71,184 | | | 100 | % | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Three Months Ended June 30, 2025 | | Six Months Ended June 30, 2025 | | | | | | Total | | Percent of total revenues | | Total | | Percent of total revenues | Customer A | | | | | $ | 3,562 | | | 11 | % | | $ | 10,160 | | | 15 | % | Customer B | | | | | 4,873 | | | 15 | % | | 9,214 | | | 14 | % | Customer C (1) | | | | | — | | | — | % | | — | | | — | % | Customer D | | | | | 3,267 | | | 10 | % | | 6,831 | | | 10 | % | Customer E | | | | | 3,462 | | | 11 | % | | 6,962 | | | 10 | % | | Customer F | | | | | 5,270 | | | 16 | % | | 9,999 | | | 15 | % | All others | | | | | 12,038 | | | 37 | % | | 24,063 | | | 36 | % | Total revenues | | | | | $ | 32,472 | | | 100 | % | | $ | 67,229 | | | 100 | % | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
(1) Customers that contributed in excess of 10% of consolidated revenues in any period presented have been included in all periods presented for comparability.
|
| Schedule of Contract with Customer, Contract Asset, Contract Liability, and Receivable |
The table below presents the contract assets and contract liabilities included on the condensed consolidated balance sheets for the following periods: | | | | | | | | | | | | | | | | | | | June 30, 2026 | | December 31, 2025 | | | Accounts receivable, net of allowance for credit losses | $ | 30,975 | | | $ | 22,703 | | | | | Contract assets | $ | — | | | $ | 218 | | | | Contract liabilities | $ | 10,180 | | | $ | 14,756 | | | |
|
| Schedule of Impact of the Net Estimates at Completion Adjustments on the Company’s Operating Results |
The following table summarizes the impact of the net estimates at completion (“EAC”) adjustments on the Company’s operating results: | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Three Months Ended June 30, | | Six Months Ended June 30, | | 2026 | | 2025 | | 2026 | | 2025 | | | | Net EAC Adjustments, before income taxes | $ | 58 | | | $ | 522 | | | $ | (324) | | | $ | 932 | | | | Net EAC Adjustments, net of income taxes(1) | $ | 58 | | | $ | 412 | | | $ | (324) | | | $ | 737 | | | | | Net EAC Adjustments, net of income taxes, per diluted share | $ | — | | | $ | — | | | $ | — | | | $ | — | | | |
(1) Due to the Company being in a net taxable loss position for all periods presented, the impact of income taxes is insignificant.
|
| Schedule of remaining performance obligation |
As of June 30, 2026, the estimated revenue expected to be recognized in the future related to performance obligations that are unsatisfied, or partially unsatisfied, was approximately $9.2 million. As of June 30, 2026, the estimated revenue expected to be recognized in the future related to remaining performance obligations is presented in the table below. | | | | | | | June 30, 2026 | | Next 12 months | $ | 5,732 | | | 13 to 24 months | 2,154 | | 25 to 36 months | 1,084 | | | Thereafter | 244 | | Total remaining performance obligations | $ | 9,214 | |
|