| Note 17 - Segment Reporting (Details) - Segment Financial Information (USD $)
 | 12 Months Ended | 
| Dec. 31, 2014 | Dec. 31, 2013 | 
| Segment Reporting Information [Line Items] |  |  |  |  | 
| Revenue from external customers | $ 57,065,000us-gaap_SalesRevenueNet |  | $ 74,413,000us-gaap_SalesRevenueNet |  | 
| Gross profit (loss) | 11,908,000us-gaap_GrossProfit |  | 9,816,000us-gaap_GrossProfit |  | 
| Interest income | 27,000us-gaap_InvestmentIncomeInterest |  | 35,000us-gaap_InvestmentIncomeInterest |  | 
| Interest expense | 616,000us-gaap_InterestExpense |  | 762,000us-gaap_InterestExpense |  | 
| Interest expense-financing fees | 192,000us-gaap_FinancingInterestExpense |  | 132,000us-gaap_FinancingInterestExpense |  | 
| Depreciation and amortization | 4,240,000us-gaap_DepreciationAndAmortization |  | 4,126,000us-gaap_DepreciationAndAmortization |  | 
| Segment loss, net of taxes | (2,992,000)us-gaap_IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest |  | (34,471,000)us-gaap_IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest |  | 
| Segment assets | 88,636,000us-gaap_Assets | [1] | 92,060,000us-gaap_Assets | [1] | 
| Expenditures for segment assets | 464,000us-gaap_PaymentsToAcquirePropertyPlantAndEquipment |  | 944,000us-gaap_PaymentsToAcquirePropertyPlantAndEquipment |  | 
| Total debt | 11,372,000us-gaap_DebtAndCapitalLeaseObligations |  | 14,248,000us-gaap_DebtAndCapitalLeaseObligations |  | 
| Treatment [Member] |  |  |  |  | 
| Segment Reporting Information [Line Items] |  |  |  |  | 
| Revenue from external customers | 42,343,000us-gaap_SalesRevenueNet / us-gaap_StatementBusinessSegmentsAxis
 = pesi_TreatmentMember
 |  | 35,540,000us-gaap_SalesRevenueNet / us-gaap_StatementBusinessSegmentsAxis
 = pesi_TreatmentMember
 |  | 
| Intercompany revenues | 12,000pesi_IntercompanyRevenues / us-gaap_StatementBusinessSegmentsAxis
 = pesi_TreatmentMember
 |  | 1,179,000pesi_IntercompanyRevenues / us-gaap_StatementBusinessSegmentsAxis
 = pesi_TreatmentMember
 |  | 
| Gross profit (loss) | 10,480,000us-gaap_GrossProfit / us-gaap_StatementBusinessSegmentsAxis
 = pesi_TreatmentMember
 |  | 5,574,000us-gaap_GrossProfit / us-gaap_StatementBusinessSegmentsAxis
 = pesi_TreatmentMember
 |  | 
| Interest expense | 38,000us-gaap_InterestExpense / us-gaap_StatementBusinessSegmentsAxis
 = pesi_TreatmentMember
 |  | 42,000us-gaap_InterestExpense / us-gaap_StatementBusinessSegmentsAxis
 = pesi_TreatmentMember
 |  | 
| Depreciation and amortization | 3,281,000us-gaap_DepreciationAndAmortization / us-gaap_StatementBusinessSegmentsAxis
 = pesi_TreatmentMember
 |  | 3,045,000us-gaap_DepreciationAndAmortization / us-gaap_StatementBusinessSegmentsAxis
 = pesi_TreatmentMember
 |  | 
| Segment loss, net of taxes | 5,545,000us-gaap_IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest / us-gaap_StatementBusinessSegmentsAxis
 = pesi_TreatmentMember
 |  | (8,198,000)us-gaap_IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest / us-gaap_StatementBusinessSegmentsAxis
 = pesi_TreatmentMember
 | [2] | 
| Segment assets | 50,226,000us-gaap_Assets / us-gaap_StatementBusinessSegmentsAxis
 = pesi_TreatmentMember
 | [1] | 49,978,000us-gaap_Assets / us-gaap_StatementBusinessSegmentsAxis
 = pesi_TreatmentMember
 | [1] | 
| Expenditures for segment assets | 399,000us-gaap_PaymentsToAcquirePropertyPlantAndEquipment / us-gaap_StatementBusinessSegmentsAxis
 = pesi_TreatmentMember
 |  | 477,000us-gaap_PaymentsToAcquirePropertyPlantAndEquipment / us-gaap_StatementBusinessSegmentsAxis
 = pesi_TreatmentMember
 |  | 
| Total debt | 47,000us-gaap_DebtAndCapitalLeaseObligations / us-gaap_StatementBusinessSegmentsAxis
 = pesi_TreatmentMember
 |  | 106,000us-gaap_DebtAndCapitalLeaseObligations / us-gaap_StatementBusinessSegmentsAxis
 = pesi_TreatmentMember
 |  | 
| Services [Member] |  |  |  |  | 
| Segment Reporting Information [Line Items] |  |  |  |  | 
| Revenue from external customers | 14,722,000us-gaap_SalesRevenueNet / us-gaap_StatementBusinessSegmentsAxis
 = pesi_ServicesMember
 |  | 38,873,000us-gaap_SalesRevenueNet / us-gaap_StatementBusinessSegmentsAxis
 = pesi_ServicesMember
 |  | 
| Intercompany revenues | 70,000pesi_IntercompanyRevenues / us-gaap_StatementBusinessSegmentsAxis
 = pesi_ServicesMember
 |  | 77,000pesi_IntercompanyRevenues / us-gaap_StatementBusinessSegmentsAxis
 = pesi_ServicesMember
 |  | 
| Gross profit (loss) | 1,428,000us-gaap_GrossProfit / us-gaap_StatementBusinessSegmentsAxis
 = pesi_ServicesMember
 |  | 4,242,000us-gaap_GrossProfit / us-gaap_StatementBusinessSegmentsAxis
 = pesi_ServicesMember
 |  | 
| Interest expense | 1,000us-gaap_InterestExpense / us-gaap_StatementBusinessSegmentsAxis
 = pesi_ServicesMember
 |  | (3,000)us-gaap_InterestExpense / us-gaap_StatementBusinessSegmentsAxis
 = pesi_ServicesMember
 |  | 
| Interest expense-financing fees | (2,000)us-gaap_FinancingInterestExpense / us-gaap_StatementBusinessSegmentsAxis
 = pesi_ServicesMember
 |  |  |  | 
| Depreciation and amortization | 910,000us-gaap_DepreciationAndAmortization / us-gaap_StatementBusinessSegmentsAxis
 = pesi_ServicesMember
 |  | 990,000us-gaap_DepreciationAndAmortization / us-gaap_StatementBusinessSegmentsAxis
 = pesi_ServicesMember
 |  | 
| Segment loss, net of taxes | (1,993,000)us-gaap_IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest / us-gaap_StatementBusinessSegmentsAxis
 = pesi_ServicesMember
 | [2] | (20,042,000)us-gaap_IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest / us-gaap_StatementBusinessSegmentsAxis
 = pesi_ServicesMember
 | [2] | 
| Segment assets | 8,920,000us-gaap_Assets / us-gaap_StatementBusinessSegmentsAxis
 = pesi_ServicesMember
 | [1] | 11,951,000us-gaap_Assets / us-gaap_StatementBusinessSegmentsAxis
 = pesi_ServicesMember
 | [1] | 
| Expenditures for segment assets | 64,000us-gaap_PaymentsToAcquirePropertyPlantAndEquipment / us-gaap_StatementBusinessSegmentsAxis
 = pesi_ServicesMember
 |  | 466,000us-gaap_PaymentsToAcquirePropertyPlantAndEquipment / us-gaap_StatementBusinessSegmentsAxis
 = pesi_ServicesMember
 |  | 
| Segments Total [Member] |  |  |  |  | 
| Segment Reporting Information [Line Items] |  |  |  |  | 
| Revenue from external customers | 57,065,000us-gaap_SalesRevenueNet / us-gaap_StatementBusinessSegmentsAxis
 = pesi_SegmentsTotalMember
 | [3] | 74,413,000us-gaap_SalesRevenueNet / us-gaap_StatementBusinessSegmentsAxis
 = pesi_SegmentsTotalMember
 | [3] | 
| Intercompany revenues | 82,000pesi_IntercompanyRevenues / us-gaap_StatementBusinessSegmentsAxis
 = pesi_SegmentsTotalMember
 |  | 1,256,000pesi_IntercompanyRevenues / us-gaap_StatementBusinessSegmentsAxis
 = pesi_SegmentsTotalMember
 |  | 
| Gross profit (loss) | 11,908,000us-gaap_GrossProfit / us-gaap_StatementBusinessSegmentsAxis
 = pesi_SegmentsTotalMember
 |  | 9,816,000us-gaap_GrossProfit / us-gaap_StatementBusinessSegmentsAxis
 = pesi_SegmentsTotalMember
 |  | 
| Interest expense | 39,000us-gaap_InterestExpense / us-gaap_StatementBusinessSegmentsAxis
 = pesi_SegmentsTotalMember
 |  | 39,000us-gaap_InterestExpense / us-gaap_StatementBusinessSegmentsAxis
 = pesi_SegmentsTotalMember
 |  | 
| Interest expense-financing fees | (2,000)us-gaap_FinancingInterestExpense / us-gaap_StatementBusinessSegmentsAxis
 = pesi_SegmentsTotalMember
 |  |  |  | 
| Depreciation and amortization | 4,191,000us-gaap_DepreciationAndAmortization / us-gaap_StatementBusinessSegmentsAxis
 = pesi_SegmentsTotalMember
 |  | 4,035,000us-gaap_DepreciationAndAmortization / us-gaap_StatementBusinessSegmentsAxis
 = pesi_SegmentsTotalMember
 |  | 
| Segment loss, net of taxes | 3,552,000us-gaap_IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest / us-gaap_StatementBusinessSegmentsAxis
 = pesi_SegmentsTotalMember
 |  | (28,240,000)us-gaap_IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest / us-gaap_StatementBusinessSegmentsAxis
 = pesi_SegmentsTotalMember
 |  | 
| Segment assets | 59,146,000us-gaap_Assets / us-gaap_StatementBusinessSegmentsAxis
 = pesi_SegmentsTotalMember
 | [1] | 61,929,000us-gaap_Assets / us-gaap_StatementBusinessSegmentsAxis
 = pesi_SegmentsTotalMember
 | [1] | 
| Expenditures for segment assets | 463,000us-gaap_PaymentsToAcquirePropertyPlantAndEquipment / us-gaap_StatementBusinessSegmentsAxis
 = pesi_SegmentsTotalMember
 |  | 943,000us-gaap_PaymentsToAcquirePropertyPlantAndEquipment / us-gaap_StatementBusinessSegmentsAxis
 = pesi_SegmentsTotalMember
 |  | 
| Total debt | 47,000us-gaap_DebtAndCapitalLeaseObligations / us-gaap_StatementBusinessSegmentsAxis
 = pesi_SegmentsTotalMember
 |  | 106,000us-gaap_DebtAndCapitalLeaseObligations / us-gaap_StatementBusinessSegmentsAxis
 = pesi_SegmentsTotalMember
 |  | 
| Corporate and Other [Member] |  |  |  |  | 
| Segment Reporting Information [Line Items] |  |  |  |  | 
| Revenue from external customers |  | [4] |  | [4] | 
| Intercompany revenues |  | [4] |  | [4] | 
| Gross profit (loss) |  | [4] |  | [4] | 
| Interest income | 27,000us-gaap_InvestmentIncomeInterest / us-gaap_StatementBusinessSegmentsAxis
 = us-gaap_CorporateAndOtherMember
 | [4] | 35,000us-gaap_InvestmentIncomeInterest / us-gaap_StatementBusinessSegmentsAxis
 = us-gaap_CorporateAndOtherMember
 | [4] | 
| Interest expense | 577,000us-gaap_InterestExpense / us-gaap_StatementBusinessSegmentsAxis
 = us-gaap_CorporateAndOtherMember
 | [4] | 723,000us-gaap_InterestExpense / us-gaap_StatementBusinessSegmentsAxis
 = us-gaap_CorporateAndOtherMember
 | [4] | 
| Interest expense-financing fees | 194,000us-gaap_FinancingInterestExpense / us-gaap_StatementBusinessSegmentsAxis
 = us-gaap_CorporateAndOtherMember
 | [4] | 132,000us-gaap_FinancingInterestExpense / us-gaap_StatementBusinessSegmentsAxis
 = us-gaap_CorporateAndOtherMember
 | [4] | 
| Depreciation and amortization | 49,000us-gaap_DepreciationAndAmortization / us-gaap_StatementBusinessSegmentsAxis
 = us-gaap_CorporateAndOtherMember
 | [4] | 91,000us-gaap_DepreciationAndAmortization / us-gaap_StatementBusinessSegmentsAxis
 = us-gaap_CorporateAndOtherMember
 | [4] | 
| Segment loss, net of taxes | (6,544,000)us-gaap_IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest / us-gaap_StatementBusinessSegmentsAxis
 = us-gaap_CorporateAndOtherMember
 | [4] | (6,231,000)us-gaap_IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest / us-gaap_StatementBusinessSegmentsAxis
 = us-gaap_CorporateAndOtherMember
 | [4] | 
| Segment assets | 29,490,000us-gaap_Assets / us-gaap_StatementBusinessSegmentsAxis
 = us-gaap_CorporateAndOtherMember
 | [1],[4],[5] | 30,131,000us-gaap_Assets / us-gaap_StatementBusinessSegmentsAxis
 = us-gaap_CorporateAndOtherMember
 | [1],[4],[5] | 
| Expenditures for segment assets | 1,000us-gaap_PaymentsToAcquirePropertyPlantAndEquipment / us-gaap_StatementBusinessSegmentsAxis
 = us-gaap_CorporateAndOtherMember
 | [4] | 1,000us-gaap_PaymentsToAcquirePropertyPlantAndEquipment / us-gaap_StatementBusinessSegmentsAxis
 = us-gaap_CorporateAndOtherMember
 | [4] | 
| Total debt | $ 11,325,000us-gaap_DebtAndCapitalLeaseObligations / us-gaap_StatementBusinessSegmentsAxis
 = us-gaap_CorporateAndOtherMember
 | [4],[6] | $ 14,142,000us-gaap_DebtAndCapitalLeaseObligations / us-gaap_StatementBusinessSegmentsAxis
 = us-gaap_CorporateAndOtherMember
 | [4],[6] | 
|  | 
|  |