Revenue from Contracts with Customers
Contract Assets
Our assets related to costs incurred to obtain or fulfill a contract primarily consist of capitalized commission costs, upfront payments made to customers and costs incurred on contracts with an outstanding performance obligation. The current portion of capitalized commission costs, upfront payments made to customers and costs incurred on contracts with an outstanding performance obligation is included in other current assets within our consolidated balance sheets. The non-current portion of capitalized commission costs, upfront payments made to customers and costs incurred on contracts with an outstanding performance obligation is reflected in other assets within our consolidated balance sheets.
We review the capitalized costs for impairment at least annually. Impairment exists if the carrying amount of the asset recognized from contract costs exceeds the remaining amount of consideration we expect to receive in exchange for providing the goods and services to which such asset relates, less the costs that relate directly to providing those good and services and that have not been recognized as an expense. We did not record an impairment loss on our contract assets during the years ended December 31, 2025, 2024 and 2023.
The changes in our contract assets are as follows (in thousands):
| | | | | | | | | | | | | | | | | |
| Year Ended December 31, |
| 2025 | | 2024 | | 2023 |
| Beginning of period balance | $ | 12,088 | | | $ | 9,099 | | | $ | 13,975 | |
Additions to contract assets | 15,524 | | | 10,292 | | | 7,837 | |
Reimbursement of previously capitalized upfront payments to customers | — | | | — | | | (6,774) | |
Amortization or satisfaction of outstanding performance obligation of capitalized contract assets | (9,665) | | | (7,303) | | | (5,939) | |
| End of period balance | $ | 17,947 | | | $ | 12,088 | | | $ | 9,099 | |
On July 27, 2023, we received $6.9 million in cash related to the reimbursement of previously capitalized upfront payments to a customer. On the date of the payment, the $6.8 million unamortized portion of the contract asset balance was reduced to zero and the remaining amount of $0.1 million was recorded as an increase to SaaS and license revenue.
Contract Liabilities
Contract liabilities include payments received in advance of performance under the contract and are realized with the associated revenue recognized under the contract. The changes in our contract liabilities are as follows (in thousands):
| | | | | | | | | | | | | | | | | |
| Year Ended December 31, |
| 2025 | | 2024 | | 2023 |
| Beginning of period balance | $ | 26,559 | | | $ | 22,885 | | | $ | 18,332 | |
Revenue deferred or acquired in period | 33,903 | | | 26,883 | | | 22,861 | |
| Revenue recognized from amounts included in contract liabilities | (30,578) | | | (23,209) | | | (18,308) | |
| End of period balance | $ | 29,884 | | | $ | 26,559 | | | $ | 22,885 | |
The revenue recognized from amounts included in contract liabilities primarily relates to prepayment contracts with customers as well as payments of activation fees.
About Revenue Disclosures
Revenue disclosures under ASC 606 explain how a company identifies performance obligations, allocates transaction prices, and determines when revenue is recognized. This section is essential for understanding whether reported revenue reflects genuine economic activity or aggressive accounting choices. Analysts examine the mix of point-in-time versus over-time recognition, which directly affects revenue timing and comparability.
Key signals: rising contract liabilities (deferred revenue) suggest strong future revenue visibility, while declining contract assets may indicate slowing project milestones. Watch for variable consideration estimates — rebates, returns, and performance bonuses that require management judgment. Significant changes in disaggregated revenue by geography or product line can reveal shifting business mix before it appears in headline numbers. Compare revenue growth against contract liability growth to assess sustainability, and scrutinize any changes in the timing of recognition that coincide with earnings pressure.