Annual report pursuant to Section 13 and 15(d)

Note 6 - Capital Stock, Stock Plans, Warrants, and Stock Based Compensation (Details) - Status of Options Under the Company’s Stock Option Plans

v2.4.1.9
Note 6 - Capital Stock, Stock Plans, Warrants, and Stock Based Compensation (Details) - Status of Options Under the Company’s Stock Option Plans (USD $)
12 Months Ended 0 Months Ended 12 Months Ended 0 Months Ended
Dec. 31, 2014
Jul. 29, 2003
Dec. 31, 2013
Jul. 10, 2014
Sep. 29, 2010
Dec. 31, 2012
Note 6 - Capital Stock, Stock Plans, Warrants, and Stock Based Compensation (Details) - Status of Options Under the Company’s Stock Option Plans [Line Items]            
Shares 362,800us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber          
Weighted Average Exercise Price $ 9.53us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice          
Shares 71,800us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross          
Weighted Average Exercise Price $ 4.70us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice          
Exercised (2,577)us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised          
Exercised $ 2.79us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice          
Exercised $ 3,705us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue          
Shares (193,000)us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod          
Shares 239,023us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber [1]          
Weighted Average Exercise Price $ 7.81us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice [1]          
Intrinsic Value (a) 41,957us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue [1]          
Shares 167,223us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber [1]          
Weighted Average Exercise Price $ 9.15us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice [1]          
Intrinsic Value (a) 31,037us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1 [1]          
The 2003 Outside Directors Stock Plan [Member]            
Note 6 - Capital Stock, Stock Plans, Warrants, and Stock Based Compensation (Details) - Status of Options Under the Company’s Stock Option Plans [Line Items]            
Shares 169,200us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
/ us-gaap_PlanNameAxis
= pesi_The2003OutsideDirectorsStockPlanMember
  163,200us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
/ us-gaap_PlanNameAxis
= pesi_The2003OutsideDirectorsStockPlanMember
     
Weighted Average Exercise Price $ 9.18us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= pesi_The2003OutsideDirectorsStockPlanMember
  $ 10.19us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= pesi_The2003OutsideDirectorsStockPlanMember
     
Shares 16,800us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
/ us-gaap_PlanNameAxis
= pesi_The2003OutsideDirectorsStockPlanMember
30,000us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
/ us-gaap_PlanNameAxis
= pesi_The2003OutsideDirectorsStockPlanMember
24,000us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
/ us-gaap_PlanNameAxis
= pesi_The2003OutsideDirectorsStockPlanMember
     
Weighted Average Exercise Price $ 3.70us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= pesi_The2003OutsideDirectorsStockPlanMember
  $ 2.89us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= pesi_The2003OutsideDirectorsStockPlanMember
     
Exercised (2,577)us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised
/ us-gaap_PlanNameAxis
= pesi_The2003OutsideDirectorsStockPlanMember
         
Exercised $ 2.79us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= pesi_The2003OutsideDirectorsStockPlanMember
         
Exercised 3,705us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
/ us-gaap_PlanNameAxis
= pesi_The2003OutsideDirectorsStockPlanMember
[2]          
Shares (14,400)us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
/ us-gaap_PlanNameAxis
= pesi_The2003OutsideDirectorsStockPlanMember
  (18,000)us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
/ us-gaap_PlanNameAxis
= pesi_The2003OutsideDirectorsStockPlanMember
     
Weighted Average Exercise Price $ 8.50us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= pesi_The2003OutsideDirectorsStockPlanMember
  $ 9.95us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= pesi_The2003OutsideDirectorsStockPlanMember
     
Shares 169,023us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
/ us-gaap_PlanNameAxis
= pesi_The2003OutsideDirectorsStockPlanMember
  169,200us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
/ us-gaap_PlanNameAxis
= pesi_The2003OutsideDirectorsStockPlanMember
     
Weighted Average Exercise Price $ 8.79us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= pesi_The2003OutsideDirectorsStockPlanMember
  $ 9.18us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= pesi_The2003OutsideDirectorsStockPlanMember
     
Intrinsic Value (a) 41,957us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
/ us-gaap_PlanNameAxis
= pesi_The2003OutsideDirectorsStockPlanMember
[2]   5,850us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
/ us-gaap_PlanNameAxis
= pesi_The2003OutsideDirectorsStockPlanMember
[2]      
Shares 152,223us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
/ us-gaap_PlanNameAxis
= pesi_The2003OutsideDirectorsStockPlanMember
  145,200us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
/ us-gaap_PlanNameAxis
= pesi_The2003OutsideDirectorsStockPlanMember
     
Weighted Average Exercise Price $ 9.35us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= pesi_The2003OutsideDirectorsStockPlanMember
  $ 10.22us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= pesi_The2003OutsideDirectorsStockPlanMember
     
Intrinsic Value (a)    [2]      [2]      
The 2004 Stock Option Plan [Member]            
Note 6 - Capital Stock, Stock Plans, Warrants, and Stock Based Compensation (Details) - Status of Options Under the Company’s Stock Option Plans [Line Items]            
Shares 133,600us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
/ us-gaap_PlanNameAxis
= pesi_The2004StockOptionPlanMember
  182,100us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
/ us-gaap_PlanNameAxis
= pesi_The2004StockOptionPlanMember
     
Weighted Average Exercise Price $ 10.73us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= pesi_The2004StockOptionPlanMember
  $ 10.55us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= pesi_The2004StockOptionPlanMember
     
Shares (118,600)us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
/ us-gaap_PlanNameAxis
= pesi_The2004StockOptionPlanMember
  (48,500)us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
/ us-gaap_PlanNameAxis
= pesi_The2004StockOptionPlanMember
     
Weighted Average Exercise Price $ 11.19us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= pesi_The2004StockOptionPlanMember
  $ 10.05us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= pesi_The2004StockOptionPlanMember
     
Shares 15,000us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
/ us-gaap_PlanNameAxis
= pesi_The2004StockOptionPlanMember
  133,600us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
/ us-gaap_PlanNameAxis
= pesi_The2004StockOptionPlanMember
     
Weighted Average Exercise Price $ 7.10us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= pesi_The2004StockOptionPlanMember
  $ 10.73us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= pesi_The2004StockOptionPlanMember
     
Intrinsic Value (a)    [2]      [2]      
Shares 15,000us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
/ us-gaap_PlanNameAxis
= pesi_The2004StockOptionPlanMember
  133,600us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
/ us-gaap_PlanNameAxis
= pesi_The2004StockOptionPlanMember
     
Weighted Average Exercise Price $ 7.10us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= pesi_The2004StockOptionPlanMember
  $ 10.73us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= pesi_The2004StockOptionPlanMember
     
Intrinsic Value (a)    [2]      [2]      
The 2010 Stock Option Plan [Member]            
Note 6 - Capital Stock, Stock Plans, Warrants, and Stock Based Compensation (Details) - Status of Options Under the Company’s Stock Option Plans [Line Items]            
Shares 60,000us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
/ us-gaap_PlanNameAxis
= pesi_The2010StockOptionPlanMember
        60,000us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
/ us-gaap_PlanNameAxis
= pesi_The2010StockOptionPlanMember
Weighted Average Exercise Price $ 7.85us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= pesi_The2010StockOptionPlanMember
        $ 7.85us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= pesi_The2010StockOptionPlanMember
Shares 55,000us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
/ us-gaap_PlanNameAxis
= pesi_The2010StockOptionPlanMember
    55,000us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
/ us-gaap_PlanNameAxis
= pesi_The2010StockOptionPlanMember
200,000us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
/ us-gaap_PlanNameAxis
= pesi_The2010StockOptionPlanMember
 
Weighted Average Exercise Price $ 5.00us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= pesi_The2010StockOptionPlanMember
    $ 5.00us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= pesi_The2010StockOptionPlanMember
   
Shares (60,000)us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
/ us-gaap_PlanNameAxis
= pesi_The2010StockOptionPlanMember
         
Weighted Average Exercise Price $ 7.85us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= pesi_The2010StockOptionPlanMember
         
Shares 55,000us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
/ us-gaap_PlanNameAxis
= pesi_The2010StockOptionPlanMember
        60,000us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
/ us-gaap_PlanNameAxis
= pesi_The2010StockOptionPlanMember
Weighted Average Exercise Price $ 5.00us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= pesi_The2010StockOptionPlanMember
        $ 7.85us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= pesi_The2010StockOptionPlanMember
Intrinsic Value (a)    [2]      [2]      
Shares     40,000us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
/ us-gaap_PlanNameAxis
= pesi_The2010StockOptionPlanMember
  0us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
/ us-gaap_PlanNameAxis
= pesi_The2010StockOptionPlanMember
 
Weighted Average Exercise Price     $ 7.85us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= pesi_The2010StockOptionPlanMember
     
Intrinsic Value (a)    [2]      [2]      
[1] Options with exercise prices ranging from $2.79 to $14.75
[2] Represents the difference between the market price at the date of exercise or the end of the year, as applicable, and the exercise price.