Organization record
ECMOHO Ltd
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_payable | {"amount": 35851079, "concept": "us-gaap:AccountsPayableCurrent", "currency": "USD"} | 2021-12-31 | sec_edgar |
| accounts_payable | {"amount": 24190898, "concept": "us-gaap:AccountsPayableCurrent", "currency": "USD"} | 2020-12-31 | sec_edgar |
| accounts_payable | {"amount": 26439191, "concept": "us-gaap:AccountsPayableCurrent", "currency": "USD"} | 2019-12-31 | sec_edgar |
| accounts_payable | {"amount": 23539964, "concept": "us-gaap:AccountsPayableCurrent", "currency": "USD"} | 2018-12-31 | sec_edgar |
| accounts_receivable | {"amount": 16161652, "concept": "us-gaap:AccountsReceivableNetCurrent", "currency": "USD"} | 2021-12-31 | sec_edgar |
| accounts_receivable | {"amount": 42005638, "concept": "us-gaap:AccountsReceivableNetCurrent", "currency": "USD"} | 2020-12-31 | sec_edgar |
| accounts_receivable | {"amount": 49829419, "concept": "us-gaap:AccountsReceivableNetCurrent", "currency": "USD"} | 2019-12-31 | sec_edgar |
| accounts_receivable | {"amount": 33839528, "concept": "us-gaap:AccountsReceivableNetCurrent", "currency": "USD"} | 2018-12-31 | sec_edgar |
| capex | {"amount": 102826, "concept": "us-gaap:PaymentsToAcquirePropertyPlantAndEquipment", "curre | 2021-12-31 | sec_edgar |
| capex | {"amount": 119092, "concept": "us-gaap:PaymentsToAcquirePropertyPlantAndEquipment", "curre | 2020-12-31 | sec_edgar |
| capex | {"amount": 557627, "concept": "us-gaap:PaymentsToAcquirePropertyPlantAndEquipment", "curre | 2019-12-31 | sec_edgar |
| capex | {"amount": 1423064, "concept": "us-gaap:PaymentsToAcquirePropertyPlantAndEquipment", "curr | 2018-12-31 | sec_edgar |
| capex | {"amount": 52477, "concept": "us-gaap:PaymentsToAcquirePropertyPlantAndEquipment", "curren | 2017-12-31 | sec_edgar |
| cash_and_equivalents | {"amount": 43623588, "concept": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "currency | 2021-12-31 | sec_edgar |
| cash_and_equivalents | {"amount": 45284308, "concept": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "currency | 2020-12-31 | sec_edgar |
| cash_and_equivalents | {"amount": 49098841, "concept": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "currency | 2019-12-31 | sec_edgar |
| cash_and_equivalents | {"amount": 10336467, "concept": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "currency | 2018-12-31 | sec_edgar |
| cash_and_equivalents | {"amount": 10689462, "concept": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "currency | 2017-12-31 | sec_edgar |
| cash_and_restricted_cash | {"amount": 43623588, "concept": "us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCas | 2021-12-31 | sec_edgar |
| cash_and_restricted_cash | {"amount": 45284308, "concept": "us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCas | 2020-12-31 | sec_edgar |
| cash_and_restricted_cash | {"amount": 51098895, "concept": "us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCas | 2019-12-31 | sec_edgar |
| cash_and_restricted_cash | {"amount": 12964859, "concept": "us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCas | 2018-12-31 | sec_edgar |
| cash_and_restricted_cash | {"amount": 10689462, "concept": "us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCas | 2017-12-31 | sec_edgar |
| cash_and_restricted_cash | {"amount": 12078808, "concept": "us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCas | 2016-12-31 | sec_edgar |
| cashflow_financing | {"amount": -718138, "concept": "us-gaap:NetCashProvidedByUsedInFinancingActivities", "curr | 2021-12-31 | sec_edgar |
| cashflow_financing | {"amount": -22786168, "concept": "us-gaap:NetCashProvidedByUsedInFinancingActivities", "cu | 2020-12-31 | sec_edgar |
| cashflow_financing | {"amount": 54337056, "concept": "us-gaap:NetCashProvidedByUsedInFinancingActivities", "cur | 2019-12-31 | sec_edgar |
| cashflow_financing | {"amount": 44036300, "concept": "us-gaap:NetCashProvidedByUsedInFinancingActivities", "cur | 2018-12-31 | sec_edgar |
| cashflow_financing | {"amount": 1583214, "concept": "us-gaap:NetCashProvidedByUsedInFinancingActivities", "curr | 2017-12-31 | sec_edgar |
| cashflow_investing | {"amount": -1074088, "concept": "us-gaap:NetCashProvidedByUsedInInvestingActivities", "cur | 2021-12-31 | sec_edgar |
| cashflow_investing | {"amount": -6643839, "concept": "us-gaap:NetCashProvidedByUsedInInvestingActivities", "cur | 2020-12-31 | sec_edgar |
| cashflow_investing | {"amount": -813007, "concept": "us-gaap:NetCashProvidedByUsedInInvestingActivities", "curr | 2019-12-31 | sec_edgar |
| cashflow_investing | {"amount": -1747784, "concept": "us-gaap:NetCashProvidedByUsedInInvestingActivities", "cur | 2018-12-31 | sec_edgar |
| cashflow_investing | {"amount": -508224, "concept": "us-gaap:NetCashProvidedByUsedInInvestingActivities", "curr | 2017-12-31 | sec_edgar |
| cashflow_operating | {"amount": 4078545, "concept": "us-gaap:NetCashProvidedByUsedInOperatingActivities", "curr | 2021-12-31 | sec_edgar |
| cashflow_operating | {"amount": 21600717, "concept": "us-gaap:NetCashProvidedByUsedInOperatingActivities", "cur | 2020-12-31 | sec_edgar |
| cashflow_operating | {"amount": -14188945, "concept": "us-gaap:NetCashProvidedByUsedInOperatingActivities", "cu | 2019-12-31 | sec_edgar |
| cashflow_operating | {"amount": -40755516, "concept": "us-gaap:NetCashProvidedByUsedInOperatingActivities", "cu | 2018-12-31 | sec_edgar |
| cashflow_operating | {"amount": -2443857, "concept": "us-gaap:NetCashProvidedByUsedInOperatingActivities", "cur | 2017-12-31 | sec_edgar |
| cost_of_revenue | {"amount": 122748704, "concept": "us-gaap:CostOfRevenue", "currency": "USD"} | 2021-12-31 | sec_edgar |
| cost_of_revenue | {"amount": 246299626, "concept": "us-gaap:CostOfRevenue", "currency": "USD"} | 2020-12-31 | sec_edgar |
| cost_of_revenue | {"amount": 257431074, "concept": "us-gaap:CostOfRevenue", "currency": "USD"} | 2019-12-31 | sec_edgar |
| cost_of_revenue | {"amount": 140153462, "concept": "us-gaap:CostOfRevenue", "currency": "USD"} | 2018-12-31 | sec_edgar |
| cost_of_revenue | {"amount": 69124047, "concept": "us-gaap:CostOfRevenue", "currency": "USD"} | 2017-12-31 | sec_edgar |
| current_assets | {"amount": 87127092, "concept": "us-gaap:AssetsCurrent", "currency": "USD"} | 2021-12-31 | sec_edgar |
| current_assets | {"amount": 130399278, "concept": "us-gaap:AssetsCurrent", "currency": "USD"} | 2020-12-31 | sec_edgar |
| current_assets | {"amount": 172189090, "concept": "us-gaap:AssetsCurrent", "currency": "USD"} | 2019-12-31 | sec_edgar |
| current_assets | {"amount": 111747188, "concept": "us-gaap:AssetsCurrent", "currency": "USD"} | 2018-12-31 | sec_edgar |
| current_liabilities | {"amount": 63891668, "concept": "us-gaap:LiabilitiesCurrent", "currency": "USD"} | 2021-12-31 | sec_edgar |
| current_liabilities | {"amount": 61110666, "concept": "us-gaap:LiabilitiesCurrent", "currency": "USD"} | 2020-12-31 | sec_edgar |
| current_liabilities | {"amount": 93562175, "concept": "us-gaap:LiabilitiesCurrent", "currency": "USD"} | 2019-12-31 | sec_edgar |
| current_liabilities | {"amount": 74829252, "concept": "us-gaap:LiabilitiesCurrent", "currency": "USD"} | 2018-12-31 | sec_edgar |
| eps_basic | {"per": "shares", "amount": -0.35, "concept": "us-gaap:EarningsPerShareBasic", "currency": | 2021-12-31 | sec_edgar |
| eps_basic | {"per": "shares", "amount": -0.1, "concept": "us-gaap:EarningsPerShareBasic", "currency": | 2020-12-31 | sec_edgar |
| eps_basic | {"per": "shares", "amount": 0.01, "concept": "us-gaap:EarningsPerShareBasic", "currency": | 2019-12-31 | sec_edgar |
| eps_basic | {"per": "shares", "amount": -0.26, "concept": "us-gaap:EarningsPerShareBasic", "currency": | 2018-12-31 | sec_edgar |
| eps_basic | {"per": "shares", "amount": -0.01, "concept": "us-gaap:EarningsPerShareBasic", "currency": | 2017-12-31 | sec_edgar |
| eps_diluted | {"per": "shares", "amount": -0.35, "concept": "us-gaap:EarningsPerShareDiluted", "currency | 2021-12-31 | sec_edgar |
| eps_diluted | {"per": "shares", "amount": -0.1, "concept": "us-gaap:EarningsPerShareDiluted", "currency" | 2020-12-31 | sec_edgar |
| eps_diluted | {"per": "shares", "amount": 0.01, "concept": "us-gaap:EarningsPerShareDiluted", "currency" | 2019-12-31 | sec_edgar |
| eps_diluted | {"per": "shares", "amount": -0.26, "concept": "us-gaap:EarningsPerShareDiluted", "currency | 2018-12-31 | sec_edgar |
| eps_diluted | {"per": "shares", "amount": -0.01, "concept": "us-gaap:EarningsPerShareDiluted", "currency | 2017-12-31 | sec_edgar |
| gross_profit | {"amount": 7997856, "concept": "us-gaap:GrossProfit", "currency": "USD"} | 2021-12-31 | sec_edgar |
| gross_profit | {"amount": 58639139, "concept": "us-gaap:GrossProfit", "currency": "USD"} | 2020-12-31 | sec_edgar |
| gross_profit | {"amount": 72048842, "concept": "us-gaap:GrossProfit", "currency": "USD"} | 2019-12-31 | sec_edgar |
| gross_profit | {"amount": 58861574, "concept": "us-gaap:GrossProfit", "currency": "USD"} | 2018-12-31 | sec_edgar |
| gross_profit | {"amount": 29113522, "concept": "us-gaap:GrossProfit", "currency": "USD"} | 2017-12-31 | sec_edgar |
| income_tax_expense | {"amount": -2934198, "concept": "us-gaap:IncomeTaxExpenseBenefit", "currency": "USD"} | 2021-12-31 | sec_edgar |
| income_tax_expense | {"amount": -6504, "concept": "us-gaap:IncomeTaxExpenseBenefit", "currency": "USD"} | 2020-12-31 | sec_edgar |
| income_tax_expense | {"amount": 249639, "concept": "us-gaap:IncomeTaxExpenseBenefit", "currency": "USD"} | 2019-12-31 | sec_edgar |
| income_tax_expense | {"amount": 417124, "concept": "us-gaap:IncomeTaxExpenseBenefit", "currency": "USD"} | 2018-12-31 | sec_edgar |
| income_tax_expense | {"amount": 80576, "concept": "us-gaap:IncomeTaxExpenseBenefit", "currency": "USD"} | 2017-12-31 | sec_edgar |
| industry_sic | {"code": "5961", "scheme": "SIC", "description": "Retail-Catalog & Mail-Order Houses"} | sec_edgar | |
| intangible_assets | {"amount": 103197, "concept": "us-gaap:IntangibleAssetsNetExcludingGoodwill", "currency": | 2021-12-31 | sec_edgar |
| intangible_assets | {"amount": 565106, "concept": "us-gaap:IntangibleAssetsNetExcludingGoodwill", "currency": | 2020-12-31 | sec_edgar |
| intangible_assets | {"amount": 1311653, "concept": "us-gaap:IntangibleAssetsNetExcludingGoodwill", "currency": | 2019-12-31 | sec_edgar |
| intangible_assets | {"amount": 1502231, "concept": "us-gaap:IntangibleAssetsNetExcludingGoodwill", "currency": | 2018-12-31 | sec_edgar |
| inventory | {"amount": 21818999, "concept": "us-gaap:InventoryNet", "currency": "USD"} | 2021-12-31 | sec_edgar |
| inventory | {"amount": 33263094, "concept": "us-gaap:InventoryNet", "currency": "USD"} | 2020-12-31 | sec_edgar |
| inventory | {"amount": 49894514, "concept": "us-gaap:InventoryNet", "currency": "USD"} | 2019-12-31 | sec_edgar |
| inventory | {"amount": 53683391, "concept": "us-gaap:InventoryNet", "currency": "USD"} | 2018-12-31 | sec_edgar |
| net_income | {"amount": -55655198, "concept": "us-gaap:NetIncomeLoss", "currency": "USD"} | 2021-12-31 | sec_edgar |
| net_income | {"amount": -13298912, "concept": "us-gaap:NetIncomeLoss", "currency": "USD"} | 2020-12-31 | sec_edgar |
| net_income | {"amount": 2296555, "concept": "us-gaap:NetIncomeLoss", "currency": "USD"} | 2019-12-31 | sec_edgar |
| net_income | {"amount": 6123990, "concept": "us-gaap:NetIncomeLoss", "currency": "USD"} | 2018-12-31 | sec_edgar |
| net_income | {"amount": 2825457, "concept": "us-gaap:NetIncomeLoss", "currency": "USD"} | 2017-12-31 | sec_edgar |
| operating_expenses | {"amount": 64177884, "concept": "us-gaap:OperatingExpenses", "currency": "USD"} | 2021-12-31 | sec_edgar |
| operating_expenses | {"amount": 72294830, "concept": "us-gaap:OperatingExpenses", "currency": "USD"} | 2020-12-31 | sec_edgar |
| operating_expenses | {"amount": 67432698, "concept": "us-gaap:OperatingExpenses", "currency": "USD"} | 2019-12-31 | sec_edgar |
| operating_expenses | {"amount": 51296731, "concept": "us-gaap:OperatingExpenses", "currency": "USD"} | 2018-12-31 | sec_edgar |
| operating_expenses | {"amount": -26234352, "concept": "us-gaap:OperatingExpenses", "currency": "USD"} | 2017-12-31 | sec_edgar |
| operating_income | {"amount": -56180028, "concept": "us-gaap:OperatingIncomeLoss", "currency": "USD"} | 2021-12-31 | sec_edgar |
| operating_income | {"amount": -13655691, "concept": "us-gaap:OperatingIncomeLoss", "currency": "USD"} | 2020-12-31 | sec_edgar |
| operating_income | {"amount": 4616144, "concept": "us-gaap:OperatingIncomeLoss", "currency": "USD"} | 2019-12-31 | sec_edgar |
| operating_income | {"amount": 7564843, "concept": "us-gaap:OperatingIncomeLoss", "currency": "USD"} | 2018-12-31 | sec_edgar |
| operating_income | {"amount": 2879170, "concept": "us-gaap:OperatingIncomeLoss", "currency": "USD"} | 2017-12-31 | sec_edgar |
| operating_lease_liability | {"amount": 1173552, "concept": "us-gaap:OperatingLeaseLiability", "currency": "USD"} | 2021-12-31 | sec_edgar |
| operating_lease_liability | {"amount": 2350442, "concept": "us-gaap:OperatingLeaseLiability", "currency": "USD"} | 2020-12-31 | sec_edgar |
| operating_lease_liability | {"amount": 1121393, "concept": "us-gaap:OperatingLeaseLiability", "currency": "USD"} | 2019-12-31 | sec_edgar |
| ppe_net | {"amount": 114522, "concept": "us-gaap:PropertyPlantAndEquipmentNet", "currency": "USD"} | 2021-12-31 | sec_edgar |
| ppe_net | {"amount": 966509, "concept": "us-gaap:PropertyPlantAndEquipmentNet", "currency": "USD"} | 2020-12-31 | sec_edgar |
| ppe_net | {"amount": 1428979, "concept": "us-gaap:PropertyPlantAndEquipmentNet", "currency": "USD"} | 2019-12-31 | sec_edgar |
| ppe_net | {"amount": 1476512, "concept": "us-gaap:PropertyPlantAndEquipmentNet", "currency": "USD"} | 2018-12-31 | sec_edgar |
| pretax_income | {"amount": -58619215, "concept": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTa | 2021-12-31 | sec_edgar |
| pretax_income | {"amount": -13491656, "concept": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTa | 2020-12-31 | sec_edgar |
| pretax_income | {"amount": 2184537, "concept": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxe | 2019-12-31 | sec_edgar |
| pretax_income | {"amount": 6566991, "concept": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxe | 2018-12-31 | sec_edgar |
| pretax_income | {"amount": 2804214, "concept": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxe | 2017-12-31 | sec_edgar |
| profit_loss | {"amount": -55685017, "concept": "us-gaap:ProfitLoss", "currency": "USD"} | 2021-12-31 | sec_edgar |
| profit_loss | {"amount": -13485152, "concept": "us-gaap:ProfitLoss", "currency": "USD"} | 2020-12-31 | sec_edgar |
| profit_loss | {"amount": 1934898, "concept": "us-gaap:ProfitLoss", "currency": "USD"} | 2019-12-31 | sec_edgar |
| profit_loss | {"amount": 6149867, "concept": "us-gaap:ProfitLoss", "currency": "USD"} | 2018-12-31 | sec_edgar |
| profit_loss | {"amount": 2723638, "concept": "us-gaap:ProfitLoss", "currency": "USD"} | 2017-12-31 | sec_edgar |
| retained_earnings | {"amount": -88510247, "concept": "us-gaap:RetainedEarningsAccumulatedDeficit", "currency": | 2021-12-31 | sec_edgar |
| retained_earnings | {"amount": -32855049, "concept": "us-gaap:RetainedEarningsAccumulatedDeficit", "currency": | 2020-12-31 | sec_edgar |
| retained_earnings | {"amount": -19556137, "concept": "us-gaap:RetainedEarningsAccumulatedDeficit", "currency": | 2019-12-31 | sec_edgar |
| retained_earnings | {"amount": -21852692, "concept": "us-gaap:RetainedEarningsAccumulatedDeficit", "currency": | 2018-12-31 | sec_edgar |
| revenue | {"amount": 130746560, "concept": "us-gaap:RevenueFromContractWithCustomerExcludingAssessed | 2021-12-31 | sec_edgar |
| revenue | {"amount": 304938765, "concept": "us-gaap:RevenueFromContractWithCustomerExcludingAssessed | 2020-12-31 | sec_edgar |
| revenue | {"amount": 329479916, "concept": "us-gaap:RevenueFromContractWithCustomerExcludingAssessed | 2019-12-31 | sec_edgar |
| revenue | {"amount": 199015036, "concept": "us-gaap:RevenueFromContractWithCustomerExcludingAssessed | 2018-12-31 | sec_edgar |
| revenue | {"amount": 98237569, "concept": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedT | 2017-12-31 | sec_edgar |
| rnd_expense | {"amount": 1052361, "concept": "us-gaap:ResearchAndDevelopmentExpense", "currency": "USD"} | 2021-12-31 | sec_edgar |
| rnd_expense | {"amount": 1105535, "concept": "us-gaap:ResearchAndDevelopmentExpense", "currency": "USD"} | 2020-12-31 | sec_edgar |
| rnd_expense | {"amount": 1808422, "concept": "us-gaap:ResearchAndDevelopmentExpense", "currency": "USD"} | 2019-12-31 | sec_edgar |
| rnd_expense | {"amount": 1669323, "concept": "us-gaap:ResearchAndDevelopmentExpense", "currency": "USD"} | 2018-12-31 | sec_edgar |
| rnd_expense | {"amount": 484089, "concept": "us-gaap:ResearchAndDevelopmentExpense", "currency": "USD"} | 2017-12-31 | sec_edgar |
| sga_expense | {"amount": 18759164, "concept": "us-gaap:GeneralAndAdministrativeExpense", "currency": "US | 2021-12-31 | sec_edgar |
| sga_expense | {"amount": 11036905, "concept": "us-gaap:GeneralAndAdministrativeExpense", "currency": "US | 2020-12-31 | sec_edgar |
| sga_expense | {"amount": 8496574, "concept": "us-gaap:GeneralAndAdministrativeExpense", "currency": "USD | 2019-12-31 | sec_edgar |
| sga_expense | {"amount": 9068864, "concept": "us-gaap:GeneralAndAdministrativeExpense", "currency": "USD | 2018-12-31 | sec_edgar |
| sga_expense | {"amount": 4004065, "concept": "us-gaap:GeneralAndAdministrativeExpense", "currency": "USD | 2017-12-31 | sec_edgar |
| share_based_compensation | {"amount": 2552318, "concept": "us-gaap:ShareBasedCompensation", "currency": "USD"} | 2021-12-31 | sec_edgar |
| share_based_compensation | {"amount": 474559, "concept": "us-gaap:ShareBasedCompensation", "currency": "USD"} | 2020-12-31 | sec_edgar |
| share_based_compensation | {"amount": 1575029, "concept": "us-gaap:ShareBasedCompensation", "currency": "USD"} | 2019-12-31 | sec_edgar |
| share_based_compensation | {"amount": 356549, "concept": "us-gaap:ShareBasedCompensation", "currency": "USD"} | 2018-12-31 | sec_edgar |
| shares_wavg_basic | {"unit": "shares", "value": 158969475, "concept": "us-gaap:WeightedAverageNumberOfSharesOu | 2021-12-31 | sec_edgar |
| shares_wavg_basic | {"unit": "shares", "value": 139619496, "concept": "us-gaap:WeightedAverageNumberOfSharesOu | 2020-12-31 | sec_edgar |
| shares_wavg_basic | {"unit": "shares", "value": 98104216, "concept": "us-gaap:WeightedAverageNumberOfSharesOut | 2019-12-31 | sec_edgar |
| shares_wavg_basic | {"unit": "shares", "value": 84970000, "concept": "us-gaap:WeightedAverageNumberOfSharesOut | 2018-12-31 | sec_edgar |
| shares_wavg_basic | {"unit": "shares", "value": 81162400, "concept": "us-gaap:WeightedAverageNumberOfSharesOut | 2017-12-31 | sec_edgar |
| shares_wavg_diluted | {"unit": "shares", "value": 158969475, "concept": "us-gaap:WeightedAverageNumberOfDilutedS | 2021-12-31 | sec_edgar |
| shares_wavg_diluted | {"unit": "shares", "value": 139619496, "concept": "us-gaap:WeightedAverageNumberOfDilutedS | 2020-12-31 | sec_edgar |
| shares_wavg_diluted | {"unit": "shares", "value": 115644864, "concept": "us-gaap:WeightedAverageNumberOfDilutedS | 2019-12-31 | sec_edgar |
| shares_wavg_diluted | {"unit": "shares", "value": 84970000, "concept": "us-gaap:WeightedAverageNumberOfDilutedSh | 2018-12-31 | sec_edgar |
| shares_wavg_diluted | {"unit": "shares", "value": 81162400, "concept": "us-gaap:WeightedAverageNumberOfDilutedSh | 2017-12-31 | sec_edgar |
| stockholders_equity | {"amount": 28916388, "concept": "us-gaap:StockholdersEquity", "currency": "USD"} | 2021-12-31 | sec_edgar |
| stockholders_equity | {"amount": 79553674, "concept": "us-gaap:StockholdersEquity", "currency": "USD"} | 2020-12-31 | sec_edgar |
| stockholders_equity | {"amount": 84124893, "concept": "us-gaap:StockholdersEquity", "currency": "USD"} | 2019-12-31 | sec_edgar |
| stockholders_equity | {"amount": -32533454, "concept": "us-gaap:StockholdersEquity", "currency": "USD"} | 2018-12-31 | sec_edgar |
| total_assets | {"amount": 93554436, "concept": "us-gaap:Assets", "currency": "USD"} | 2021-12-31 | sec_edgar |
| total_assets | {"amount": 142627909, "concept": "us-gaap:Assets", "currency": "USD"} | 2020-12-31 | sec_edgar |
| total_assets | {"amount": 178460376, "concept": "us-gaap:Assets", "currency": "USD"} | 2019-12-31 | sec_edgar |
| total_assets | {"amount": 117772408, "concept": "us-gaap:Assets", "currency": "USD"} | 2018-12-31 | sec_edgar |
| total_equity | {"amount": 28886626, "concept": "us-gaap:StockholdersEquityIncludingPortionAttributableToN | 2021-12-31 | sec_edgar |
| total_equity | {"amount": 79553674, "concept": "us-gaap:StockholdersEquityIncludingPortionAttributableToN | 2020-12-31 | sec_edgar |
| total_equity | {"amount": 84690448, "concept": "us-gaap:StockholdersEquityIncludingPortionAttributableToN | 2019-12-31 | sec_edgar |
| total_equity | {"amount": -32222550, "concept": "us-gaap:StockholdersEquityIncludingPortionAttributableTo | 2018-12-31 | sec_edgar |
| total_equity | {"amount": -20357721, "concept": "us-gaap:StockholdersEquityIncludingPortionAttributableTo | 2017-12-31 | sec_edgar |
| total_equity | {"amount": -19875597, "concept": "us-gaap:StockholdersEquityIncludingPortionAttributableTo | 2016-12-31 | sec_edgar |
| total_liabilities | {"amount": 64667810, "concept": "us-gaap:Liabilities", "currency": "USD"} | 2021-12-31 | sec_edgar |
| total_liabilities | {"amount": 63074235, "concept": "us-gaap:Liabilities", "currency": "USD"} | 2020-12-31 | sec_edgar |
| total_liabilities | {"amount": 93769928, "concept": "us-gaap:Liabilities", "currency": "USD"} | 2019-12-31 | sec_edgar |
| total_liabilities | {"amount": 75147922, "concept": "us-gaap:Liabilities", "currency": "USD"} | 2018-12-31 | sec_edgar |
| total_liabilities_and_equity | {"amount": 93554436, "concept": "us-gaap:LiabilitiesAndStockholdersEquity", "currency": "U | 2021-12-31 | sec_edgar |
| total_liabilities_and_equity | {"amount": 142627909, "concept": "us-gaap:LiabilitiesAndStockholdersEquity", "currency": " | 2020-12-31 | sec_edgar |
| total_liabilities_and_equity | {"amount": 178460376, "concept": "us-gaap:LiabilitiesAndStockholdersEquity", "currency": " | 2019-12-31 | sec_edgar |
| total_liabilities_and_equity | {"amount": 117772408, "concept": "us-gaap:LiabilitiesAndStockholdersEquity", "currency": " | 2018-12-31 | sec_edgar |
| xbrl:AccountsPayableCurrent | {"amount": 35851079, "currency": "USD"} | 2021-12-31 | sec_edgar |
| xbrl:AccountsPayableCurrent | {"amount": 24190898, "currency": "USD"} | 2020-12-31 | sec_edgar |
| xbrl:AccountsPayableCurrent | {"amount": 26439191, "currency": "USD"} | 2019-12-31 | sec_edgar |
| xbrl:AccountsPayableCurrent | {"amount": 23539964, "currency": "USD"} | 2018-12-31 | sec_edgar |
| xbrl:AccountsPayableCurrentAndNoncurrent | {"amount": 17100000, "currency": "USD"} | 2022-04-30 | sec_edgar |
| xbrl:AccountsPayableCurrentAndNoncurrent | {"amount": 17100000, "currency": "USD"} | 2021-12-31 | sec_edgar |
| xbrl:AccountsPayableRelatedPartiesCurrentAndNoncurrent | {"amount": 118183, "currency": "USD"} | 2021-12-31 | sec_edgar |
| xbrl:AccountsPayableRelatedPartiesCurrentAndNoncurrent | {"amount": 3045, "currency": "USD"} | 2020-12-31 | sec_edgar |
| xbrl:AccountsReceivableGrossCurrent | {"amount": 21612790, "currency": "USD"} | 2021-12-31 | sec_edgar |
| xbrl:AccountsReceivableGrossCurrent | {"amount": 42200500, "currency": "USD"} | 2020-12-31 | sec_edgar |
| xbrl:AccountsReceivableGrossCurrent | {"amount": 50063491, "currency": "USD"} | 2019-12-31 | sec_edgar |
| xbrl:AccountsReceivableGrossCurrent | {"amount": 33979863, "currency": "USD"} | 2018-12-31 | sec_edgar |
| xbrl:AccountsReceivableNetCurrent | {"amount": 16161652, "currency": "USD"} | 2021-12-31 | sec_edgar |
| xbrl:AccountsReceivableNetCurrent | {"amount": 42005638, "currency": "USD"} | 2020-12-31 | sec_edgar |
| xbrl:AccountsReceivableNetCurrent | {"amount": 49829419, "currency": "USD"} | 2019-12-31 | sec_edgar |
| xbrl:AccountsReceivableNetCurrent | {"amount": 33839528, "currency": "USD"} | 2018-12-31 | sec_edgar |
| xbrl:AccrualForTaxesOtherThanIncomeTaxesCurrent | {"amount": 3521, "currency": "USD"} | 2021-12-31 | sec_edgar |
| xbrl:AccrualForTaxesOtherThanIncomeTaxesCurrent | {"amount": 76848, "currency": "USD"} | 2020-12-31 | sec_edgar |
| xbrl:AccruedIncomeTaxesCurrent | {"amount": 1910373, "currency": "USD"} | 2021-12-31 | sec_edgar |
| xbrl:AccruedIncomeTaxesCurrent | {"amount": 1811852, "currency": "USD"} | 2020-12-31 | sec_edgar |
| xbrl:AccruedLiabilitiesAndOtherLiabilities | {"amount": 3857671, "currency": "USD"} | 2021-12-31 | sec_edgar |
| xbrl:AccruedLiabilitiesAndOtherLiabilities | {"amount": 5038861, "currency": "USD"} | 2020-12-31 | sec_edgar |
| xbrl:AccruedLiabilitiesAndOtherLiabilities | {"amount": 10516988, "currency": "USD"} | 2019-12-31 | sec_edgar |
| xbrl:AccruedLiabilitiesAndOtherLiabilities | {"amount": 4294370, "currency": "USD"} | 2018-12-31 | sec_edgar |
| xbrl:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment | {"amount": 2148662, "currency": "USD"} | 2021-12-31 | sec_edgar |
| xbrl:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment | {"amount": 1628553, "currency": "USD"} | 2020-12-31 | sec_edgar |
| xbrl:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment | {"amount": 1053868, "currency": "USD"} | 2019-12-31 | sec_edgar |
| xbrl:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment | {"amount": 509070, "currency": "USD"} | 2018-12-31 | sec_edgar |
| xbrl:AccumulatedOtherComprehensiveIncomeLossNetOfTax | {"amount": -1522824, "currency": "USD"} | 2021-12-31 | sec_edgar |
| xbrl:AccumulatedOtherComprehensiveIncomeLossNetOfTax | {"amount": 4037628, "currency": "USD"} | 2020-12-31 | sec_edgar |
| xbrl:AccumulatedOtherComprehensiveIncomeLossNetOfTax | {"amount": -2264635, "currency": "USD"} | 2019-12-31 | sec_edgar |
| xbrl:AccumulatedOtherComprehensiveIncomeLossNetOfTax | {"amount": -1420369, "currency": "USD"} | 2018-12-31 | sec_edgar |