UFP Technologies [UFPT]
FY ends 31 December. TTM = the four quarters ended 2026-03-31. Transcript labels are calendar and fiscal simultaneously for a December-FY filer, so the fiscal/calendar misalignment that affects RMD in this same run does not apply here — but it does mean a cross-name series keyed on the raw label would misalign UFPT against RMD by two quarters.
| quarter | revenue | source |
|---|---|---|
| Q2 2025 | $151.2m | AV |
| Q3 2025 | $154.558m | EDGAR |
| Q4 2025 | $148.915m | EDGAR |
| Q1 2026 | $154.202m | EDGAR |
| TTM | $608.875m |
AV's UFPT quarterly series reconciles to the EDGAR annual exactly: 148.1 + 151.2 + 154.6 + 148.9 =
$602.8m, against the filed FY2025 RevenueFromContractWithCustomerExcludingAssessedTax of
$602,797,000. Reported CLEAN. (Contrast USPH in the same run, where AV's quarterly series
undershoots the filed annual by $97.6m.)
| $m | % of revenue | |
|---|---|---|
| Revenue | 602.797 | |
| Cost of goods and services sold | 432.387 | |
| Gross profit | 170.410 | 28.27% |
| SG&A | 77.439 | 12.85% |
| Operating income | 92.338 | 15.32% |
| Net income | 68.313 | 11.33% |
| R&D (annual footnote only) | 8.6 | 1.43% |
TTM: revenue $608.875m, gross profit $172.572m (28.34%), operating income $92.605m (15.21%).
R&D has no quarterly line. It exists only as an annual 10-K figure ($7.2m FY2023, $10.4m FY2024, $8.6m FY2025) and cannot be tracked intra-year. This is a genuine limitation on the opex bridge and is stated rather than papered over.
| Cash | $19.976m |
| Total debt | $137.610m ($125.110m non-current + $12.500m current) |
| Net debt | −$117.634m — screen figure correct |
| Long-term investments | $6.889m — deferred-comp plan assets with a matching liability. Excluded, and stated rather than silently netted |
| Operating lease liabilities | $13.439m non-current + $4.999m current = $18.438m. EV is lease-EXCLUSIVE; lease-inclusive EV would be $2,104.04m (+0.88%) |
| Goodwill / acquired intangibles | $196.648m / $137.856m — 60.1% of invested capital |
| Shareholders' equity | $438.875m |
| Invested capital | $556.5m (equity + debt − cash) |
| ROIC | NOPAT $69.45m ÷ $556.5m = 12.48%. On tangible invested capital ($222.0m): 31.3% |
CFO $81.3m; capex $11.9m; FCF $69.4m → FCF margin +11.41%. Net income ~$70m, so cash conversion is 99% — accruals benign.
Sign is positive, so per DATA_DEFECTS.md omitting --fcf-margin from reverse_dcf.py would
overstate required CAGR by roughly 2.1pp at this level. The flag was supplied; without it the
answer would have been ~22.4% rather than 20.3% — FAIL either way, but the correct number is used.
| period | AR (EDGAR) | revenue | DSO (91.25d) |
|---|---|---|---|
| 2026-03-31 | $98.566m | $154.202m | 58.3d |
| 2025-03-31 | $93.779m | $148.116m | 57.8d |
| same-quarter Δ | +0.6d |
Q4 2025 vs Q4 2024: 50.8d vs 53.6d (−2.8d). Q3 2025 vs Q3 2024: 50.3d vs 56.0d (−5.7d).
The Q1 sequential jump is a seasonal artefact, not a signal. Receivables rose 18.9% sequentially ($82.9m → $98.6m) on a 3.6% sequential revenue rise — which reads badly until the same-quarter comparison is run, and until the identical pattern is seen in Q1 2025 (+$9.1m sequential) and Q1 2023. Both reads are reported because the sequential one is the kind of number that gets quoted alone.
Receivables sales / factoring: ZERO hits for factoring, securitiz, sold … receivable,
supply chain financ across the FY2025 10-K and the Q1 2026 10-Q. No cash-flow line. The DSO trend
is reliable.
SPLITS queried explicitly: empty array — UFPT has never split. Single share class; the dual-class
XBRL aggregation problem does not arise. Diluted weighted-average Q1 2026 was 7,799k against 7,736,939
outstanding on the cover — a 0.8% dilution gap, immaterial. entity_public_float is null in the
screen record; not used.
No forward three-statement model. The instrument is the reverse DCF plus the exit-multiple sensitivity
surface, both in UFPT_Valuation.md. No acquisition is forecast — and that is deliberate: the
implied path requires one, and forecasting an unannounced acquisition to justify a price is the error
this memo exists to expose.