Note 17 - Segment Information (Tables)
|
9 Months Ended |
Sep. 30, 2026 |
| Notes Tables |
|
| Segment Reporting [Table Text Block] |
| |
|
Nine months ended |
|
|
Three months ended |
|
| |
|
September 30, |
|
|
September 30, |
|
| |
|
2026 |
|
|
2025 |
|
|
2026 |
|
|
2025 |
|
| Net Sales: |
|
|
|
|
|
|
|
|
|
|
|
|
| Distribution |
|
$ |
556,531 |
|
|
$ |
439,584 |
|
|
$ |
211,652 |
|
|
$ |
154,413 |
|
| Solutions |
|
|
20,359 |
|
|
|
19,087 |
|
|
|
8,654 |
|
|
|
6,930 |
|
| |
|
|
576,890 |
|
|
|
458,671 |
|
|
|
220,306 |
|
|
|
161,343 |
|
| Cost of Sales: |
|
|
|
|
|
|
|
|
|
|
|
|
| Distribution |
|
$ |
477,694 |
|
|
$ |
373,737 |
|
|
$ |
182,175 |
|
|
$ |
132,013 |
|
| Solutions |
|
|
9,530 |
|
|
|
9,497 |
|
|
|
5,121 |
|
|
|
3,597 |
|
| |
|
|
487,224 |
|
|
|
383,234 |
|
|
|
187,296 |
|
|
|
135,610 |
|
| Direct Costs: |
|
|
|
|
|
|
|
|
|
|
|
|
| Distribution |
|
$ |
39,053 |
|
|
$ |
29,944 |
|
|
$ |
13,171 |
|
|
$ |
9,826 |
|
| Solutions |
|
|
4,893 |
|
|
|
4,708 |
|
|
|
1,538 |
|
|
|
1,605 |
|
| |
|
|
43,946 |
|
|
|
34,652 |
|
|
|
14,709 |
|
|
|
11,431 |
|
| Segment Income: (1) |
|
|
|
|
|
|
|
|
|
|
|
|
| Distribution |
|
$ |
39,784 |
|
|
$ |
35,903 |
|
|
$ |
16,306 |
|
|
$ |
12,574 |
|
| Solutions |
|
|
5,936 |
|
|
|
4,882 |
|
|
|
1,995 |
|
|
|
1,728 |
|
| Segment Income |
|
|
45,720 |
|
|
|
40,785 |
|
|
|
18,301 |
|
|
|
14,302 |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| General and administrative |
|
$ |
17,928 |
|
|
$ |
14,687 |
|
|
$ |
6,163 |
|
|
$ |
4,795 |
|
| Acquisition related costs |
|
|
437 |
|
|
|
733 |
|
|
|
118 |
|
|
|
594 |
|
| Depreciation and amortization expense |
|
|
6,131 |
|
|
|
5,696 |
|
|
|
2,068 |
|
|
|
1,976 |
|
| Interest, net |
|
|
834 |
|
|
|
562 |
|
|
|
416 |
|
|
|
224 |
|
| Foreign currency transaction gain (loss) |
|
|
522 |
|
|
|
(566 |
) |
|
|
498 |
|
|
|
2 |
|
| Change in fair value of acquisition contingent consideration |
|
|
— |
|
|
|
(1,374 |
) |
|
|
— |
|
|
|
(860 |
) |
| Income before taxes |
|
$ |
22,580 |
|
|
$ |
18,291 |
|
|
$ |
10,866 |
|
|
$ |
6,303 |
|
| |
|
As of |
|
|
As of |
|
| |
|
September 30, |
|
|
December 31, |
|
| Selected Assets by Segment: |
|
2026 |
|
|
2025 |
|
| |
|
|
|
|
|
|
| Distribution |
|
$ |
396,606 |
|
|
$ |
375,024 |
|
| Solutions |
|
|
24,744 |
|
|
|
22,124 |
|
| Segment Select Assets |
|
|
421,350 |
|
|
|
397,148 |
|
| Corporate Assets |
|
|
97,059 |
|
|
|
63,085 |
|
| Total Assets |
|
$ |
518,409 |
|
|
$ |
460,233 |
|
|
| Segment Reporting, Entity-Wide Information Not Provided as Part of Reportable Segment, Geographical Area, Revenue and Long-Lived Asset [Table Text Block] |
| |
|
Nine months ended |
|
|
Three months ended |
|
| |
|
September 30, 2026 |
|
|
September 30, 2026 |
|
| |
|
Distribution |
|
|
Solutions |
|
|
Total |
|
|
Distribution |
|
|
Solutions |
|
|
Total |
|
| Geography |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| USA |
|
$ |
445,084 |
|
|
$ |
7,634 |
|
|
$ |
452,718 |
|
|
$ |
164,379 |
|
|
$ |
3,803 |
|
|
$ |
168,182 |
|
| United Kingdom |
|
|
59,194 |
|
|
|
11,455 |
|
|
|
70,649 |
|
|
|
30,197 |
|
|
|
4,246 |
|
|
|
34,443 |
|
| Europe |
|
|
22,337 |
|
|
|
792 |
|
|
|
23,129 |
|
|
|
8,697 |
|
|
|
471 |
|
|
|
9,168 |
|
| Canada |
|
|
29,916 |
|
|
|
478 |
|
|
|
30,394 |
|
|
|
8,379 |
|
|
|
134 |
|
|
|
8,513 |
|
| Total net sales |
|
$ |
556,531 |
|
|
$ |
20,359 |
|
|
$ |
576,890 |
|
|
$ |
211,652 |
|
|
$ |
8,654 |
|
|
$ |
220,306 |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Timing of Revenue Recognition |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Transferred at a point in time where the Company is principal (1) |
|
$ |
517,944 |
|
|
$ |
15,008 |
|
|
$ |
532,952 |
|
|
$ |
197,096 |
|
|
$ |
6,852 |
|
|
$ |
203,948 |
|
| Transferred at a point in time where the Company is agent (2) |
|
|
38,587 |
|
|
|
5,351 |
|
|
|
43,938 |
|
|
|
14,556 |
|
|
|
1,802 |
|
|
|
16,358 |
|
| Total net sales |
|
$ |
556,531 |
|
|
$ |
20,359 |
|
|
$ |
576,890 |
|
|
$ |
211,652 |
|
|
$ |
8,654 |
|
|
$ |
220,306 |
|
| |
|
Nine months ended |
|
|
Three months ended |
|
| |
|
September 30, 2025 |
|
|
September 30, 2025 |
|
| |
|
Distribution |
|
|
Solutions |
|
|
Total |
|
|
Distribution |
|
|
Solutions |
|
|
Total |
|
| Geography |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| USA |
|
$ |
345,023 |
|
|
$ |
6,622 |
|
|
$ |
351,645 |
|
|
$ |
125,573 |
|
|
$ |
2,442 |
|
|
$ |
128,015 |
|
| United Kingdom |
|
|
49,746 |
|
|
|
11,282 |
|
|
|
61,028 |
|
|
|
11,206 |
|
|
|
3,900 |
|
|
|
15,106 |
|
| Europe |
|
|
20,476 |
|
|
|
682 |
|
|
|
21,158 |
|
|
|
8,610 |
|
|
|
468 |
|
|
|
9,078 |
|
| Canada |
|
|
24,339 |
|
|
|
501 |
|
|
|
24,840 |
|
|
|
9,024 |
|
|
|
120 |
|
|
|
9,144 |
|
| Total net sales |
|
$ |
439,584 |
|
|
$ |
19,087 |
|
|
$ |
458,671 |
|
|
$ |
154,413 |
|
|
$ |
6,930 |
|
|
$ |
161,343 |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Timing of Revenue Recognition |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Transferred at a point in time where the Company is principal (1) |
|
$ |
402,385 |
|
|
$ |
13,942 |
|
|
$ |
416,327 |
|
|
$ |
143,222 |
|
|
$ |
5,177 |
|
|
$ |
148,399 |
|
| Transferred at a point in time where the Company is agent (2) |
|
|
37,199 |
|
|
|
5,145 |
|
|
|
42,344 |
|
|
|
11,191 |
|
|
|
1,753 |
|
|
|
12,944 |
|
| Total net sales |
|
$ |
439,584 |
|
|
$ |
19,087 |
|
|
$ |
458,671 |
|
|
$ |
154,413 |
|
|
$ |
6,930 |
|
|
$ |
161,343 |
|
|
| Segment Reporting, Entity-Wide Information Not Provided as Part of Reportable Segment, Geographical Area, Long-Lived Asset [Table Text Block] |
| |
|
September 30, |
|
|
December 31, |
|
| Identifiable Assets by Geographic Areas |
|
2026 |
|
|
2025 |
|
| USA |
|
$ |
334,169 |
|
|
$ |
266,238 |
|
| United Kingdom |
|
$ |
99,996 |
|
|
$ |
125,191 |
|
| Europe |
|
|
49,105 |
|
|
|
37,031 |
|
| Canada |
|
|
35,139 |
|
|
|
31,773 |
|
| Total |
|
$ |
518,409 |
|
|
$ |
460,233 |
|
|