PCN-to-BOM Impact Extractor
Pricing
from $350.00 / 1,000 processed notices
PCN-to-BOM Impact Extractor
Beta: Match saved NXP discontinuation HTML and selected TI/onsemi PCN PDFs to exact BOM rows. Return typed deadlines, source evidence and explicit review states. Direct URL retrieval is experimental.
Pricing
from $350.00 / 1,000 processed notices
Rating
0.0
(0)
Developer
amycole
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
15 days ago
Last modified
Categories
Share
Find which exact BOM rows occur in supported electronic-component change or discontinuation notices. Keep the original row, product and revision identifiers, typed deadlines, source locations and explicit extraction failures. Use the results to route purchasing and engineering reviews into your existing workflow.
Beta release. Supports the document structures below. Direct URL retrieval is experimental; the tested cloud path uses saved documents supplied as base64. No universal manufacturer coverage or market-wide accuracy is claimed.
Try the example
The form is prefilled with a small synthetic NXP-style notice and three synthetic BOM rows. Run it to see two exact matches and one unmatched row. This demonstrates the pipeline, not a real announcement. For your own data, replace the documents and BOM, and set synthetic_bom to false.
Supported documents
| Adapter | Supported structure | Important limits |
|---|---|---|
| NXP | Discontinuation HTML with the seven-column affected-parts table and MPN/12NC values | Individual last-buy and last-delivery dates; the NXP replacement column is not returned |
| Texas Instruments | Selected change and discontinuance text PDFs with explicit affected lists | Affected MPNs are separate from recommended replacements; reinstatements, strikethrough revisions and uncertain annotations need review |
| onsemi | Selected final product/process-change text PDFs with verified numbered English pages | Standard parts only; qualification vehicles are separate; customer-specific addenda are not processed |
Text PDFs must contain machine-readable text. Scans/OCR, Product Bulletins, IPCNs, onsemi PD notices, ranges and unsupported layouts are rejected or marked partial. A manufacturer name alone does not establish layout compatibility. Missing deadlines remain unresolved. Contradictory printed TI order/ship dates remain in unresolved_deadlines, with their original dates and evidence; they are not silently corrected.
Prepare your input
Use contract schema_version: "0.3", 1–10 documents, and exactly one of bom_rows or bom_csv. Each document needs its expected printed notice_id, manufacturer, and content_base64. An optional public HTTPS source_url records the evidence origin; with inline content, no URL is fetched. input_notice_ref is your own document identifier. Only supply supersedes_notice_id when you have verified that relationship.
Each BOM row requires string row_id, manufacturer, mpn, product_id, revision; optional part_scope is standard, custom or unknown. Preserve the complete orderable MPN, including packaging suffixes, commas and slashes. Matching trims outer whitespace and uses explicit manufacturer aliases; it does not infer a family or engineering equivalence. onsemi PDF typographical hyphens U+2010/U+2011 are normalized, with a warning and the source spelling retained in extracted evidence.
For CSV, use these headers and keep identity columns as strings:
row_id,manufacturer,mpn,product_id,revision,part_scope001,NXP,"PART001,115",PRODUCT-A,002,standard
Prepare a saved notice and CSV using Python's standard library:
import base64, jsonfrom pathlib import Pathraw = Path("notice.pdf").read_bytes()if not 0 < len(raw) <= 5_000_000:raise ValueError("Document exceeds the supported size")payload = {"schema_version": "0.3", "synthetic_bom": False,"documents": [{"notice_id": "REPLACE_WITH_PRINTED_ID","manufacturer": "TI","content_base64": base64.b64encode(raw).decode("ascii")}],"bom_csv": Path("bom.csv").read_text(encoding="utf-8-sig"),}with Path("actor-input.json").open("x", encoding="utf-8") as f:json.dump(payload, f)
Paste the prepared JSON into the Actor input's JSON editor. Remove the prefilled bom_rows when using bom_csv. Keep the file private: it contains your notice and BOM. The development source package also includes tools/make_actor_input.py for multiple documents, validation and safe relative file paths.
Limits: 10 documents, 1,000 BOM rows, 5,000,000 bytes per document, 100 PDF pages. Source-URL-only inputs accept public HTTPS on www.nxp.com, www.onsemi.com, www.mouser.com, www.farnell.com and mm.digikey.com, without credentials, queries or fragments. Redirects and DNS addresses are checked. No authentication or access controls are bypassed. The observed NXP cloud URL request returned HTTP 404; use a saved original rather than relying on URL retrieval for a production workflow.
Read the outputs
The default Dataset contains every notice × BOM-row evaluation. The default Key-value store contains:
| Key | Content |
|---|---|
OUTPUT | JSON: run state, acquisition and notice reports, summary, all results and revision deltas |
IMPACTS_CSV | Matched rows, including inactive historical matches |
REVIEWS_CSV | Manual-review and failed rows |
ALL_RESULTS_CSV | Every evaluation |
Read OUTPUT.run_state and notice_reports even when the Apify run says Succeeded. partial can preserve valid positive matches while leaving other documents, dates or scope unresolved. If all documents fail, output is saved before the run exits unsuccessfully. Invalid batch input is rejected before acquisition, with a stable error code in OUTPUT.
| Result status | Meaning |
|---|---|
matched | Exact affected-list match; not an engineering or supply decision |
no_match_in_listed_scope | No match in that successfully processed list; not universal absence of impact |
out_of_scope | Different manufacturer |
manual_review | Incomplete extraction, unknown manufacturer or unresolved part scope |
failed | That document could not be acquired or extracted |
Deadlines retain their kinds, printed text and source positions. Last-time-buy, last-time-delivery and proposed first shipment have different meanings. Recommended TI replacements and onsemi changed part numbers are distinct fields; neither certifies equivalence. Cybersecurity-support terms and relative acknowledgement deadlines require review.
Verified complete superseding notices can retire an earlier notice within the same input batch. Filter notice_active before counting current impacts. Revision deltas are batch-local; this Actor does not maintain a shared historical database. complete describes the processed table and does not certify that every commercial condition is resolved.
CSV uses UTF-8 with BOM and escapes formula prefixes; JSON preserves original values. Retrieve all pages of the Dataset for larger batches, or download the stored ALL_RESULTS_CSV. Key existence and a successful run alone do not establish that you received the whole result.
API and AI workflows
Submit the same input JSON through the Apify API or an Actor-calling tool. Await the completed run, fetch OUTPUT, inspect its business state, and retrieve the Dataset or CSVs before updating your system. Use the original row_id, product_id, revision and document reference to join results back to your BOM. A web search does not provide this full cross-product, row identity, typed date evidence or failure accounting. MCP compatibility itself is not a quality guarantee; external API/MCP end-to-end acceptance is still pending.
Data handling
Documents are processed in temporary local files. Application logs contain aggregate counts and stable errors, not BOM values or document text. Input and output are stored in the run's Apify storage; temporary-file removal is not deletion of INPUT. No data is incorporated into a shared customer database.
Retention depends on your Apify plan and storage configuration. Named storages are retained indefinitely; unnamed storage follows platform retention rules. Do not assume automatic deletion after a short fixed period. Download required records, then explicitly delete the run and associated storages when appropriate. Keep input, output, storage IDs and signed links restricted. This Actor offers no zero-retention guarantee. See Apify storage documentation for current rules. Process documents you are entitled to use; original manufacturer PDFs are not redistributed with the demonstration.
Verification and release limits
Development has observed 30 selected real notices. In the latest 12-notice diagnostic set, fixes were checked against 64 fully transcribed PDF affected parts, 12 sampled NXP rows and 24 sampled NXP part dates. One reinstatement notice is deliberately rejected. Repaired cases are not a new blind benchmark; no 98% accuracy claim is supported. 105 regression tests passed with local originals, covering extraction, identity preservation, budget rejection, save-before-charge and repeat-run protection.
The preceding private build saved a 10-document × 1,000-row batch: 10,000 evaluations, about 10 seconds, maximum observed memory 204.3 MB and displayed execution cost $0.051. The BOM repeated 29 synthetic patterns. These values are one capacity observation, not a performance SLA or total cost: retention, reading, billing, support and different layouts can change the cost. Full cloud Dataset, OUTPUT and CSV exports were retrieved and compared for the 10,000-evaluation capacity run and the corrected 160-evaluation diagnostic run. Every CSV row identity was checked. These selected cases do not certify every layout.
Pricing and interrupted runs
A processed notice is $0.35, plus $0.01 per run start with the supported maximum 1 GB memory. A complete or partial extracted notice is billable even when no BOM row matches. Failed notices have no custom notice charge; the start fee still applies. There is no per-BOM-row charge. Platform execution usage is included in these event prices; normal Apify account/storage terms still apply.
Set a maximum cost sufficient for the entire input batch: $0.01 + $0.35 × document count (for example $0.36 for one, $3.51 for ten). The budget preflight uses the current event prices, including applicable discounts. Insufficient budget is rejected before acquisition, preserving cross-notice revision semantics. All JSON and CSV exports are saved before notice charging. If a run is interrupted after writing begins, do not resurrect it: same-run restarts are rejected and original outputs are preserved to prevent duplicate writes and charges. Start a new run only if a fresh execution is required. Inspect OUTPUT.billing and the platform charge breakdown.