| | | | | | | | | | | | | | | | | | | | | |
<?xml version="1.0" encoding="windows-1252"?> |
<FilingSummary> |
| <Version> 3.20.2 </Version> |
| <ProcessingTime/> |
| <ReportFormat> html </ReportFormat> |
| <ContextCount> 135 </ContextCount> |
| <ElementCount> 344 </ElementCount> |
| <EntityCount> 1 </EntityCount> |
| <FootnotesReported> true </FootnotesReported> |
| <SegmentCount> 39 </SegmentCount> |
| <ScenarioCount> 0 </ScenarioCount> |
| <TuplesReported> false </TuplesReported> |
| <UnitCount> 8 </UnitCount> |
| <MyReports> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R1.htm </HtmlFileName> |
| | | <LongName> 000 - Document - Document And Entity Information </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-document-and-entity-information </Role> |
| | | <ShortName> Document And Entity Information </ShortName> |
| | | <MenuCategory> Cover </MenuCategory> |
| | | <Position> 1 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R2.htm </HtmlFileName> |
| | | <LongName> 001 - Statement - Consolidated Statements of Operations (Unaudited) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-consolidated-statements-of-operations-unaudited </Role> |
| | | <ShortName> Consolidated Statements of Operations (Unaudited) </ShortName> |
| | | <MenuCategory> Statements </MenuCategory> |
| | | <Position> 2 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R3.htm </HtmlFileName> |
| | | <LongName> 002 - Statement - Consolidated Statements of Comprehensive Income (Loss) (Unaudited) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited </Role> |
| | | <ShortName> Consolidated Statements of Comprehensive Income (Loss) (Unaudited) </ShortName> |
| | | <MenuCategory> Statements </MenuCategory> |
| | | <Position> 3 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R4.htm </HtmlFileName> |
| | | <LongName> 003 - Statement - Consolidated Balance Sheets (Current Period Unaudited) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-consolidated-balance-sheets-current-period-unaudited </Role> |
| | | <ShortName> Consolidated Balance Sheets (Current Period Unaudited) </ShortName> |
| | | <MenuCategory> Statements </MenuCategory> |
| | | <Position> 4 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R5.htm </HtmlFileName> |
| | | <LongName> 004 - Statement - Consolidated Balance Sheets (Current Period Unaudited) (Parentheticals) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-consolidated-balance-sheets-current-period-unaudited-parentheticals </Role> |
| | | <ShortName> Consolidated Balance Sheets (Current Period Unaudited) (Parentheticals) </ShortName> |
| | | <MenuCategory> Statements </MenuCategory> |
| | | <Position> 5 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R6.htm </HtmlFileName> |
| | | <LongName> 005 - Statement - Consolidated Statements of Stockholders' Equity (Unaudited) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-consolidated-statements-of-stockholders-equity-unaudited </Role> |
| | | <ShortName> Consolidated Statements of Stockholders' Equity (Unaudited) </ShortName> |
| | | <MenuCategory> Statements </MenuCategory> |
| | | <Position> 6 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R7.htm </HtmlFileName> |
| | | <LongName> 006 - Statement - Consolidated Statements of Cash Flows (Unaudited) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-consolidated-statements-of-cash-flows-unaudited </Role> |
| | | <ShortName> Consolidated Statements of Cash Flows (Unaudited) </ShortName> |
| | | <MenuCategory> Statements </MenuCategory> |
| | | <Position> 7 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R8.htm </HtmlFileName> |
| | | <LongName> 007 - Disclosure - Note 1 - Basis of Presentation </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-note-1-basis-of-presentation </Role> |
| | | <ShortName> Note 1 - Basis of Presentation </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 8 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R9.htm </HtmlFileName> |
| | | <LongName> 008 - Disclosure - Note 2 - Business Segment Reporting </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-note-2-business-segment-reporting </Role> |
| | | <ShortName> Note 2 - Business Segment Reporting </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 9 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R10.htm </HtmlFileName> |
| | | <LongName> 009 - Disclosure - Note 3 - Accounts Receivable </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-note-3-accounts-receivable </Role> |
| | | <ShortName> Note 3 - Accounts Receivable </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 10 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R11.htm </HtmlFileName> |
| | | <LongName> 010 - Disclosure - Note 4 - Revenue Recognition </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-note-4-revenue-recognition </Role> |
| | | <ShortName> Note 4 - Revenue Recognition </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 11 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R12.htm </HtmlFileName> |
| | | <LongName> 011 - Disclosure - Note 5 - Income Taxes </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-note-5-income-taxes </Role> |
| | | <ShortName> Note 5 - Income Taxes </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 12 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R13.htm </HtmlFileName> |
| | | <LongName> 012 - Disclosure - Note 6 - Impairment of Long-lived Assets </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-note-6-impairment-of-longlived-assets </Role> |
| | | <ShortName> Note 6 - Impairment of Long-lived Assets </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 13 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R14.htm </HtmlFileName> |
| | | <LongName> 013 - Disclosure - Note 7 - Stock-based Compensation </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-note-7-stockbased-compensation </Role> |
| | | <ShortName> Note 7 - Stock-based Compensation </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 14 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R15.htm </HtmlFileName> |
| | | <LongName> 014 - Disclosure - Note 8 - Income (Loss) Per Share </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-note-8-income-loss-per-share </Role> |
| | | <ShortName> Note 8 - Income (Loss) Per Share </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 15 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R16.htm </HtmlFileName> |
| | | <LongName> 015 - Disclosure - Note 9 - Debt </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-note-9-debt </Role> |
| | | <ShortName> Note 9 - Debt </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 16 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R17.htm </HtmlFileName> |
| | | <LongName> 016 - Disclosure - Note 10 - Leases </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-note-10-leases </Role> |
| | | <ShortName> Note 10 - Leases </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 17 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R18.htm </HtmlFileName> |
| | | <LongName> 017 - Disclosure - Note 11 - Restricted Cash </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-note-11-restricted-cash </Role> |
| | | <ShortName> Note 11 - Restricted Cash </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 18 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R19.htm </HtmlFileName> |
| | | <LongName> 018 - Disclosure - Note 12 - Fair Value </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-note-12-fair-value- </Role> |
| | | <ShortName> Note 12 - Fair Value </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 19 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R20.htm </HtmlFileName> |
| | | <LongName> 019 - Disclosure - Note 13 - Recent Accounting Pronouncements </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-note-13-recent-accounting-pronouncements- </Role> |
| | | <ShortName> Note 13 - Recent Accounting Pronouncements </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 20 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R21.htm </HtmlFileName> |
| | | <LongName> 020 - Disclosure - Note 4 - Revenue Recognition (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-note-4-revenue-recognition-tables </Role> |
| | | <ShortName> Note 4 - Revenue Recognition (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://investors.permapipe.com/20200731/role/statement-note-4-revenue-recognition </ParentRole> |
| | | <Position> 21 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R22.htm </HtmlFileName> |
| | | <LongName> 021 - Disclosure - Note 6 - Impairment of Long-lived Assets (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-note-6-impairment-of-longlived-assets-tables </Role> |
| | | <ShortName> Note 6 - Impairment of Long-lived Assets (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://investors.permapipe.com/20200731/role/statement-note-6-impairment-of-longlived-assets </ParentRole> |
| | | <Position> 22 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R23.htm </HtmlFileName> |
| | | <LongName> 022 - Disclosure - Note 7 - Stock-based Compensation (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-note-7-stockbased-compensation-tables </Role> |
| | | <ShortName> Note 7 - Stock-based Compensation (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://investors.permapipe.com/20200731/role/statement-note-7-stockbased-compensation </ParentRole> |
| | | <Position> 23 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R24.htm </HtmlFileName> |
| | | <LongName> 023 - Disclosure - Note 8 - Income (Loss) Per Share (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-note-8-income-loss-per-share-tables </Role> |
| | | <ShortName> Note 8 - Income (Loss) Per Share (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://investors.permapipe.com/20200731/role/statement-note-8-income-loss-per-share </ParentRole> |
| | | <Position> 24 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R25.htm </HtmlFileName> |
| | | <LongName> 024 - Disclosure - Note 10 - Leases (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-note-10-leases-tables </Role> |
| | | <ShortName> Note 10 - Leases (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://investors.permapipe.com/20200731/role/statement-note-10-leases </ParentRole> |
| | | <Position> 25 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R26.htm </HtmlFileName> |
| | | <LongName> 025 - Disclosure - Note 11 - Restricted Cash (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-note-11-restricted-cash-tables </Role> |
| | | <ShortName> Note 11 - Restricted Cash (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://investors.permapipe.com/20200731/role/statement-note-11-restricted-cash </ParentRole> |
| | | <Position> 26 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R27.htm </HtmlFileName> |
| | | <LongName> 026 - Disclosure - Note 2 - Business Segment Reporting (Details Textual) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-note-2-business-segment-reporting-details-textual </Role> |
| | | <ShortName> Note 2 - Business Segment Reporting (Details Textual) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <ParentRole> http://investors.permapipe.com/20200731/role/statement-note-2-business-segment-reporting </ParentRole> |
| | | <Position> 27 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R28.htm </HtmlFileName> |
| | | <LongName> 027 - Disclosure - Note 3 - Accounts Receivable (Details Textual) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-note-3-accounts-receivable-details-textual </Role> |
| | | <ShortName> Note 3 - Accounts Receivable (Details Textual) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <ParentRole> http://investors.permapipe.com/20200731/role/statement-note-3-accounts-receivable </ParentRole> |
| | | <Position> 28 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R29.htm </HtmlFileName> |
| | | <LongName> 028 - Disclosure - Note 4 - Revenue Recognition (Details Textual) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-note-4-revenue-recognition-details-textual </Role> |
| | | <ShortName> Note 4 - Revenue Recognition (Details Textual) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <ParentRole> http://investors.permapipe.com/20200731/role/statement-note-4-revenue-recognition-tables </ParentRole> |
| | | <Position> 29 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R30.htm </HtmlFileName> |
| | | <LongName> 029 - Disclosure - Note 4 - Revenue Recognition - Revenues by Revenue Class (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-note-4-revenue-recognition-revenues-by-revenue-class-details </Role> |
| | | <ShortName> Note 4 - Revenue Recognition - Revenues by Revenue Class (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 30 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R31.htm </HtmlFileName> |
| | | <LongName> 030 - Disclosure - Note 4 - Revenue Recognition - Contract With Customer, Asset and Liability (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-note-4-revenue-recognition-contract-with-customer-asset-and-liability-details </Role> |
| | | <ShortName> Note 4 - Revenue Recognition - Contract With Customer, Asset and Liability (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 31 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R32.htm </HtmlFileName> |
| | | <LongName> 031 - Disclosure - Note 5 - Income Taxes (Details Textual) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-note-5-income-taxes-details-textual </Role> |
| | | <ShortName> Note 5 - Income Taxes (Details Textual) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <ParentRole> http://investors.permapipe.com/20200731/role/statement-note-5-income-taxes </ParentRole> |
| | | <Position> 32 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R33.htm </HtmlFileName> |
| | | <LongName> 032 - Disclosure - Note 6 - Impairment of Long-lived Assets (Details Textual) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-note-6-impairment-of-longlived-assets-details-textual </Role> |
| | | <ShortName> Note 6 - Impairment of Long-lived Assets (Details Textual) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <ParentRole> http://investors.permapipe.com/20200731/role/statement-note-6-impairment-of-longlived-assets-tables </ParentRole> |
| | | <Position> 33 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R34.htm </HtmlFileName> |
| | | <LongName> 033 - Disclosure - Note 6 - Impairment of Long-lived Assets - Goodwill (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-note-6-impairment-of-longlived-assets-goodwill-details </Role> |
| | | <ShortName> Note 6 - Impairment of Long-lived Assets - Goodwill (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 34 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R35.htm </HtmlFileName> |
| | | <LongName> 034 - Disclosure - Note 7 - Stock-based Compensation (Details Textual) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-note-7-stockbased-compensation-details-textual </Role> |
| | | <ShortName> Note 7 - Stock-based Compensation (Details Textual) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <ParentRole> http://investors.permapipe.com/20200731/role/statement-note-7-stockbased-compensation-tables </ParentRole> |
| | | <Position> 35 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R36.htm </HtmlFileName> |
| | | <LongName> 035 - Disclosure - Note 7 - Stock-based Compensation - Stock-based Compensation Expense (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-note-7-stockbased-compensation-stockbased-compensation-expense-details </Role> |
| | | <ShortName> Note 7 - Stock-based Compensation - Stock-based Compensation Expense (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 36 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R37.htm </HtmlFileName> |
| | | <LongName> 036 - Disclosure - Note 7 - Stock-based Compensation - Stock Option Activity (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-note-7-stockbased-compensation-stock-option-activity-details </Role> |
| | | <ShortName> Note 7 - Stock-based Compensation - Stock Option Activity (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 37 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R38.htm </HtmlFileName> |
| | | <LongName> 037 - Disclosure - Note 7 - Stock-based Compensation - Unvested Option Activity (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-note-7-stockbased-compensation-unvested-option-activity-details </Role> |
| | | <ShortName> Note 7 - Stock-based Compensation - Unvested Option Activity (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 38 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R39.htm </HtmlFileName> |
| | | <LongName> 038 - Disclosure - Note 7 - Stock-based Compensation - Restricted Stock Activity (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-note-7-stockbased-compensation-restricted-stock-activity-details </Role> |
| | | <ShortName> Note 7 - Stock-based Compensation - Restricted Stock Activity (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 39 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R40.htm </HtmlFileName> |
| | | <LongName> 039 - Disclosure - Note 8 - Income (Loss) Per Share - Summary of Earnings Per Share (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-note-8-income-loss-per-share-summary-of-earnings-per-share-details </Role> |
| | | <ShortName> Note 8 - Income (Loss) Per Share - Summary of Earnings Per Share (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <ParentRole> http://investors.permapipe.com/20200731/role/statement-note-8-income-loss-per-share-tables </ParentRole> |
| | | <Position> 40 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R41.htm </HtmlFileName> |
| | | <LongName> 040 - Disclosure - Note 9 - Debt (Details Textual) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-note-9-debt-details-textual </Role> |
| | | <ShortName> Note 9 - Debt (Details Textual) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <ParentRole> http://investors.permapipe.com/20200731/role/statement-note-9-debt </ParentRole> |
| | | <Position> 41 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R42.htm </HtmlFileName> |
| | | <LongName> 041 - Disclosure - Note 10 - Leases (Details Textual) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-note-10-leases-details-textual </Role> |
| | | <ShortName> Note 10 - Leases (Details Textual) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <ParentRole> http://investors.permapipe.com/20200731/role/statement-note-10-leases-tables </ParentRole> |
| | | <Position> 42 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R43.htm </HtmlFileName> |
| | | <LongName> 042 - Disclosure - Note 10 - Leases - Supplemental Balance Sheet Information Related to Leases (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details </Role> |
| | | <ShortName> Note 10 - Leases - Supplemental Balance Sheet Information Related to Leases (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 43 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R44.htm </HtmlFileName> |
| | | <LongName> 043 - Disclosure - Note 10 - Leases - Lease Costs (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-note-10-leases-lease-costs-details </Role> |
| | | <ShortName> Note 10 - Leases - Lease Costs (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 44 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R45.htm </HtmlFileName> |
| | | <LongName> 044 - Disclosure - Note 10 - Leases - Supplemental Cash Flow Information Related to Leases (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-note-10-leases-supplemental-cash-flow-information-related-to-leases-details </Role> |
| | | <ShortName> Note 10 - Leases - Supplemental Cash Flow Information Related to Leases (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 45 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R46.htm </HtmlFileName> |
| | | <LongName> 045 - Disclosure - Note 10 - Leases - Weighted-average Lease Terms and Discount Rates (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-note-10-leases-weightedaverage-lease-terms-and-discount-rates-details </Role> |
| | | <ShortName> Note 10 - Leases - Weighted-average Lease Terms and Discount Rates (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 46 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R47.htm </HtmlFileName> |
| | | <LongName> 046 - Disclosure - Note 10 - Leases - Maturities of Lease Liabilities (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-note-10-leases-maturities-of-lease-liabilities-details </Role> |
| | | <ShortName> Note 10 - Leases - Maturities of Lease Liabilities (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 47 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R48.htm </HtmlFileName> |
| | | <LongName> 047 - Disclosure - Note 11 - Restricted Cash (Details Textual) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-note-11-restricted-cash-details-textual </Role> |
| | | <ShortName> Note 11 - Restricted Cash (Details Textual) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <ParentRole> http://investors.permapipe.com/20200731/role/statement-note-11-restricted-cash-tables </ParentRole> |
| | | <Position> 48 </Position> |
| | | </Report> |
| | <Report instance="ppih-20200731.xml"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R49.htm </HtmlFileName> |
| | | <LongName> 048 - Disclosure - Note 11 - Restricted Cash - Summary of Cash, Cash Equivalents and Restricted Cash (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://investors.permapipe.com/20200731/role/statement-note-11-restricted-cash-summary-of-cash-cash-equivalents-and-restricted-cash-details </Role> |
| | | <ShortName> Note 11 - Restricted Cash - Summary of Cash, Cash Equivalents and Restricted Cash (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 49 </Position> |
| | | </Report> |
| | <Report> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <LongName> All Reports </LongName> |
| | | <ReportType> Book </ReportType> |
| | | <ShortName> All Reports </ShortName> |
| | | </Report> |
| | </MyReports> |
| <InputFiles> |
| | <File> ppih-20200731.xml </File> |
| | <File> ppih-20200731.xsd </File> |
| | <File> ppih-20200731_cal.xml </File> |
| | <File> ppih-20200731_def.xml </File> |
| | <File> ppih-20200731_lab.xml </File> |
| | <File> ppih-20200731_pre.xml </File> |
| | </InputFiles> |
| <SupplementalFiles/> |
| <BaseTaxonomies> |
| | <BaseTaxonomy> http://fasb.org/us-gaap/2020-01-31 </BaseTaxonomy> |
| | <BaseTaxonomy> http://xbrl.sec.gov/dei/2019-01-31 </BaseTaxonomy> |
| | <BaseTaxonomy> http://fasb.org/srt/2020-01-31 </BaseTaxonomy> |
| | </BaseTaxonomies> |
| <HasPresentationLinkbase> true </HasPresentationLinkbase> |
| <HasCalculationLinkbase> true </HasCalculationLinkbase> |
| </FilingSummary> |