Organization record
VTEX
All evidence-backed facts for this organization, identity resolved across official registers.
Facts on record
Newest first; every row links to its evidence page.
| Fact | Value | Period | Source |
|---|---|---|---|
| accounts_receivable | {"amount": 61601000, "concept": "us-gaap:AccountsReceivableNetCurrent", "currency": "USD"} | 2025-12-31 | sec_edgar |
| accounts_receivable | {"amount": 52519000, "concept": "us-gaap:AccountsReceivableNetCurrent", "currency": "USD"} | 2024-12-31 | sec_edgar |
| capex | {"amount": 1039000, "concept": "us-gaap:PaymentsToAcquirePropertyPlantAndEquipment", "curr | 2025-12-31 | sec_edgar |
| capex | {"amount": 2069000, "concept": "us-gaap:PaymentsToAcquirePropertyPlantAndEquipment", "curr | 2024-12-31 | sec_edgar |
| capex | {"amount": 477000, "concept": "us-gaap:PaymentsToAcquirePropertyPlantAndEquipment", "curre | 2023-12-31 | sec_edgar |
| cash_and_equivalents | {"amount": 15744000, "concept": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "currency | 2025-12-31 | sec_edgar |
| cash_and_equivalents | {"amount": 18673000, "concept": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "currency | 2024-12-31 | sec_edgar |
| cashflow_financing | {"amount": -61588000, "concept": "us-gaap:NetCashProvidedByUsedInFinancingActivities", "cu | 2025-12-31 | sec_edgar |
| cashflow_financing | {"amount": -12050000, "concept": "us-gaap:NetCashProvidedByUsedInFinancingActivities", "cu | 2024-12-31 | sec_edgar |
| cashflow_financing | {"amount": -37938000, "concept": "us-gaap:NetCashProvidedByUsedInFinancingActivities", "cu | 2023-12-31 | sec_edgar |
| cashflow_investing | {"amount": 24802000, "concept": "us-gaap:NetCashProvidedByUsedInInvestingActivities", "cur | 2025-12-31 | sec_edgar |
| cashflow_investing | {"amount": -20706000, "concept": "us-gaap:NetCashProvidedByUsedInInvestingActivities", "cu | 2024-12-31 | sec_edgar |
| cashflow_investing | {"amount": 35176000, "concept": "us-gaap:NetCashProvidedByUsedInInvestingActivities", "cur | 2023-12-31 | sec_edgar |
| cashflow_operating | {"amount": 33367000, "concept": "us-gaap:NetCashProvidedByUsedInOperatingActivities", "cur | 2025-12-31 | sec_edgar |
| cashflow_operating | {"amount": 25964000, "concept": "us-gaap:NetCashProvidedByUsedInOperatingActivities", "cur | 2024-12-31 | sec_edgar |
| cashflow_operating | {"amount": 5408000, "concept": "us-gaap:NetCashProvidedByUsedInOperatingActivities", "curr | 2023-12-31 | sec_edgar |
| common_shares_issued | {"unit": "shares", "value": 172993479, "concept": "us-gaap:CommonStockSharesIssued"} | 2025-12-31 | sec_edgar |
| common_shares_issued | {"unit": "shares", "value": 184813974, "concept": "us-gaap:CommonStockSharesIssued"} | 2024-12-31 | sec_edgar |
| cost_of_revenue | {"amount": 54181000, "concept": "us-gaap:CostOfRevenue", "currency": "USD"} | 2025-12-31 | sec_edgar |
| cost_of_revenue | {"amount": 59705000, "concept": "us-gaap:CostOfRevenue", "currency": "USD"} | 2024-12-31 | sec_edgar |
| cost_of_revenue | {"amount": 60986000, "concept": "us-gaap:CostOfRevenue", "currency": "USD"} | 2023-12-31 | sec_edgar |
| current_assets | {"amount": 267505000, "concept": "us-gaap:AssetsCurrent", "currency": "USD"} | 2025-12-31 | sec_edgar |
| current_assets | {"amount": 284590000, "concept": "us-gaap:AssetsCurrent", "currency": "USD"} | 2024-12-31 | sec_edgar |
| current_liabilities | {"amount": 87963000, "concept": "us-gaap:LiabilitiesCurrent", "currency": "USD"} | 2025-12-31 | sec_edgar |
| current_liabilities | {"amount": 80022000, "concept": "us-gaap:LiabilitiesCurrent", "currency": "USD"} | 2024-12-31 | sec_edgar |
| depreciation_amortization | {"amount": 3264000, "concept": "us-gaap:DepreciationDepletionAndAmortization", "currency": | 2025-12-31 | sec_edgar |
| depreciation_amortization | {"amount": 3233000, "concept": "us-gaap:DepreciationDepletionAndAmortization", "currency": | 2024-12-31 | sec_edgar |
| depreciation_amortization | {"amount": 3961000, "concept": "us-gaap:DepreciationDepletionAndAmortization", "currency": | 2023-12-31 | sec_edgar |
| eps_basic | {"per": "shares", "amount": 0.111, "concept": "us-gaap:EarningsPerShareBasic", "currency": | 2025-12-31 | sec_edgar |
| eps_basic | {"per": "shares", "amount": 0.085, "concept": "us-gaap:EarningsPerShareBasic", "currency": | 2024-12-31 | sec_edgar |
| eps_basic | {"per": "shares", "amount": -0.085, "concept": "us-gaap:EarningsPerShareBasic", "currency" | 2023-12-31 | sec_edgar |
| eps_diluted | {"per": "shares", "amount": 0.108, "concept": "us-gaap:EarningsPerShareDiluted", "currency | 2025-12-31 | sec_edgar |
| eps_diluted | {"per": "shares", "amount": 0.082, "concept": "us-gaap:EarningsPerShareDiluted", "currency | 2024-12-31 | sec_edgar |
| eps_diluted | {"per": "shares", "amount": -0.085, "concept": "us-gaap:EarningsPerShareDiluted", "currenc | 2023-12-31 | sec_edgar |
| goodwill | {"amount": 26324000, "concept": "us-gaap:Goodwill", "currency": "USD"} | 2025-12-31 | sec_edgar |
| goodwill | {"amount": 22168000, "concept": "us-gaap:Goodwill", "currency": "USD"} | 2024-12-31 | sec_edgar |
| goodwill | {"amount": 21832000, "concept": "us-gaap:Goodwill", "currency": "USD"} | 2023-12-31 | sec_edgar |
| gross_profit | {"amount": 186336000, "concept": "us-gaap:GrossProfit", "currency": "USD"} | 2025-12-31 | sec_edgar |
| gross_profit | {"amount": 166956000, "concept": "us-gaap:GrossProfit", "currency": "USD"} | 2024-12-31 | sec_edgar |
| gross_profit | {"amount": 139847000, "concept": "us-gaap:GrossProfit", "currency": "USD"} | 2023-12-31 | sec_edgar |
| income_tax_expense | {"amount": 2453000, "concept": "us-gaap:IncomeTaxExpenseBenefit", "currency": "USD"} | 2025-12-31 | sec_edgar |
| income_tax_expense | {"amount": -2540000, "concept": "us-gaap:IncomeTaxExpenseBenefit", "currency": "USD"} | 2024-12-31 | sec_edgar |
| income_tax_expense | {"amount": 3393000, "concept": "us-gaap:IncomeTaxExpenseBenefit", "currency": "USD"} | 2023-12-31 | sec_edgar |
| industry_sic | {"code": "7372", "scheme": "SIC", "description": "Services-Prepackaged Software"} | sec_edgar | |
| intangible_assets | {"amount": 7949000, "concept": "us-gaap:FiniteLivedIntangibleAssetsNet", "currency": "USD" | 2025-12-31 | sec_edgar |
| intangible_assets | {"amount": 6822000, "concept": "us-gaap:FiniteLivedIntangibleAssetsNet", "currency": "USD" | 2024-12-31 | sec_edgar |
| marketable_securities | {"amount": 176357000, "concept": "us-gaap:MarketableSecuritiesCurrent", "currency": "USD"} | 2025-12-31 | sec_edgar |
| marketable_securities | {"amount": 196135000, "concept": "us-gaap:MarketableSecuritiesCurrent", "currency": "USD"} | 2024-12-31 | sec_edgar |
| net_income | {"amount": 20010000, "concept": "us-gaap:NetIncomeLoss", "currency": "USD"} | 2025-12-31 | sec_edgar |
| net_income | {"amount": 15818000, "concept": "us-gaap:NetIncomeLoss", "currency": "USD"} | 2024-12-31 | sec_edgar |
| net_income | {"amount": -15848000, "concept": "us-gaap:NetIncomeLoss", "currency": "USD"} | 2023-12-31 | sec_edgar |
| noncurrent_assets | {"amount": 79127000, "concept": "us-gaap:AssetsNoncurrent", "currency": "USD"} | 2025-12-31 | sec_edgar |
| noncurrent_assets | {"amount": 77516000, "concept": "us-gaap:AssetsNoncurrent", "currency": "USD"} | 2024-12-31 | sec_edgar |
| noncurrent_liabilities | {"amount": 25110000, "concept": "us-gaap:LiabilitiesNoncurrent", "currency": "USD"} | 2025-12-31 | sec_edgar |
| noncurrent_liabilities | {"amount": 27938000, "concept": "us-gaap:LiabilitiesNoncurrent", "currency": "USD"} | 2024-12-31 | sec_edgar |
| operating_income | {"amount": 18108000, "concept": "us-gaap:OperatingIncomeLoss", "currency": "USD"} | 2025-12-31 | sec_edgar |
| operating_income | {"amount": 7386000, "concept": "us-gaap:OperatingIncomeLoss", "currency": "USD"} | 2024-12-31 | sec_edgar |
| operating_income | {"amount": -14045000, "concept": "us-gaap:OperatingIncomeLoss", "currency": "USD"} | 2023-12-31 | sec_edgar |
| operating_lease_liability | {"amount": 2884000, "concept": "us-gaap:OperatingLeaseLiability", "currency": "USD"} | 2025-12-31 | sec_edgar |
| operating_lease_liability | {"amount": 3312000, "concept": "us-gaap:OperatingLeaseLiability", "currency": "USD"} | 2024-12-31 | sec_edgar |
| ppe_net | {"amount": 3245000, "concept": "us-gaap:PropertyPlantAndEquipmentNet", "currency": "USD"} | 2025-12-31 | sec_edgar |
| ppe_net | {"amount": 2970000, "concept": "us-gaap:PropertyPlantAndEquipmentNet", "currency": "USD"} | 2024-12-31 | sec_edgar |
| pretax_income | {"amount": 22481000, "concept": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTax | 2025-12-31 | sec_edgar |
| pretax_income | {"amount": 13270000, "concept": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTax | 2024-12-31 | sec_edgar |
| pretax_income | {"amount": -12465000, "concept": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTa | 2023-12-31 | sec_edgar |
| profit_loss | {"amount": 20028000, "concept": "us-gaap:ProfitLoss", "currency": "USD"} | 2025-12-31 | sec_edgar |
| profit_loss | {"amount": 15810000, "concept": "us-gaap:ProfitLoss", "currency": "USD"} | 2024-12-31 | sec_edgar |
| profit_loss | {"amount": -15858000, "concept": "us-gaap:ProfitLoss", "currency": "USD"} | 2023-12-31 | sec_edgar |
| retained_earnings | {"amount": -89804000, "concept": "us-gaap:RetainedEarningsAccumulatedDeficit", "currency": | 2025-12-31 | sec_edgar |
| retained_earnings | {"amount": -109814000, "concept": "us-gaap:RetainedEarningsAccumulatedDeficit", "currency" | 2024-12-31 | sec_edgar |
| revenue | {"amount": 240517000, "concept": "us-gaap:RevenueFromContractWithCustomerExcludingAssessed | 2025-12-31 | sec_edgar |
| revenue | {"amount": 226661000, "concept": "us-gaap:RevenueFromContractWithCustomerExcludingAssessed | 2024-12-31 | sec_edgar |
| revenue | {"amount": 200833000, "concept": "us-gaap:RevenueFromContractWithCustomerExcludingAssessed | 2023-12-31 | sec_edgar |
| rnd_expense | {"amount": 63891000, "concept": "us-gaap:ResearchAndDevelopmentExpense", "currency": "USD" | 2025-12-31 | sec_edgar |
| rnd_expense | {"amount": 55412000, "concept": "us-gaap:ResearchAndDevelopmentExpense", "currency": "USD" | 2024-12-31 | sec_edgar |
| rnd_expense | {"amount": 60206000, "concept": "us-gaap:ResearchAndDevelopmentExpense", "currency": "USD" | 2023-12-31 | sec_edgar |
| sga_expense | {"amount": 33996000, "concept": "us-gaap:GeneralAndAdministrativeExpense", "currency": "US | 2025-12-31 | sec_edgar |
| sga_expense | {"amount": 34284000, "concept": "us-gaap:GeneralAndAdministrativeExpense", "currency": "US | 2024-12-31 | sec_edgar |
| sga_expense | {"amount": 32412000, "concept": "us-gaap:GeneralAndAdministrativeExpense", "currency": "US | 2023-12-31 | sec_edgar |
| share_based_compensation | {"amount": 17225000, "concept": "us-gaap:ShareBasedCompensation", "currency": "USD"} | 2025-12-31 | sec_edgar |
| share_based_compensation | {"amount": 16885000, "concept": "us-gaap:ShareBasedCompensation", "currency": "USD"} | 2024-12-31 | sec_edgar |
| share_based_compensation | {"amount": 15582000, "concept": "us-gaap:ShareBasedCompensation", "currency": "USD"} | 2023-12-31 | sec_edgar |
| share_repurchase | {"amount": 59108000, "concept": "us-gaap:PaymentsForRepurchaseOfCommonStock", "currency": | 2025-12-31 | sec_edgar |
| share_repurchase | {"amount": 11202000, "concept": "us-gaap:PaymentsForRepurchaseOfCommonStock", "currency": | 2024-12-31 | sec_edgar |
| share_repurchase | {"amount": 35243000, "concept": "us-gaap:PaymentsForRepurchaseOfCommonStock", "currency": | 2023-12-31 | sec_edgar |
| shares_wavg_basic | {"unit": "shares", "value": 179623, "concept": "us-gaap:WeightedAverageNumberOfSharesOutst | 2025-12-31 | sec_edgar |
| shares_wavg_basic | {"unit": "shares", "value": 185044, "concept": "us-gaap:WeightedAverageNumberOfSharesOutst | 2024-12-31 | sec_edgar |
| shares_wavg_basic | {"unit": "shares", "value": 186365, "concept": "us-gaap:WeightedAverageNumberOfSharesOutst | 2023-12-31 | sec_edgar |
| shares_wavg_diluted | {"unit": "shares", "value": 185109, "concept": "us-gaap:WeightedAverageNumberOfDilutedShar | 2025-12-31 | sec_edgar |
| shares_wavg_diluted | {"unit": "shares", "value": 192334, "concept": "us-gaap:WeightedAverageNumberOfDilutedShar | 2024-12-31 | sec_edgar |
| shares_wavg_diluted | {"unit": "shares", "value": 186365, "concept": "us-gaap:WeightedAverageNumberOfDilutedShar | 2023-12-31 | sec_edgar |
| stockholders_equity | {"amount": 233496000, "concept": "us-gaap:StockholdersEquity", "currency": "USD"} | 2025-12-31 | sec_edgar |
| stockholders_equity | {"amount": 254114000, "concept": "us-gaap:StockholdersEquity", "currency": "USD"} | 2024-12-31 | sec_edgar |
| total_assets | {"amount": 346632000, "concept": "us-gaap:Assets", "currency": "USD"} | 2025-12-31 | sec_edgar |
| total_assets | {"amount": 362106000, "concept": "us-gaap:Assets", "currency": "USD"} | 2024-12-31 | sec_edgar |
| total_equity | {"amount": 233559000, "concept": "us-gaap:StockholdersEquityIncludingPortionAttributableTo | 2025-12-31 | sec_edgar |
| total_equity | {"amount": 254146000, "concept": "us-gaap:StockholdersEquityIncludingPortionAttributableTo | 2024-12-31 | sec_edgar |
| total_equity | {"amount": 238718000, "concept": "us-gaap:StockholdersEquityIncludingPortionAttributableTo | 2023-12-31 | sec_edgar |
| total_equity | {"amount": 272676000, "concept": "us-gaap:StockholdersEquityIncludingPortionAttributableTo | 2022-12-31 | sec_edgar |
| total_liabilities_and_equity | {"amount": 346632000, "concept": "us-gaap:LiabilitiesAndStockholdersEquity", "currency": " | 2025-12-31 | sec_edgar |
| total_liabilities_and_equity | {"amount": 362106000, "concept": "us-gaap:LiabilitiesAndStockholdersEquity", "currency": " | 2024-12-31 | sec_edgar |
| xbrl:AccountingProfit | {"amount": 9663000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AccountingProfit | {"amount": -10587000, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:AccountingProfit | {"amount": -56444000, "currency": "USD"} | 2022-12-31 | sec_edgar |
| xbrl:AccountingProfit | {"amount": -69986000, "currency": "USD"} | 2021-12-31 | sec_edgar |
| xbrl:AccountingProfit | {"amount": 3463000, "currency": "USD"} | 2020-12-31 | sec_edgar |
| xbrl:AccountingProfit | {"amount": -3693000, "currency": "USD"} | 2019-12-31 | sec_edgar |
| xbrl:AccountsPayableAndAccruedLiabilitiesCurrent | {"amount": 36216000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:AccountsPayableAndAccruedLiabilitiesCurrent | {"amount": 36003000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AccountsPayableAndAccruedLiabilitiesCurrentAndNoncurrent | {"amount": 39818000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:AccountsPayableAndAccruedLiabilitiesCurrentAndNoncurrent | {"amount": 37757000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AccountsPayableAndAccruedLiabilitiesNoncurrent | {"amount": 3602000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:AccountsPayableAndAccruedLiabilitiesNoncurrent | {"amount": 1754000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AccountsPayableTradeCurrentAndNoncurrent | {"amount": 17773000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:AccountsPayableTradeCurrentAndNoncurrent | {"amount": 15840000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AccountsReceivableGross | {"amount": 68933000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:AccountsReceivableGross | {"amount": 64855000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AccountsReceivableNet | {"amount": 67819000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:AccountsReceivableNet | {"amount": 63903000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AccountsReceivableNetCurrent | {"amount": 61601000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:AccountsReceivableNetCurrent | {"amount": 52519000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AccountsReceivableNetNoncurrent | {"amount": 6218000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:AccountsReceivableNetNoncurrent | {"amount": 11384000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AccrualForTaxesOtherThanIncomeTaxesCurrentAndNoncurrent | {"amount": 7055000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:AccrualForTaxesOtherThanIncomeTaxesCurrentAndNoncurrent | {"amount": 6612000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AccruedIncomeOtherThanContractAssets | {"amount": 29000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AccruedIncomeOtherThanContractAssets | {"amount": 0, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:AccruedIncomeOtherThanContractAssets | {"amount": 9000, "currency": "USD"} | 2022-12-31 | sec_edgar |
| xbrl:AccruedIncomeOtherThanContractAssets | {"amount": 62000, "currency": "USD"} | 2021-12-31 | sec_edgar |
| xbrl:AccruedIncomeOtherThanContractAssets | {"amount": 679000, "currency": "USD"} | 2020-12-31 | sec_edgar |
| xbrl:AccruedIncomeTaxes | {"amount": 369000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:AccruedIncomeTaxes | {"amount": 1411000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment | {"amount": 5359000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment | {"amount": 3807000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AccumulatedOtherComprehensiveIncomeLossNetOfTax | {"amount": 1307000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:AccumulatedOtherComprehensiveIncomeLossNetOfTax | {"amount": -2023000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AcquisitionsThroughBusinessCombinationsIntangibleAssetsAndGoodwill | {"amount": 368000, "currency": "USD"} | 2021-12-31 | sec_edgar |
| xbrl:AcquisitionsThroughBusinessCombinationsPropertyPlantAndEquipment | {"amount": 2069000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AcquisitionsThroughBusinessCombinationsPropertyPlantAndEquipment | {"amount": 472000, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:AcquisitionsThroughBusinessCombinationsPropertyPlantAndEquipment | {"amount": 340000, "currency": "USD"} | 2022-12-31 | sec_edgar |
| xbrl:AcquisitionsThroughBusinessCombinationsPropertyPlantAndEquipment | {"amount": 1383000, "currency": "USD"} | 2021-12-31 | sec_edgar |
| xbrl:AcquisitionsThroughBusinessCombinationsPropertyPlantAndEquipment | {"amount": 1648000, "currency": "USD"} | 2020-12-31 | sec_edgar |
| xbrl:AdditionalAllowanceRecognisedInProfitOrLossAllowanceAccountForCreditLossesOfFinancialAssets | {"amount": 1472000, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:AdditionalAllowanceRecognisedInProfitOrLossAllowanceAccountForCreditLossesOfFinancialAssets | {"amount": 852000, "currency": "USD"} | 2022-12-31 | sec_edgar |
| xbrl:AdditionalAllowanceRecognisedInProfitOrLossAllowanceAccountForCreditLossesOfFinancialAssets | {"amount": 887000, "currency": "USD"} | 2021-12-31 | sec_edgar |
| xbrl:AdditionalAllowanceRecognisedInProfitOrLossAllowanceAccountForCreditLossesOfFinancialAssets | {"amount": 972000, "currency": "USD"} | 2020-12-31 | sec_edgar |
| xbrl:AdditionalAllowanceRecognisedInProfitOrLossAllowanceAccountForCreditLossesOfFinancialAssets | {"amount": 552000, "currency": "USD"} | 2019-12-31 | sec_edgar |
| xbrl:AdditionalPaidInCapitalCommonStock | {"amount": 321976000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:AdditionalPaidInCapitalCommonStock | {"amount": 365933000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AdditionsOtherThanThroughBusinessCombinationsIntangibleAssetsOtherThanGoodwill | {"amount": 21200000, "currency": "USD"} | 2021-12-31 | sec_edgar |
| xbrl:AdditionsOtherThanThroughBusinessCombinationsIntangibleAssetsOtherThanGoodwill | {"amount": 1109000, "currency": "USD"} | 2020-12-31 | sec_edgar |
| xbrl:AdditionsOtherThanThroughBusinessCombinationsPropertyPlantAndEquipment | {"amount": 44000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AdditionsOtherThanThroughBusinessCombinationsPropertyPlantAndEquipment | {"amount": 62000, "currency": "USD"} | 2021-12-31 | sec_edgar |
| xbrl:AdditionsOtherThanThroughBusinessCombinationsPropertyPlantAndEquipment | {"amount": 12000, "currency": "USD"} | 2020-12-31 | sec_edgar |
| xbrl:AdditionsToRightofuseAssets | {"amount": 252000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AdditionsToRightofuseAssets | {"amount": 85000, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:AdditionsToRightofuseAssets | {"amount": 942000, "currency": "USD"} | 2022-12-31 | sec_edgar |
| xbrl:AdditionsToRightofuseAssets | {"amount": 384000, "currency": "USD"} | 2021-12-31 | sec_edgar |
| xbrl:AdjustedWeightedAverageShares | {"unit": "shares", "value": 192334000} | 2024-12-31 | sec_edgar |
| xbrl:AdjustedWeightedAverageShares | {"unit": "shares", "value": 186365000} | 2023-12-31 | sec_edgar |
| xbrl:AdjustedWeightedAverageShares | {"unit": "shares", "value": 190695000} | 2022-12-31 | sec_edgar |
| xbrl:AdjustedWeightedAverageShares | {"unit": "shares", "value": 181554000} | 2021-12-31 | sec_edgar |
| xbrl:AdjustmentsForDecreaseIncreaseInAccruedIncomeOtherThanContractAssets | {"amount": -14168000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AdjustmentsForDecreaseIncreaseInAccruedIncomeOtherThanContractAssets | {"amount": -23757000, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:AdjustmentsForDecreaseIncreaseInAccruedIncomeOtherThanContractAssets | {"amount": -2252000, "currency": "USD"} | 2022-12-31 | sec_edgar |
| xbrl:AdjustmentsForDecreaseIncreaseInAccruedIncomeOtherThanContractAssets | {"amount": -264000, "currency": "USD"} | 2021-12-31 | sec_edgar |
| xbrl:AdjustmentsForDecreaseIncreaseInOtherAssets | {"amount": -531000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AdjustmentsForDecreaseIncreaseInOtherAssets | {"amount": 583000, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:AdjustmentsForDecreaseIncreaseInOtherAssets | {"amount": -583000, "currency": "USD"} | 2022-12-31 | sec_edgar |
| xbrl:AdjustmentsForDecreaseIncreaseInOtherAssets | {"amount": 186000, "currency": "USD"} | 2021-12-31 | sec_edgar |
| xbrl:AdjustmentsForDecreaseIncreaseInOtherAssets | {"amount": -13000, "currency": "USD"} | 2020-12-31 | sec_edgar |
| xbrl:AdjustmentsForDecreaseIncreaseInOtherAssets | {"amount": 449000, "currency": "USD"} | 2019-12-31 | sec_edgar |
| xbrl:AdjustmentsForDecreaseIncreaseInPrepaidExpenses | {"amount": -466000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AdjustmentsForDecreaseIncreaseInPrepaidExpenses | {"amount": -598000, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:AdjustmentsForDecreaseIncreaseInPrepaidExpenses | {"amount": 3947000, "currency": "USD"} | 2022-12-31 | sec_edgar |
| xbrl:AdjustmentsForDecreaseIncreaseInPrepaidExpenses | {"amount": -2741000, "currency": "USD"} | 2021-12-31 | sec_edgar |
| xbrl:AdjustmentsForDecreaseIncreaseInPrepaidExpenses | {"amount": -3727000, "currency": "USD"} | 2020-12-31 | sec_edgar |
| xbrl:AdjustmentsForDecreaseIncreaseInPrepaidExpenses | {"amount": -114000, "currency": "USD"} | 2019-12-31 | sec_edgar |
| xbrl:AdjustmentsForDecreaseIncreaseInTradeAccountReceivable | {"amount": -22679000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AdjustmentsForDecreaseIncreaseInTradeAccountReceivable | {"amount": -13137000, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:AdjustmentsForDecreaseIncreaseInTradeAccountReceivable | {"amount": -3579000, "currency": "USD"} | 2022-12-31 | sec_edgar |
| xbrl:AdjustmentsForDecreaseIncreaseInTradeAccountReceivable | {"amount": -16749000, "currency": "USD"} | 2021-12-31 | sec_edgar |
| xbrl:AdjustmentsForDecreaseIncreaseInTradeAccountReceivable | {"amount": -10104000, "currency": "USD"} | 2020-12-31 | sec_edgar |
| xbrl:AdjustmentsForDecreaseIncreaseInTradeAccountReceivable | {"amount": -6680000, "currency": "USD"} | 2019-12-31 | sec_edgar |
| xbrl:AdjustmentsForDeferredTaxExpense | {"amount": -3746000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AdjustmentsForDeferredTaxExpense | {"amount": -2075000, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:AdjustmentsForDeferredTaxExpense | {"amount": -4902000, "currency": "USD"} | 2022-12-31 | sec_edgar |
| xbrl:AdjustmentsForDeferredTaxExpense | {"amount": -11118000, "currency": "USD"} | 2021-12-31 | sec_edgar |
| xbrl:AdjustmentsForDeferredTaxExpense | {"amount": -616000, "currency": "USD"} | 2020-12-31 | sec_edgar |
| xbrl:AdjustmentsForDeferredTaxExpense | {"amount": -132000, "currency": "USD"} | 2019-12-31 | sec_edgar |
| xbrl:AdjustmentsForDepreciationAndAmortisationExpense | {"amount": 4363000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AdjustmentsForDepreciationAndAmortisationExpense | {"amount": 5018000, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:AdjustmentsForDepreciationAndAmortisationExpense | {"amount": 4616000, "currency": "USD"} | 2022-12-31 | sec_edgar |
| xbrl:AdjustmentsForDepreciationAndAmortisationExpense | {"amount": 4072000, "currency": "USD"} | 2021-12-31 | sec_edgar |
| xbrl:AdjustmentsForDepreciationAndAmortisationExpense | {"amount": 2400000, "currency": "USD"} | 2020-12-31 | sec_edgar |
| xbrl:AdjustmentsForDepreciationAndAmortisationExpense | {"amount": 2526000, "currency": "USD"} | 2019-12-31 | sec_edgar |
| xbrl:AdjustmentsForGainLossOnDisposalOfInvestmentsInSubsidiariesJointVenturesAndAssociates | {"amount": 587000, "currency": "USD"} | 2021-12-31 | sec_edgar |
| xbrl:AdjustmentsForGainLossOnDisposalOfInvestmentsInSubsidiariesJointVenturesAndAssociates | {"amount": 78000, "currency": "USD"} | 2020-12-31 | sec_edgar |
| xbrl:AdjustmentsForGainLossOnDisposalOfInvestmentsInSubsidiariesJointVenturesAndAssociates | {"amount": 10000, "currency": "USD"} | 2019-12-31 | sec_edgar |
| xbrl:AdjustmentsForGainLossOnDisposalsPropertyPlantAndEquipment | {"amount": -120000, "currency": "USD"} | 2024-12-31 | sec_edgar |