XML 51 R38.htm IDEA: XBRL DOCUMENT
v3.26.1

Basis of Presentation - Customer concentration (Details) - customer | 3 Months Ended
--- | ---
Mar. 31, 2026 | Mar. 31, 2025
Customer concentration |  |
Number of top customers | 10 |
Revenues | Customer concentration | Top ten customers [Member] |  |
Customer concentration |  |
Percentage of concentration risk | 49.90% | 47.10%
Number of customers | 10 | 10
Revenues | Customer concentration | Top ten customers [Member] | Minimum |  |
Customer concentration |  |
Percentage of concentration risk | 40.00% |
Revenues | Customer concentration | Top ten customers [Member] | Maximum |  |
Customer concentration |  |
Percentage of concentration risk | 50.00% |

X
- Definition Represents the number of customers who typically contribute accounts receivable in excess of a specified percentage. + References No definition available. + Details
Name: | prim_ConcentrationRiskNumberOfCustomers
Namespace Prefix: | prim_
Data Type: | xbrli:integerItemType
Balance Type: | na
Period Type: | duration

X
- Definition Represents the number of top customers who typically generate revenue in excess of a specified percentage of total revenues for the entity and consist of a different group of customers in each year. + References No definition available. + Details
Name: | prim_ConcentrationRiskNumberOfTopCustomers
Namespace Prefix: | prim_
Data Type: | xbrli:integerItemType
Balance Type: | na
Period Type: | duration

X
- Definition Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table. + References Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef -Topic 275 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 18 -Subparagraph (a) -Publisher FASB -URI https://asc.fasb.org/1943274/2147482861/275-10-50-18 Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef -Topic 275 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 18 -Publisher FASB -URI https://asc.fasb.org/1943274/2147482861/275-10-50-18 Reference 3: http://www.xbrl.org/2003/role/disclosureRef -Topic 275 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 20 -Subparagraph (a) -Publisher FASB -URI https://asc.fasb.org/1943274/2147482861/275-10-50-20 Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef -Topic 275 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 18 -Subparagraph (d) -Publisher FASB -URI https://asc.fasb.org/1943274/2147482861/275-10-50-18 Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef -Topic 275 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 18 -Subparagraph (c) -Publisher FASB -URI https://asc.fasb.org/1943274/2147482861/275-10-50-18 Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef -Topic 275 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 18 -Subparagraph (b) -Publisher FASB -URI https://asc.fasb.org/1943274/2147482861/275-10-50-18 Reference 7: http://www.xbrl.org/2003/role/exampleRef -Topic 275 -SubTopic 10 -Name Accounting Standards Codification -Section 55 -Paragraph 18 -Publisher FASB -URI https://asc.fasb.org/1943274/2147482836/275-10-55-18 Reference 8: http://www.xbrl.org/2003/role/disclosureRef -Topic 275 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 20 -Subparagraph (b) -Publisher FASB -URI https://asc.fasb.org/1943274/2147482861/275-10-50-20 Reference 9: http://www.xbrl.org/2003/role/disclosureRef -Topic 954 -SubTopic 310 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Publisher FASB -URI https://asc.fasb.org/1943274/2147478785/954-310-50-2 + Details
Name: | us-gaap_ConcentrationRiskLineItems
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition For an entity that discloses a concentration risk in relation to quantitative amount, which serves as the "benchmark" (or denominator) in the equation, this concept represents the concentration percentage derived from the division. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 280 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 42 -Publisher FASB -URI https://asc.fasb.org/1943274/2147482810/280-10-50-42 Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef -Topic 275 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 18 -Subparagraph (a) -Publisher FASB -URI https://asc.fasb.org/1943274/2147482861/275-10-50-18 Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef -Topic 275 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 18 -Publisher FASB -URI https://asc.fasb.org/1943274/2147482861/275-10-50-18 Reference 4: http://www.xbrl.org/2003/role/disclosureRef -Topic 275 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 20 -Subparagraph (a) -Publisher FASB -URI https://asc.fasb.org/1943274/2147482861/275-10-50-20 Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef -Topic 275 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 18 -Subparagraph (d) -Publisher FASB -URI https://asc.fasb.org/1943274/2147482861/275-10-50-18 Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef -Topic 275 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 18 -Subparagraph (c) -Publisher FASB -URI https://asc.fasb.org/1943274/2147482861/275-10-50-18 Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef -Topic 275 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 18 -Subparagraph (b) -Publisher FASB -URI https://asc.fasb.org/1943274/2147482861/275-10-50-18 + Details
Name: | us-gaap_ConcentrationRiskPercentage1
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:percentItemType
Balance Type: | na
Period Type: | duration

X
- Details
Name: | us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueNetMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_ConcentrationRiskByTypeAxis=us-gaap_CustomerConcentrationRiskMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | srt_MajorCustomersAxis=prim_TopTenCustomersMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | srt_RangeAxis=srt_MinimumMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | srt_RangeAxis=srt_MaximumMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |