@pipeworx/pcaob

Connect: https://gateway.pipeworx.io/pcaob/mcp · Install: one-click buttons

Tools: 5

PCAOB Form AP auditor↔issuer engagements and firm inspection reports — hosted, keyless to the caller. Fleet #624: “who audits Company X and which engagement partner signed”, “every issuer audited by Firm Y”, and “has PCAOB found deficiencies at Firm Y” had no surface before this pack.

Tools

  • pcaob_auditor_of(company) — which firm audits a company and who the engagement partner is. Resolves a ticker/company name to SEC CIK first (resolveSecEntity, the same universe edgar and sec key on); falls back to an issuer-name search across Form AP filings for issuers without a clean SEC ticker (funds, broker-dealers).
  • pcaob_firm_engagements(firm, fiscal_year?, limit?) — every issuer a firm reported auditing, optionally scoped to one fiscal year. firm matches a numeric PCAOB Firm ID exactly, otherwise an ILIKE name search.
  • pcaob_partner_engagements(partner, limit?) — every issuer one named engagement partner signed for.
  • pcaob_auditor_changes(days?, limit?) — issuers whose most recent Form AP filing names a different firm than their prior filing, where the change landed in the last N days. Scans up to 1,500 issuers with a filing in the window (response says so if capped).
  • pcaob_inspection_reports(firm, limit?) — PCAOB inspection history for a firm: report year, Part I.A deficiency rate, audits reviewed, PDF link.

Data

Two tables, mirrored by workers/data-pipeline (workers/data-pipeline/src/datasets/pcaob.ts), migration supabase/migrations/107_pcaob_form_ap_inspections.sql:

  • pcaob_form_ap — PCAOB’s own bulk download of the entire AuditorSearch dataset (assets.pcaobus.org/firm-filings/FirmFilings.zip), ~156k rows as of 2026-08. Refreshed weekly; quoted CSV with embedded commas in issuer names, so ingest rides the slow parser and drains over several cron ticks via the resume-offset protocol (same pattern as USAspending).
  • pcaob_inspection_reports — the Firm Inspection Reports downloadable dataset PCAOB publishes at pcaobus.org/oversight/inspections/firm-inspection-reports, ~4.3k rows (one per firm per inspection report). Uses the JSON variant of the dataset, not the CSV — PCAOB’s CSV file is UTF-16LE encoded and this pipeline’s parser is fixed at UTF-8; the JSON export of the identical data is plain UTF-8 and small enough to parse whole-body (format: 'json' in the data-pipeline runner, added for this pack — see the runner’s comment for why).

Identity notes

  • Issuer CIK can be blank for non-SEC registrants (some broker-dealers) — those rows are kept under issuer_name only, never dropped.
  • Firm names vary by country affiliate (“PwC LLP” vs “PricewaterhouseCoopers LLP”). Search matches on the numeric PCAOB Firm ID when the input is all-digits, ILIKE name otherwise, and every response echoes the firm_id(s)/firm_name(s) it actually matched.
  • pcaob_auditor_changes compares each issuer’s own filing history, not a table-wide diff — PostgREST has no window functions, so this pulls a bounded recent history per issuer batch and picks the two most recent filings client-side. It is a real scan (not an aggregate query), hence the 1,500-issuer cap per call.

Caveat carried on every response

Form AP covers US issuer audits only, self-reported by the audit firm. Firm inspection findings are Part I.A summary counts from PCAOB’s published dataset, not the full report text — the PDF link is provided for that.

Tools

  • pcaob_auditor_of — Which PCAOB-registered firm audits a company, and which engagement partner signed the most recent audit report — resolves a ticker or company name to SEC CIK first, then falls back to a name search in
  • pcaob_firm_engagements — Every issuer a PCAOB-registered audit firm reported auditing via Form AP, optionally scoped to one fiscal year. Give a firm name (“Ernst & Young”, “Deloitte”) or its numeric PCAOB Firm ID. Use for “ev
  • pcaob_partner_engagements — Every issuer a named engagement partner signed for, per Form AP. Give a last name (and optionally first name) — matches are partial. Use for “what companies has [partner name] audited”.
  • pcaob_auditor_changes — Issuers whose most recent Form AP filing names a DIFFERENT audit firm than their prior filing, where the new filing landed in the last N days — the “who switched auditors recently” aggregation, which
  • pcaob_inspection_reports — PCAOB inspection history for an audit firm: report year, Part I.A deficiency rate, audits reviewed, and a link to the PDF report. Give a firm name (partial match ok). Use for “has PCAOB found deficien

Tools

  • pcaob_auditor_changes — Issuers whose most recent Form AP filing names a DIFFERENT audit firm than their prior filing, where the new filing landed in the last N days — the who switched auditors recently aggregation, which no
  • pcaob_auditor_of — Which PCAOB-registered firm audits a company, and which engagement partner signed the most recent audit report — resolves a ticker or company name to SEC CIK first, then falls back to a name search in
  • pcaob_firm_engagements — Every issuer a PCAOB-registered audit firm reported auditing via Form AP, optionally scoped to one fiscal year. Give a firm name ( Ernst & Young , Deloitte ) or its numeric PCAOB Firm ID. Use for ever
  • pcaob_inspection_reports — PCAOB inspection history for an audit firm: report year, Part I.A deficiency rate, audits reviewed, and a link to the PDF report. Give a firm name (partial match ok). Use for has PCAOB found deficienc
  • pcaob_partner_engagements — Every issuer a named engagement partner signed for, per Form AP. Give a last name (and optionally first name) — matches are partial. Use for what companies has [partner name] audited .

Regenerated from source · build August 29, 2026