Organization record
Planet Image International Limited
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": 27234000, "concept": "us-gaap:AccountsPayableCurrent", "currency": "USD"} | 2025-12-31 | sec_edgar |
| accounts_payable | {"amount": 21525000, "concept": "us-gaap:AccountsPayableCurrent", "currency": "USD"} | 2025-06-30 | sec_edgar |
| accounts_payable | {"amount": 26058000, "concept": "us-gaap:AccountsPayableCurrent", "currency": "USD"} | 2024-12-31 | sec_edgar |
| accounts_payable | {"amount": 22513000, "concept": "us-gaap:AccountsPayableCurrent", "currency": "USD"} | 2023-12-31 | sec_edgar |
| accounts_payable | {"amount": 17848000, "concept": "us-gaap:AccountsPayableCurrent", "currency": "USD"} | 2022-12-31 | sec_edgar |
| accounts_receivable | {"amount": 50643000, "concept": "us-gaap:AccountsReceivableNetCurrent", "currency": "USD"} | 2025-12-31 | sec_edgar |
| accounts_receivable | {"amount": 36995000, "concept": "us-gaap:AccountsReceivableNetCurrent", "currency": "USD"} | 2025-06-30 | sec_edgar |
| accounts_receivable | {"amount": 31640000, "concept": "us-gaap:AccountsReceivableNetCurrent", "currency": "USD"} | 2024-12-31 | sec_edgar |
| accounts_receivable | {"amount": 31302000, "concept": "us-gaap:AccountsReceivableNetCurrent", "currency": "USD"} | 2023-12-31 | sec_edgar |
| accounts_receivable | {"amount": 24903000, "concept": "us-gaap:AccountsReceivableNetCurrent", "currency": "USD"} | 2022-12-31 | sec_edgar |
| capex | {"amount": 825000, "concept": "us-gaap:PaymentsToAcquirePropertyPlantAndEquipment", "curre | 2025-12-31 | sec_edgar |
| capex | {"amount": 400000, "concept": "us-gaap:PaymentsToAcquirePropertyPlantAndEquipment", "curre | 2025-06-30 | sec_edgar |
| capex | {"amount": 1128000, "concept": "us-gaap:PaymentsToAcquirePropertyPlantAndEquipment", "curr | 2024-12-31 | sec_edgar |
| capex | {"amount": 482000, "concept": "us-gaap:PaymentsToAcquirePropertyPlantAndEquipment", "curre | 2024-06-30 | sec_edgar |
| capex | {"amount": 995000, "concept": "us-gaap:PaymentsToAcquirePropertyPlantAndEquipment", "curre | 2023-12-31 | sec_edgar |
| capex | {"amount": 1178000, "concept": "us-gaap:PaymentsToAcquirePropertyPlantAndEquipment", "curr | 2022-12-31 | sec_edgar |
| capex | {"amount": 1877000, "concept": "us-gaap:PaymentsToAcquirePropertyPlantAndEquipment", "curr | 2021-12-31 | sec_edgar |
| cash_and_equivalents | {"amount": 52909000, "concept": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "currency | 2025-12-31 | sec_edgar |
| cash_and_equivalents | {"amount": 52269000, "concept": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "currency | 2025-06-30 | sec_edgar |
| cash_and_equivalents | {"amount": 42997000, "concept": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "currency | 2024-12-31 | sec_edgar |
| cash_and_equivalents | {"amount": 45126000, "concept": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "currency | 2023-12-31 | sec_edgar |
| cash_and_equivalents | {"amount": 36755000, "concept": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "currency | 2022-12-31 | sec_edgar |
| cash_and_restricted_cash | {"amount": 53909000, "concept": "us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCas | 2025-12-31 | sec_edgar |
| cash_and_restricted_cash | {"amount": 52862000, "concept": "us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCas | 2025-06-30 | sec_edgar |
| cash_and_restricted_cash | {"amount": 45886000, "concept": "us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCas | 2024-12-31 | sec_edgar |
| cash_and_restricted_cash | {"amount": 69363000, "concept": "us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCas | 2024-06-30 | sec_edgar |
| cash_and_restricted_cash | {"amount": 64166000, "concept": "us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCas | 2023-12-31 | sec_edgar |
| cash_and_restricted_cash | {"amount": 52698000, "concept": "us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCas | 2022-12-31 | sec_edgar |
| cash_and_restricted_cash | {"amount": 41155000, "concept": "us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCas | 2021-12-31 | sec_edgar |
| cash_and_restricted_cash | {"amount": 38374000, "concept": "us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCas | 2020-12-31 | sec_edgar |
| cashflow_financing | {"amount": 6341000, "concept": "us-gaap:NetCashProvidedByUsedInFinancingActivities", "curr | 2025-12-31 | sec_edgar |
| cashflow_financing | {"amount": 7661000, "concept": "us-gaap:NetCashProvidedByUsedInFinancingActivities", "curr | 2025-06-30 | sec_edgar |
| cashflow_financing | {"amount": 1477000, "concept": "us-gaap:NetCashProvidedByUsedInFinancingActivities", "curr | 2024-12-31 | sec_edgar |
| cashflow_financing | {"amount": 8161000, "concept": "us-gaap:NetCashProvidedByUsedInFinancingActivities", "curr | 2024-06-30 | sec_edgar |
| cashflow_financing | {"amount": -4729000, "concept": "us-gaap:NetCashProvidedByUsedInFinancingActivities", "cur | 2023-12-31 | sec_edgar |
| cashflow_financing | {"amount": 4387000, "concept": "us-gaap:NetCashProvidedByUsedInFinancingActivities", "curr | 2022-12-31 | sec_edgar |
| cashflow_financing | {"amount": -1614000, "concept": "us-gaap:NetCashProvidedByUsedInFinancingActivities", "cur | 2021-12-31 | sec_edgar |
| cashflow_investing | {"amount": 3874000, "concept": "us-gaap:NetCashProvidedByUsedInInvestingActivities", "curr | 2025-12-31 | sec_edgar |
| cashflow_investing | {"amount": 3499000, "concept": "us-gaap:NetCashProvidedByUsedInInvestingActivities", "curr | 2025-06-30 | sec_edgar |
| cashflow_investing | {"amount": -17883000, "concept": "us-gaap:NetCashProvidedByUsedInInvestingActivities", "cu | 2024-12-31 | sec_edgar |
| cashflow_investing | {"amount": -482000, "concept": "us-gaap:NetCashProvidedByUsedInInvestingActivities", "curr | 2024-06-30 | sec_edgar |
| cashflow_investing | {"amount": -987000, "concept": "us-gaap:NetCashProvidedByUsedInInvestingActivities", "curr | 2023-12-31 | sec_edgar |
| cashflow_investing | {"amount": -1178000, "concept": "us-gaap:NetCashProvidedByUsedInInvestingActivities", "cur | 2022-12-31 | sec_edgar |
| cashflow_investing | {"amount": -1851000, "concept": "us-gaap:NetCashProvidedByUsedInInvestingActivities", "cur | 2021-12-31 | sec_edgar |
| cashflow_operating | {"amount": -2444000, "concept": "us-gaap:NetCashProvidedByUsedInOperatingActivities", "cur | 2025-12-31 | sec_edgar |
| cashflow_operating | {"amount": -4493000, "concept": "us-gaap:NetCashProvidedByUsedInOperatingActivities", "cur | 2025-06-30 | sec_edgar |
| cashflow_operating | {"amount": -2146000, "concept": "us-gaap:NetCashProvidedByUsedInOperatingActivities", "cur | 2024-12-31 | sec_edgar |
| cashflow_operating | {"amount": -2415000, "concept": "us-gaap:NetCashProvidedByUsedInOperatingActivities", "cur | 2024-06-30 | sec_edgar |
| cashflow_operating | {"amount": 17895000, "concept": "us-gaap:NetCashProvidedByUsedInOperatingActivities", "cur | 2023-12-31 | sec_edgar |
| cashflow_operating | {"amount": 7452000, "concept": "us-gaap:NetCashProvidedByUsedInOperatingActivities", "curr | 2022-12-31 | sec_edgar |
| cashflow_operating | {"amount": 6428000, "concept": "us-gaap:NetCashProvidedByUsedInOperatingActivities", "curr | 2021-12-31 | sec_edgar |
| cost_of_revenue | {"amount": 109564000, "concept": "us-gaap:CostOfRevenue", "currency": "USD"} | 2025-12-31 | sec_edgar |
| cost_of_revenue | {"amount": 50505000, "concept": "us-gaap:CostOfRevenue", "currency": "USD"} | 2025-06-30 | sec_edgar |
| cost_of_revenue | {"amount": 97542000, "concept": "us-gaap:CostOfRevenue", "currency": "USD"} | 2024-12-31 | sec_edgar |
| cost_of_revenue | {"amount": 49044000, "concept": "us-gaap:CostOfRevenue", "currency": "USD"} | 2024-06-30 | sec_edgar |
| cost_of_revenue | {"amount": 91251000, "concept": "us-gaap:CostOfRevenue", "currency": "USD"} | 2023-12-31 | sec_edgar |
| cost_of_revenue | {"amount": 87108000, "concept": "us-gaap:CostOfRevenue", "currency": "USD"} | 2022-12-31 | sec_edgar |
| cost_of_revenue | {"amount": 92721000, "concept": "us-gaap:CostOfRevenue", "currency": "USD"} | 2021-12-31 | sec_edgar |
| current_assets | {"amount": 127106000, "concept": "us-gaap:AssetsCurrent", "currency": "USD"} | 2025-12-31 | sec_edgar |
| current_assets | {"amount": 114352000, "concept": "us-gaap:AssetsCurrent", "currency": "USD"} | 2025-06-30 | sec_edgar |
| current_assets | {"amount": 115522000, "concept": "us-gaap:AssetsCurrent", "currency": "USD"} | 2024-12-31 | sec_edgar |
| current_assets | {"amount": 118589000, "concept": "us-gaap:AssetsCurrent", "currency": "USD"} | 2023-12-31 | sec_edgar |
| current_assets | {"amount": 105500000, "concept": "us-gaap:AssetsCurrent", "currency": "USD"} | 2022-12-31 | sec_edgar |
| current_liabilities | {"amount": 80714000, "concept": "us-gaap:LiabilitiesCurrent", "currency": "USD"} | 2025-12-31 | sec_edgar |
| current_liabilities | {"amount": 77378000, "concept": "us-gaap:LiabilitiesCurrent", "currency": "USD"} | 2025-06-30 | sec_edgar |
| current_liabilities | {"amount": 79864000, "concept": "us-gaap:LiabilitiesCurrent", "currency": "USD"} | 2024-12-31 | sec_edgar |
| current_liabilities | {"amount": 82369000, "concept": "us-gaap:LiabilitiesCurrent", "currency": "USD"} | 2023-12-31 | sec_edgar |
| current_liabilities | {"amount": 77665000, "concept": "us-gaap:LiabilitiesCurrent", "currency": "USD"} | 2022-12-31 | sec_edgar |
| eps_basic | {"per": "shares", "amount": -0.14, "concept": "us-gaap:EarningsPerShareBasic", "currency": | 2025-12-31 | sec_edgar |
| eps_basic | {"per": "shares", "amount": -0.15, "concept": "us-gaap:EarningsPerShareBasic", "currency": | 2025-06-30 | sec_edgar |
| eps_basic | {"per": "shares", "amount": 0.13, "concept": "us-gaap:EarningsPerShareBasic", "currency": | 2024-12-31 | sec_edgar |
| eps_basic | {"per": "shares", "amount": 0.08, "concept": "us-gaap:EarningsPerShareBasic", "currency": | 2024-06-30 | sec_edgar |
| eps_basic | {"per": "shares", "amount": 0.18, "concept": "us-gaap:EarningsPerShareBasic", "currency": | 2023-12-31 | sec_edgar |
| eps_basic | {"per": "shares", "amount": 0.17, "concept": "us-gaap:EarningsPerShareBasic", "currency": | 2022-12-31 | sec_edgar |
| eps_basic | {"per": "shares", "amount": 0.12, "concept": "us-gaap:EarningsPerShareBasic", "currency": | 2021-12-31 | sec_edgar |
| eps_diluted | {"per": "shares", "amount": -0.14, "concept": "us-gaap:EarningsPerShareDiluted", "currency | 2025-12-31 | sec_edgar |
| eps_diluted | {"per": "shares", "amount": -0.15, "concept": "us-gaap:EarningsPerShareDiluted", "currency | 2025-06-30 | sec_edgar |
| eps_diluted | {"per": "shares", "amount": 0.13, "concept": "us-gaap:EarningsPerShareDiluted", "currency" | 2024-12-31 | sec_edgar |
| eps_diluted | {"per": "shares", "amount": 0.08, "concept": "us-gaap:EarningsPerShareDiluted", "currency" | 2024-06-30 | sec_edgar |
| eps_diluted | {"per": "shares", "amount": 0.18, "concept": "us-gaap:EarningsPerShareDiluted", "currency" | 2023-12-31 | sec_edgar |
| eps_diluted | {"per": "shares", "amount": 0.17, "concept": "us-gaap:EarningsPerShareDiluted", "currency" | 2022-12-31 | sec_edgar |
| eps_diluted | {"per": "shares", "amount": 0.12, "concept": "us-gaap:EarningsPerShareDiluted", "currency" | 2021-12-31 | sec_edgar |
| gross_profit | {"amount": 45684000, "concept": "us-gaap:GrossProfit", "currency": "USD"} | 2025-12-31 | sec_edgar |
| gross_profit | {"amount": 24003000, "concept": "us-gaap:GrossProfit", "currency": "USD"} | 2025-06-30 | sec_edgar |
| gross_profit | {"amount": 52286000, "concept": "us-gaap:GrossProfit", "currency": "USD"} | 2024-12-31 | sec_edgar |
| gross_profit | {"amount": 28220000, "concept": "us-gaap:GrossProfit", "currency": "USD"} | 2024-06-30 | sec_edgar |
| gross_profit | {"amount": 58971000, "concept": "us-gaap:GrossProfit", "currency": "USD"} | 2023-12-31 | sec_edgar |
| gross_profit | {"amount": 55023000, "concept": "us-gaap:GrossProfit", "currency": "USD"} | 2022-12-31 | sec_edgar |
| gross_profit | {"amount": 48784000, "concept": "us-gaap:GrossProfit", "currency": "USD"} | 2021-12-31 | sec_edgar |
| income_tax_expense | {"amount": 2173000, "concept": "us-gaap:IncomeTaxExpenseBenefit", "currency": "USD"} | 2025-12-31 | sec_edgar |
| income_tax_expense | {"amount": 207000, "concept": "us-gaap:IncomeTaxExpenseBenefit", "currency": "USD"} | 2025-06-30 | sec_edgar |
| income_tax_expense | {"amount": 414000, "concept": "us-gaap:IncomeTaxExpenseBenefit", "currency": "USD"} | 2024-12-31 | sec_edgar |
| income_tax_expense | {"amount": 802000, "concept": "us-gaap:IncomeTaxExpenseBenefit", "currency": "USD"} | 2024-06-30 | sec_edgar |
| income_tax_expense | {"amount": 840000, "concept": "us-gaap:IncomeTaxExpenseBenefit", "currency": "USD"} | 2023-12-31 | sec_edgar |
| income_tax_expense | {"amount": 139000, "concept": "us-gaap:IncomeTaxExpenseBenefit", "currency": "USD"} | 2022-12-31 | sec_edgar |
| income_tax_expense | {"amount": 7000, "concept": "us-gaap:IncomeTaxExpenseBenefit", "currency": "USD"} | 2021-12-31 | sec_edgar |
| industry_sic | {"code": "3577", "scheme": "SIC", "description": "Computer Peripheral Equipment, NEC"} | sec_edgar | |
| interest_expense | {"amount": -279000, "concept": "us-gaap:InterestExpenseNonoperating", "currency": "USD"} | 2025-12-31 | sec_edgar |
| interest_expense | {"amount": 12000, "concept": "us-gaap:InterestExpenseNonoperating", "currency": "USD"} | 2025-06-30 | sec_edgar |
| interest_expense | {"amount": 175000, "concept": "us-gaap:InterestExpenseNonoperating", "currency": "USD"} | 2024-12-31 | sec_edgar |
| interest_expense | {"amount": 217000, "concept": "us-gaap:InterestExpenseNonoperating", "currency": "USD"} | 2024-06-30 | sec_edgar |
| interest_expense | {"amount": 540000, "concept": "us-gaap:InterestExpenseNonoperating", "currency": "USD"} | 2023-12-31 | sec_edgar |
| interest_expense | {"amount": 1195000, "concept": "us-gaap:InterestExpenseNonoperating", "currency": "USD"} | 2022-12-31 | sec_edgar |
| interest_expense | {"amount": 1183000, "concept": "us-gaap:InterestExpense", "currency": "USD"} | 2021-12-31 | sec_edgar |
| inventory | {"amount": 14550000, "concept": "us-gaap:InventoryNet", "currency": "USD"} | 2025-12-31 | sec_edgar |
| inventory | {"amount": 13998000, "concept": "us-gaap:InventoryNet", "currency": "USD"} | 2025-06-30 | sec_edgar |
| inventory | {"amount": 20616000, "concept": "us-gaap:InventoryNet", "currency": "USD"} | 2024-12-31 | sec_edgar |
| inventory | {"amount": 17451000, "concept": "us-gaap:InventoryNet", "currency": "USD"} | 2023-12-31 | sec_edgar |
| inventory | {"amount": 21126000, "concept": "us-gaap:InventoryNet", "currency": "USD"} | 2022-12-31 | sec_edgar |
| long_term_debt | {"amount": 8479000, "concept": "us-gaap:LongTermDebt", "currency": "USD"} | 2025-12-31 | sec_edgar |
| long_term_debt_current | {"amount": 143000, "concept": "us-gaap:LongTermDebtCurrent", "currency": "USD"} | 2025-12-31 | sec_edgar |
| long_term_debt_noncurrent | {"amount": 8336000, "concept": "us-gaap:LongTermDebtNoncurrent", "currency": "USD"} | 2025-12-31 | sec_edgar |
| net_income | {"amount": -8252000, "concept": "us-gaap:NetIncomeLoss", "currency": "USD"} | 2025-12-31 | sec_edgar |
| net_income | {"amount": -8039000, "concept": "us-gaap:NetIncomeLoss", "currency": "USD"} | 2025-06-30 | sec_edgar |
| net_income | {"amount": 7114000, "concept": "us-gaap:NetIncomeLoss", "currency": "USD"} | 2024-12-31 | sec_edgar |
| net_income | {"amount": 4297000, "concept": "us-gaap:NetIncomeLoss", "currency": "USD"} | 2024-06-30 | sec_edgar |
| net_income | {"amount": 7774000, "concept": "us-gaap:NetIncomeLoss", "currency": "USD"} | 2023-12-31 | sec_edgar |
| net_income | {"amount": 7241000, "concept": "us-gaap:NetIncomeLoss", "currency": "USD"} | 2022-12-31 | sec_edgar |
| net_income | {"amount": 4921000, "concept": "us-gaap:NetIncomeLoss", "currency": "USD"} | 2021-12-31 | sec_edgar |
| noncurrent_assets | {"amount": 27039000, "concept": "us-gaap:AssetsNoncurrent", "currency": "USD"} | 2025-12-31 | sec_edgar |
| noncurrent_assets | {"amount": 25999000, "concept": "us-gaap:AssetsNoncurrent", "currency": "USD"} | 2025-06-30 | sec_edgar |
| noncurrent_assets | {"amount": 23400000, "concept": "us-gaap:AssetsNoncurrent", "currency": "USD"} | 2024-12-31 | sec_edgar |
| noncurrent_assets | {"amount": 11678000, "concept": "us-gaap:AssetsNoncurrent", "currency": "USD"} | 2023-12-31 | sec_edgar |
| noncurrent_assets | {"amount": 13121000, "concept": "us-gaap:AssetsNoncurrent", "currency": "USD"} | 2022-12-31 | sec_edgar |
| noncurrent_liabilities | {"amount": 15527000, "concept": "us-gaap:LiabilitiesNoncurrent", "currency": "USD"} | 2025-12-31 | sec_edgar |
| noncurrent_liabilities | {"amount": 4786000, "concept": "us-gaap:LiabilitiesNoncurrent", "currency": "USD"} | 2025-06-30 | sec_edgar |
| noncurrent_liabilities | {"amount": 2172000, "concept": "us-gaap:LiabilitiesNoncurrent", "currency": "USD"} | 2024-12-31 | sec_edgar |
| noncurrent_liabilities | {"amount": 683000, "concept": "us-gaap:LiabilitiesNoncurrent", "currency": "USD"} | 2023-12-31 | sec_edgar |
| noncurrent_liabilities | {"amount": 1789000, "concept": "us-gaap:LiabilitiesNoncurrent", "currency": "USD"} | 2022-12-31 | sec_edgar |
| operating_expenses | {"amount": 57026000, "concept": "us-gaap:OperatingExpenses", "currency": "USD"} | 2025-12-31 | sec_edgar |
| operating_expenses | {"amount": 34544000, "concept": "us-gaap:OperatingExpenses", "currency": "USD"} | 2025-06-30 | sec_edgar |
| operating_expenses | {"amount": 45390000, "concept": "us-gaap:OperatingExpenses", "currency": "USD"} | 2024-12-31 | sec_edgar |
| operating_expenses | {"amount": 22398000, "concept": "us-gaap:OperatingExpenses", "currency": "USD"} | 2024-06-30 | sec_edgar |
| operating_expenses | {"amount": 46244000, "concept": "us-gaap:OperatingExpenses", "currency": "USD"} | 2023-12-31 | sec_edgar |
| operating_expenses | {"amount": 43691000, "concept": "us-gaap:OperatingExpenses", "currency": "USD"} | 2022-12-31 | sec_edgar |
| operating_expenses | {"amount": 45657000, "concept": "us-gaap:OperatingExpenses", "currency": "USD"} | 2021-12-31 | sec_edgar |
| operating_income | {"amount": -11342000, "concept": "us-gaap:OperatingIncomeLoss", "currency": "USD"} | 2025-12-31 | sec_edgar |
| operating_income | {"amount": -10541000, "concept": "us-gaap:OperatingIncomeLoss", "currency": "USD"} | 2025-06-30 | sec_edgar |
| operating_income | {"amount": 6896000, "concept": "us-gaap:OperatingIncomeLoss", "currency": "USD"} | 2024-12-31 | sec_edgar |
| operating_income | {"amount": 5822000, "concept": "us-gaap:OperatingIncomeLoss", "currency": "USD"} | 2024-06-30 | sec_edgar |
| operating_income | {"amount": 12727000, "concept": "us-gaap:OperatingIncomeLoss", "currency": "USD"} | 2023-12-31 | sec_edgar |
| operating_income | {"amount": 11332000, "concept": "us-gaap:OperatingIncomeLoss", "currency": "USD"} | 2022-12-31 | sec_edgar |
| operating_income | {"amount": 3127000, "concept": "us-gaap:OperatingIncomeLoss", "currency": "USD"} | 2021-12-31 | sec_edgar |
| operating_lease_liability | {"amount": 8976000, "concept": "us-gaap:OperatingLeaseLiability", "currency": "USD"} | 2025-12-31 | sec_edgar |
| operating_lease_liability | {"amount": 6178000, "concept": "us-gaap:OperatingLeaseLiability", "currency": "USD"} | 2025-06-30 | sec_edgar |
| operating_lease_liability | {"amount": 3199000, "concept": "us-gaap:OperatingLeaseLiability", "currency": "USD"} | 2024-12-31 | sec_edgar |
| operating_lease_liability | {"amount": 1940000, "concept": "us-gaap:OperatingLeaseLiability", "currency": "USD"} | 2023-12-31 | sec_edgar |
| operating_lease_liability | {"amount": 3055000, "concept": "us-gaap:OperatingLeaseLiability", "currency": "USD"} | 2022-12-31 | sec_edgar |
| ppe_net | {"amount": 7859000, "concept": "us-gaap:PropertyPlantAndEquipmentNet", "currency": "USD"} | 2025-12-31 | sec_edgar |
| ppe_net | {"amount": 8025000, "concept": "us-gaap:PropertyPlantAndEquipmentNet", "currency": "USD"} | 2025-06-30 | sec_edgar |
| ppe_net | {"amount": 8200000, "concept": "us-gaap:PropertyPlantAndEquipmentNet", "currency": "USD"} | 2024-12-31 | sec_edgar |
| ppe_net | {"amount": 8509000, "concept": "us-gaap:PropertyPlantAndEquipmentNet", "currency": "USD"} | 2023-12-31 | sec_edgar |
| ppe_net | {"amount": 8960000, "concept": "us-gaap:PropertyPlantAndEquipmentNet", "currency": "USD"} | 2022-12-31 | sec_edgar |
| pretax_income | {"amount": -6079000, "concept": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTax | 2025-12-31 | sec_edgar |
| pretax_income | {"amount": -7832000, "concept": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTax | 2025-06-30 | sec_edgar |
| pretax_income | {"amount": 7528000, "concept": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxe | 2024-12-31 | sec_edgar |
| pretax_income | {"amount": 5099000, "concept": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxe | 2024-06-30 | sec_edgar |
| pretax_income | {"amount": 8614000, "concept": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxe | 2023-12-31 | sec_edgar |
| pretax_income | {"amount": 7380000, "concept": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxe | 2022-12-31 | sec_edgar |
| pretax_income | {"amount": 4928000, "concept": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxe | 2021-12-31 | sec_edgar |
| retained_earnings | {"amount": 24886000, "concept": "us-gaap:RetainedEarningsAccumulatedDeficit", "currency": | 2025-12-31 | sec_edgar |
| retained_earnings | {"amount": 25099000, "concept": "us-gaap:RetainedEarningsAccumulatedDeficit", "currency": | 2025-06-30 | sec_edgar |
| retained_earnings | {"amount": 33138000, "concept": "us-gaap:RetainedEarningsAccumulatedDeficit", "currency": | 2024-12-31 | sec_edgar |
| retained_earnings | {"amount": 26024000, "concept": "us-gaap:RetainedEarningsAccumulatedDeficit", "currency": | 2023-12-31 | sec_edgar |
| retained_earnings | {"amount": 19319000, "concept": "us-gaap:RetainedEarningsAccumulatedDeficit", "currency": | 2022-12-31 | sec_edgar |
| revenue | {"amount": 155248000, "concept": "us-gaap:Revenues", "currency": "USD"} | 2025-12-31 | sec_edgar |
| revenue | {"amount": 74508000, "concept": "us-gaap:Revenues", "currency": "USD"} | 2025-06-30 | sec_edgar |
| revenue | {"amount": 149828000, "concept": "us-gaap:Revenues", "currency": "USD"} | 2024-12-31 | sec_edgar |
| revenue | {"amount": 77264000, "concept": "us-gaap:Revenues", "currency": "USD"} | 2024-06-30 | sec_edgar |
| revenue | {"amount": 150222000, "concept": "us-gaap:Revenues", "currency": "USD"} | 2023-12-31 | sec_edgar |
| revenue | {"amount": 142131000, "concept": "us-gaap:Revenues", "currency": "USD"} | 2022-12-31 | sec_edgar |
| revenue | {"amount": 141505000, "concept": "us-gaap:Revenues", "currency": "USD"} | 2021-12-31 | sec_edgar |
| rnd_expense | {"amount": 9819000, "concept": "us-gaap:ResearchAndDevelopmentExpense", "currency": "USD"} | 2025-12-31 | sec_edgar |
| rnd_expense | {"amount": 7267000, "concept": "us-gaap:ResearchAndDevelopmentExpense", "currency": "USD"} | 2025-06-30 | sec_edgar |
| rnd_expense | {"amount": 6221000, "concept": "us-gaap:ResearchAndDevelopmentExpense", "currency": "USD"} | 2024-12-31 | sec_edgar |
| rnd_expense | {"amount": 2966000, "concept": "us-gaap:ResearchAndDevelopmentExpense", "currency": "USD"} | 2024-06-30 | sec_edgar |
| rnd_expense | {"amount": 6636000, "concept": "us-gaap:ResearchAndDevelopmentExpense", "currency": "USD"} | 2023-12-31 | sec_edgar |
| rnd_expense | {"amount": 6780000, "concept": "us-gaap:ResearchAndDevelopmentExpense", "currency": "USD"} | 2022-12-31 | sec_edgar |
| rnd_expense | {"amount": 5419000, "concept": "us-gaap:ResearchAndDevelopmentExpense", "currency": "USD"} | 2021-12-31 | sec_edgar |
| sga_expense | {"amount": 12163000, "concept": "us-gaap:GeneralAndAdministrativeExpense", "currency": "US | 2025-12-31 | sec_edgar |
| sga_expense | {"amount": 8368000, "concept": "us-gaap:GeneralAndAdministrativeExpense", "currency": "USD | 2025-06-30 | sec_edgar |
| sga_expense | {"amount": 8324000, "concept": "us-gaap:GeneralAndAdministrativeExpense", "currency": "USD | 2024-12-31 | sec_edgar |
| sga_expense | {"amount": 3671000, "concept": "us-gaap:GeneralAndAdministrativeExpense", "currency": "USD | 2024-06-30 | sec_edgar |
| sga_expense | {"amount": 9042000, "concept": "us-gaap:GeneralAndAdministrativeExpense", "currency": "USD | 2023-12-31 | sec_edgar |
| sga_expense | {"amount": 7614000, "concept": "us-gaap:GeneralAndAdministrativeExpense", "currency": "USD | 2022-12-31 | sec_edgar |
| sga_expense | {"amount": 7463000, "concept": "us-gaap:GeneralAndAdministrativeExpense", "currency": "USD | 2021-12-31 | sec_edgar |
| share_based_compensation | {"amount": 8645000, "concept": "us-gaap:ShareBasedCompensation", "currency": "USD"} | 2025-12-31 | sec_edgar |
| share_based_compensation | {"amount": 8645000, "concept": "us-gaap:ShareBasedCompensation", "currency": "USD"} | 2025-06-30 | sec_edgar |
| shares_wavg_basic | {"unit": "shares", "value": 56975855, "concept": "us-gaap:WeightedAverageNumberOfSharesOut | 2025-12-31 | sec_edgar |
| shares_wavg_basic | {"unit": "shares", "value": 54684493, "concept": "us-gaap:WeightedAverageNumberOfSharesOut | 2025-06-30 | sec_edgar |
| shares_wavg_basic | {"unit": "shares", "value": 52900242, "concept": "us-gaap:WeightedAverageNumberOfSharesOut | 2024-12-31 | sec_edgar |
| shares_wavg_basic | {"unit": "shares", "value": 52263976, "concept": "us-gaap:WeightedAverageNumberOfSharesOut | 2024-06-30 | sec_edgar |
| shares_wavg_basic | {"unit": "shares", "value": 42105300, "concept": "us-gaap:WeightedAverageNumberOfSharesOut | 2023-12-31 | sec_edgar |
| shares_wavg_basic | {"unit": "shares", "value": 42105300, "concept": "us-gaap:WeightedAverageNumberOfSharesOut | 2022-12-31 | sec_edgar |
| shares_wavg_basic | {"unit": "shares", "value": 42105300, "concept": "us-gaap:WeightedAverageNumberOfSharesOut | 2021-12-31 | sec_edgar |
| shares_wavg_diluted | {"unit": "shares", "value": 56975855, "concept": "us-gaap:WeightedAverageNumberOfDilutedSh | 2025-12-31 | sec_edgar |
| shares_wavg_diluted | {"unit": "shares", "value": 54684493, "concept": "us-gaap:WeightedAverageNumberOfDilutedSh | 2025-06-30 | sec_edgar |
| shares_wavg_diluted | {"unit": "shares", "value": 52900242, "concept": "us-gaap:WeightedAverageNumberOfDilutedSh | 2024-12-31 | sec_edgar |
| shares_wavg_diluted | {"unit": "shares", "value": 52263976, "concept": "us-gaap:WeightedAverageNumberOfDilutedSh | 2024-06-30 | sec_edgar |
| shares_wavg_diluted | {"unit": "shares", "value": 42105300, "concept": "us-gaap:WeightedAverageNumberOfDilutedSh | 2023-12-31 | sec_edgar |