XML 43 R31.htm IDEA: XBRL DOCUMENT
v3.25.3

Segment reporting and concentrations (Tables) | 9 Months Ended
--- | ---
Sep. 30, 2025
Segment reporting and concentrations |
Schedule of segment assets is reported on the balance sheet | The measure of segment assets is reported on the balance sheet as total consolidated assets shown in the table below (in thousands): ​
​ | ​ | ​ | ​ | ​ | ​ | ​
​ |  | September 30, 2025 |  | December 31, 2024*
Total assets: |  | ​ |  |  | ​ |
DDS | ​ | $ | 133,505 | ​ | $ | 91,588
Synodex | ​ |  | 5,139 | ​ |  | 4,790
Agility(1) | ​ |  | 14,272 | ​ |  | 17,071
Total Consolidated | ​ | $ | 152,916 | ​ | $ | 113,449
​ *Prior period segment assets of DDS, Synodex and Agility segments have been reclassified to align with the current period presentation, with no impact on the Company’s consolidated results.
| (1) | Agility assets include goodwill of $2.1 million and $2.0 million for each of the periods ended September 30, 2025 and December 31, 2024, respectively.
| (2) | Segment assets consist of cash, receivables, prepaid and other assets, property and equipment, right of-use-assets, deferred income tax and intangibles.
Segment information for other significant income statement | The table below shows segment information for other significant income statement items (in thousands): ​
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | Three Months Ended September 30, 2025
​ |  | ​ | DDS | ​ | ​ | Synodex |  | Agility |  | Total
Revenues |  | $ | 54,779 |  | $ | 1,653 | ​ | $ | 6,118 | ​ | $ | 62,550
Direct operating costs (1) (3) | ​ | ​ | 32,627 | ​ | ​ | 1,536 | ​ | ​ | 2,883 | ​ | ​ | 37,046
Gross profit | ​ |  | 22,152 | ​ |  | 117 | ​ | ​ | 3,235 | ​ | ​ | 25,504
Selling and administrative expenses (2) (4) | ​ |  | 10,246 | ​ |  | 161 | ​ | ​ | 3,338 | ​ | ​ | 13,745
Segment operating income (loss) | ​ | ​ | 11,906 | ​ | ​ | (44) | ​ | ​ | (103) | ​ | ​ | 11,759
Interest income, net | ​ |  | (420) | ​ |  | - | ​ | ​ | - | ​ | ​ | (420)
Income (loss) before provision for income taxes | ​ | $ | 12,326 | ​ | $ | (44) | ​ | $ | (103) | ​ | $ | 12,179
​
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | Three Months Ended September 30, 2024
​ |  | DDS | ​ | Synodex | ​ | Agility | ​ | Total
Revenues | ​ | $ | 44,694 |  | $ | 1,935 |  | $ | 5,595 |  | $ | 52,224
Direct operating costs (1) (3) | ​ |  | 27,084 | ​ |  | 1,452 |  |  | 2,357 |  |  | 30,893
Gross profit | ​ |  | 17,610 | ​ |  | 483 |  |  | 3,238 |  |  | 21,331
Selling and administrative expenses (2) (4) | ​ |  | 6,996 | ​ |  | 102 |  |  | 2,812 |  |  | 9,910
Segment operating income | ​ |  | 10,614 | ​ |  | 381 |  |  | 426 |  |  | 11,421
Interest (income) expense, net | ​ |  | (27) | ​ |  | - |  |  | 1 |  |  | (26)
Income before provision for income taxes | ​ | $ | 10,641 | ​ | $ | 381 |  | $ | 425 |  | $ | 11,447
​
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ |  | Nine Months Ended September 30, 2025
​ | ​ | DDS |  | Synodex |  | Agility |  | Total
Revenues |  | $ | 156,186 |  | $ | 5,731 | ​ | $ | 17,370 | ​ | $ | 179,287
Direct operating costs (1) (3) | ​ | ​ | 94,905 | ​ | ​ | 4,615 | ​ | ​ | 7,988 | ​ | ​ | 107,508
Gross profit | ​ | ​ | 61,281 | ​ | ​ | 1,116 | ​ | ​ | 9,382 | ​ | ​ | 71,779
Selling and administrative expenses (2) (4) | ​ | ​ | 32,275 | ​ | ​ | 587 | ​ | ​ | 9,975 | ​ | ​ | 42,837
Segment operating income (loss) | ​ | ​ | 29,006 | ​ | ​ | 529 | ​ | ​ | (593) | ​ | ​ | 28,942
Interest (income) expense, net | ​ | ​ | (1,125) | ​ | ​ | - | ​ | ​ | 1 | ​ | ​ | (1,124)
Income (loss) before provision for income taxes | ​ | $ | 30,131 | ​ | $ | 529 | ​ | $ | (594) | ​ | $ | 30,066
​
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | Nine Months Ended September 30, 2024
​ | ​ | DDS | ​ | Synodex | ​ | Agility | ​ | Total
Revenues |  | $ | 89,810 |  | $ | 5,792 |  | $ | 15,679 |  | $ | 111,281
Direct operating costs (1) (3) | ​ |  | 59,563 | ​ |  | 4,454 | ​ |  | 6,947 | ​ |  | 70,964
Gross profit | ​ |  | 30,247 | ​ |  | 1,338 | ​ |  | 8,732 | ​ |  | 40,317
Selling and administrative expenses (2) (4) | ​ |  | 18,988 | ​ |  | 365 | ​ |  | 7,882 | ​ |  | 27,235
Segment operating income | ​ |  | 11,259 | ​ |  | 973 | ​ |  | 850 | ​ |  | 13,082
Interest (income) expense, net | ​ |  | (58) | ​ |  | - | ​ |  | 3 | ​ |  | (55)
Income before provision for income taxes | ​ | $ | 11,317 | ​ | $ | 973 | ​ | $ | 847 | ​ | $ | 13,137
​
(1) | Direct operating costs consist of direct and indirect labor costs, occupancy costs, data center hosting fees, cloud services, content acquisition costs, depreciation and amortization, travel, telecommunications, computer services and supplies, realized (gain) loss on forward contracts, foreign currency revaluation (gain) loss, recruitment costs and other direct expenses that are incurred in providing services to our customers.
(2) | Selling and administrative expenses consist of payroll and related costs including commissions, bonuses, and stock-based compensation; marketing, advertising, trade conferences and related expenses; new services research and related software development expenses, software and cloud service subscriptions, professional and consultant fees, provision for credit losses and other administrative overhead expenses.
(3) | Includes non-cash expenses which consist mainly of depreciation, amortization of capitalized software development costs and stock-based compensation expense.
(4) | Includes non-cash expenses which consist mainly of stock-based compensation expense.
Schedule of revenue by geographic region | Revenues for the three and nine-month periods ended September 30, 2025, and 2024 by geographic region (determined based upon customer’s domicile), were as follows (in thousands): ​
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | For the Three Months Ended | ​ | For the Nine Months Ended
​ | ​ | September 30, | ​ | September 30,
​ |  | 2025 |  | 2024 |  | 2025 |  | 2024
United States | ​ | $ | 52,752 | ​ | $ | 43,237 | ​ | $ | 150,202 | ​ | $ | 84,910
Canada | ​ |  | 3,024 | ​ |  | 2,281 | ​ |  | 8,702 | ​ |  | 6,791
United Kingdom | ​ |  | 2,735 | ​ |  | 2,586 | ​ |  | 7,635 | ​ |  | 7,200
The Netherlands | ​ | ​ | 1,864 | ​ | ​ | 1,880 | ​ | ​ | 6,320 | ​ | ​ | 5,924
Others - principally other European countries | ​ |  | 2,175 | ​ |  | 2,240 | ​ |  | 6,428 | ​ |  | 6,456
Totals | ​ | $ | 62,550 | ​ | $ | 52,224 | ​ | $ | 179,287 | ​ | $ | 111,281
Schedule of long-lived assets by geographic region | Long-lived assets as of September 30, 2025 and December 31, 2024 by geographic region were comprised of (in thousands): ​
​ | ​ | ​ | ​ | ​ | ​ | ​
​ |  | September 30, |  | December 31,
​ |  | 2025 |  | 2024
United States | ​ | $ | 12,455 | ​ | $ | 10,182
​ | ​ |  | ​ | ​ |  | ​
Foreign countries: | ​ |  | ​ | ​ |  | ​
Canada | ​ |  | 6,247 | ​ |  | 6,265
United Kingdom | ​ |  | 707 | ​ |  | 806
Philippines | ​ |  | 4,500 | ​ |  | 3,532
India | ​ |  | 2,637 | ​ |  | 2,251
Sri Lanka | ​ |  | 817 | ​ |  | 587
Israel | ​ |  | 60 | ​ |  | 63
Germany | ​ | ​ | 4 | ​ | ​ | 4
Total foreign | ​ |  | 14,972 | ​ |  | 13,508
Totals | ​ | $ | 27,427 | ​ | $ | 23,690

X
- Definition Tabular disclosure of all significant reconciling items in the reconciliation of total assets from reportable segments to the entity's consolidated assets. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Topic 280 -SubTopic 10 -Section 50 -Paragraph 31 -Publisher FASB -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31 Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Topic 280 -SubTopic 10 -Section 50 -Paragraph 30 -Subparagraph (c) -Publisher FASB -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30 + Details
Name: | us-gaap_ReconciliationOfAssetsFromSegmentToConsolidatedTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration

X
- Definition Tabular disclosure of reconciliation of other items from reportable segments to their consolidated amount. Excludes reconciliation of revenue, profit (loss), and assets. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Topic 280 -SubTopic 10 -Section 50 -Paragraph 31 -Publisher FASB -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31 Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Topic 280 -SubTopic 10 -Section 50 -Paragraph 30 -Subparagraph (d) -Publisher FASB -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30 + Details
Name: | us-gaap_ReconciliationOfOtherSignificantReconcilingItemsFromSegmentsToConsolidatedTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration

X
- Definition Tabular disclosure of the names of foreign countries from which revenue is material and the amount of revenue from external customers attributed to those countries. An entity may also provide subtotals of geographic information about groups of countries. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Topic 220 -SubTopic 10 -Name Accounting Standards Codification -Section S99 -Paragraph 2 -Subparagraph (SX 210.5-03(1)) -Publisher FASB -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2 Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef -Topic 280 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 41 -Subparagraph (a) -Publisher FASB -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41 + Details
Name: | us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration

X
- Definition Tabular disclosure of information concerning material long-lived assets (excluding financial instruments, customer relationships with financial institutions, mortgage and other servicing rights, deferred policy acquisition costs, and deferred taxes assets) located in identified geographic areas and/or the amount of revenue from external customers attributed to that country from which revenue is material. An entity may also provide subtotals of geographic information about groups of countries. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Topic 220 -SubTopic 10 -Name Accounting Standards Codification -Section S99 -Paragraph 2 -Subparagraph (SX 210.5-03(1)) -Publisher FASB -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2 Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Topic 280 -SubTopic 10 -Section 50 -Paragraph 41 -Publisher FASB -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41 + Details
Name: | us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration

X
- References No definition available. + Details
Name: | us-gaap_SegmentReportingAbstract
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration