Changelog

A running, dated log of what we've actually shipped — new APIs, fixes, and site updates. Nothing on this page is marketing copy; every entry is a real, dated change.

Follow it in a feed reader: Atom feed.

  1. 2026-09-19

    Tariff research: citation blocks and a dataset metadata correction

    • The CROSS classifier benchmark and keyword-search ceiling study now offer suggested citations in plain text and BibTeX, with the original measurement dates, source pages and licenses.
    • Correction: the CROSS study’s machine-readable dataset description still referred to the initial sample after the study expanded. It now derives attempted, answered and unanswered counts from the same summary used by the visible page. No benchmark results were rerun or rewritten; the historical findings and earlier correction remain intact.
  2. 2026-09-19

    The headings a keyword search of the tariff schedule can never find

    • New research: The headings a keyword search of the tariff schedule can never find. Every HTS classification tool starts the same way — score each heading in the schedule by how well its official text overlaps the product description, take the best ones. We measured where that approach tops out. Across 140 CBP binding rulings in two disjoint samples, the heading CBP assigned is somewhere in the keyword ranking 96% of the time in one sample and 90% in the other. For the rest it scores zero — no depth of list ever reaches it.
    • Why: those products are described in words the schedule does not use. A pump-over system for wine fermentation belongs under machinery for the preparation of drink; cremation urns belong under ornaments; a harvest door decoration belongs under festive articles. Obvious to a person, invisible to a term-matching scorer. Some turn on a fact the description never contains at all — a gasket’s heading depends on which engine it is for.
    • What it is not: a claim that 4–10% of all tariff classification is impossible with keyword search. Binding rulings are hard cases by construction — an importer asks for one when the answer is not obvious — so the share on ordinary merchandise is very likely lower, and we have not measured it. The two samples disagree on the figure, and both are published rather than the more striking one.
    • Every row is downloadable — the ruling, CBP’s heading, and the rank at which a keyword search finds it — so anyone can recompute it or run the same test against their own tool. No model is involved in the measurement, and no product accuracy figure appears on the page.
  3. 2026-09-19

    A company name without spaces misses the screening list — measured, including on our own products

    • New research, with the data: a company name without spaces misses the screening list. On 97 real Consolidated Screening List entities, a company’s short name found its listed record 98% of the time spelled with spaces and 4% without. Compacting a whole name is harmless — all 97 survived it — so the failure is specific to the shortened form people actually type.
    • Half the misses are silent. 42 of the 84 missed compacted queries scored below the near-miss floor, where nothing is reported at all. Those are not near misses a lower threshold would catch: the lowest sit around 0.15.
    • The matcher is the product’s own, bundled from source rather than reimplemented for the study, at the product’s own thresholds. Every row is downloadable as CSV with the summary and a README.
    • Our screening products have this limit. Three ways of widening the matcher were measured over 27,000+ unrelated pairs; the best recovered a fraction of the misses and created new false matches between genuinely different companies. Instead, a single-word query that finds nothing will be reported as incomplete coverage rather than a clean screen, with the reason and an instruction to re-screen the spaced legal name. That change shipped the same day — see the entry above.
  4. 2026-09-19

    A compacted company name no longer returns a clean screen

    • Shipped to every screening product. A company name sent as a single word with no spaces that matches nothing now returns incomplete coverage rather than a clean result, with the reason and an instruction to re-screen the spaced legal name. Before today, GloryInternational returned no_match with incomplete_coverage: false — an affirmative clean screen for a firm with 24 listed records under its spaced name.
    • Where it appears, using each product’s existing fields rather than a new contract: FDA Import Alert Screening composes it into coverage_note; US Import Risk Screening carries it in the shipment route’s exposure_summary.reasons and, per party, in a new nullable coverage_note on /screen/parties; EPA Compliance + Risk gains a nullable top-level coverage_note. No field was removed and no existing field changed meaning.
    • Nothing else moved. No matcher, threshold, retrieval path, status vocabulary or entity-only behaviour changed. Verified against captures taken before the deploy: every properly spaced query returns the identical status, match count and score, and no match was added anywhere.
    • The recall gap is unchanged and we are not claiming otherwise. A compacted name still fails to find the listed record — we measured how often, and every way of widening the matcher that we measured bought back a fraction of the misses while creating new false matches between genuinely different companies. What changed is that the result no longer reads as clean.
    • Check a list before you screen it with the free screening name checker.
  5. 2026-09-17

    We graded our own HS classifier against CBP's rulings and published the score, which is not good

    • New research: Six digits against CBP’s own rulings. U.S. Customs and Border Protection publishes binding classification rulings — CBP’s own description of a product, and the tariff number CBP assigned it. We gave 45 of those descriptions to our own classifier and compared. It matched CBP’s 6-digit subheading 10 times out of 45 (22.2%, 95% CI 12.5–36.3%), was in the right 4-digit heading 35.6% of the time and the right chapter 60%. Every miss is on the page, and the whole test set downloads as CSV so anyone can run it against any tool, including ones that are not ours.
    • The finding a user can act on today: the confidence score means something on the low end. Every correct answer scored 0.7 or above, and none of the 17 answers below 0.7 was correct. A high score is not the converse — at 0.7 and above the classifier was still right only 36% of the time on these cases. Treat a low confidence as “do not rely on this”, and a high one as a candidate to check rather than an answer.
    • The caveat that flatters us, stated rather than buried: an importer requests a binding ruling precisely because the classification was unclear. These are hard cases by construction, and 22.2% is not accuracy on ordinary merchandise.
    • What we did not have to change: the product page never claimed an accuracy figure, and already described the confidence score as “not a measured accuracy”. We checked that before publishing, because the first thing to audit after measuring yourself is whether you had been claiming otherwise.
  6. 2026-09-17

    Screens now say what they read and dropped, and three products find parties they were missing

    • Every screening product reports its near misses. A listed entry that scored close to, but under, the match floor used to disappear from the response, so no_match read as “nothing there resembled this name”. FDA Import Alert Screening and the OSHA and DOL sections of EPA Compliance Risk now carry records_below_match_threshold on every response, the way US Import Risk Screening has since 14 September. Screening “Claridges Organic Ltd” against FDA’s lists returns its match and nine further entries disclosed below the floor; “Shandong Ocean Fisheries” returns no match and 67.
    • US Import Risk Screening: parties whose name carries punctuation are no longer missed. A corporate form written “Company;”, “TECHNOLOGY)” or “Abris-Technology” was not read as a form, so the record was withheld and the screen answered with no exposure. “Abris-Technology” and “Minotor-Service” now return a match; “Sinobright Import and Export Company” and “Applied Systems Methods and Technology” return a possible match. Two new guards keep a form that stands only inside a bracket from serving a person’s record.
    • FDA Import Alert Screening and EPA Compliance Risk: a firm whose only organization evidence is its legal form is served. “Ostrea d.o.o.”, “Gastraval S.L.”, “Euroterm CJSC” and, on the Labor Department data, “ASHFORD RADIOLOGY P.S.C” were withheld because the organization filter could not read those forms. It now reads the same form list the matcher does — 137 FDA firms and 37 Labor employers, each read by hand first.
    • SEC Form 4 Insider-Trade Alerts: the note stays factual. It states what a Rule 10b5-1 plan or an F, A, M or G transaction code means, without describing a transaction as benign or routine.
    • Landed Cost / HTS: the duty figures’ date is described exactly. The disclaimer now says the schedule is the USITC’s as it stood on the snapshot date shown — the date our copy was made.
  7. 2026-09-17

    FDA Import Alert Screening and the OSHA and DOL sections now screen organizations only, and say when they withheld a record

    • FDA Import Alert Screening: some firms on FDA’s Import Alert lists are sole proprietors listed under a person’s name. An entry whose listed name may identify an individual is no longer returned. When one would have matched, the response sets withheld_possible_individual and incomplete_coverage to true and carries a coverage_note pointing to FDA’s own lists, so a no_match with incomplete_coverage: true is not a clean result. The rule reads business forms and trade words in the name, and it withholds some organizations too: over the current alert data, 5,262 of 20,852 listed names are withheld, including firms named only by a brand and a legal form the rule does not read, such as “Ostrea d.o.o.”.
    • EPA ECHO Compliance + Risk: the same applies to the osha and dol sections of /company-risk-screen, whose OSHA establishment names and Wage and Hour and MSHA names include people. A withheld record is never a candidate, never counted and never scored; the section carries withheld_possible_individual and coverage_note, incomplete_coverage is true, and cross_agency_summary names the cause.
  8. 2026-09-17

    The name traps behind today's matching fixes are now written down and runnable

    • New guide: Screening supplier names against FDA Import Alerts: the name traps. FDA’s lists spell firm names the way whoever typed them spelled them, and five of those habits make an automated screen answer “not listed” about a firm that is listed. Each is shown with a live response captured on publish day: Ltd against a filing that says Limited, the non-English legal forms fixed today (Ostrea d.o.o., SUNEX S. de R.L.), transliterated spacing, the letters Unicode normalization does not decompose, and the Green List — where a hit is an exemption, not a problem. It also states the question no firm-name screen can answer, including ours: an Import Alert that detains a product from a whole country names no firm at all.
    • Updated: Searching openFDA recalls by company. The measurement script was re-run and every trap reproduced, totals included. The page now leads with the three traps that return a clean-looking answer about a company that does have recalls — a mistyped field name returning the same 404 as “no matches”, a legal suffix spelled differently from the filing, and an apostrophe — because those are the ones that decide whether a firm’s recalls are found, and they are the least documented anywhere.
  9. 2026-09-17

    A company name without its legal form now finds its listing, and a single letter no longer makes an exact match

    • FDA Import Alert Screening: a firm listed with a legal form written with dots or as a foreign abbreviation — “SUNEX S. de R.L.”, “Lofotfisk A.S.”, “Colian sp. z o.o.”, “OAO Galan” — returned no_match when screened without the form. Each name is now also compared without its trailing legal form (and without one leading OOO, OAO or JSC), and the best comparison is kept, so those firms match exactly. Measured over the current alert data: 322 of the 1,740 listed firms that carry such a form had been missed this way. No score is lowered by the change.
    • EPA ECHO Compliance + Risk: an employer the Department of Labor lists as “SCHOTT NURSERY, L.L.C.” was dropped from the OSHA and DOL sections when screened as “Schott Nursery”. The same comparison now applies there.
    • US Import Risk Screening: a company screened without a dotted legal form (“Cientec” for “CIENTEC, S.A. DE C.V.”) was counted as a record below the match threshold; it now matches. A one- or two-letter word in a name can no longer carry a comparison to a perfect score on its own.
    • Vendor Screening (private): “M&S Pharmacy, LLC” returned 39 SAM.gov records at a perfect score, most of them different pharmacies that shared only the word “pharmacy”. A short word can no longer make a match exact, and companies are compared as companies rather than with rules meant for people’s initials. SAM.gov names are compared without their legal forms too, so “HAVANATUR S.A.” still finds the listed “HAVANATUR”.
    • Resume Parser: an OpenAPI document and Postman collection are published, generated from the API’s own types.
  10. 2026-09-17

    Correction: we doubled the CBP benchmark to 100 cases, and the confidence rule we published did not survive it

    • What we said earlier today, at 45 rulings: every correct answer from the HS classifier scored a confidence of 0.7 or above, and none of the 17 answers below 0.7 was correct. We published that as a usable rule — read a low confidence as “do not rely on this”.
    • At 100 rulings it is 2 of 32. The clean line is gone. Worse for the rule, the 0.70–0.80 band was correct only 13% of the time, which puts it nearer the low group than the confident one. The rule is withdrawn rather than restated, and the research page now shows every confidence band instead of a single split, plus what a “refuse below X” rule would actually cost at each threshold. Nothing had been built on the rule; it existed only as guidance on three pages, and all three are corrected.
    • The headline figures, over the 98 calls that returned an answer: 23.5% exact at 6 digits (95% CI 16.2–32.8%), 38% at the 4-digit heading, 58% at the chapter. Two of the 100 calls returned HTTP 503 with no classification; a call that returns no answer is not a wrong answer, so they are reported separately rather than counted as misses.
    • The finding that matters most for improving it: in 67 of the 75 misses, CBP’s code was not among the candidate subheadings we returned at all. The accuracy is being lost when candidates are assembled, not when one is chosen.
    • Nothing about the product changed today. This is the measurement being corrected in public, which is the only way a published benchmark is worth anything.
  11. 2026-09-16

    Short company names match their sanctions listing, and SAM.gov records carry their own provenance

    • US Import Risk Screening: a company name written without its foreign legal form did not match the listing that carries one, so a search for “VVB” scored below the match threshold against the listed “VVB, PAO” and was counted only as incomplete coverage. Those forms (PAO, PJSC, OOO, OAO, ZAO, JSC, AD and similar) are now read where a legal form goes, so the short name matches its record. Names that differ in their substantive words still do not match.
    • Vendor Screening (private): each SAM.gov Exclusions match now carries the created date SAM.gov gives the record and whether the Dun & Bradstreet limitation in SAM.gov’s Terms of Use applies to it — SAM.gov support confirmed on 2026-09-15 that the limitation reaches exclusion records created before April 4, 2022, for the name and address fields the Terms define as D&B Open Data. Records created on or after that date carry no D&B attribution, because the rule does not reach them. The previous blanket notice on every response is gone.
  12. 2026-09-15

    Sanctions aliases and entity types, company recall searches, and AI replies cut off mid-answer

    • US Import Risk Screening: the Consolidated Screening List section compared a supplier’s name only with each record’s listed name, so a name the list gives as an alias could match a different record instead (“IRISL” matched a vessel named IRIS rather than ISLAMIC REPUBLIC OF IRAN SHIPPING LINES, which lists IRISL as its alias). The listed name and every alias are now scored. Records the list itself types as an entity, vessel or aircraft were held back when their names were short enough to look like a person’s, so the screen could report no hits for “Sinaloa Cartel” or “Air Shiraz”; they are now screened. Records the list types as individuals, and records on lists that give no type, are still held back.
    • EPA Compliance Risk: the CPSC section searched recalls by manufacturer only, while most recalls since 2024 name the recalling firm as importer or distributor; it now searches all three. It searched the company name exactly as typed, so “Fisher-Price, Inc.” found no recalls; it now searches the name without its legal suffix and finds 56. The FDA section required the legal suffix to match the recall report (“Kraft Heinz Foods Co” found nothing) and read an unexpected 404 as “no records”; both are fixed. Names with accents match records filed without them, and 13 compliance statuses EPA documents are now classified.
    • FDA Import Alert Screening: the nightly refresh could skip an alert FDA added or retired while a refresh was in progress, or accept an index page that listed fewer alerts than FDA publishes. It now works from a recorded list of the alerts it must read, and checks FDA’s own page before treating a missing alert as retired.
    • SEC Form 4: transaction_value_usd could carry stray digits from binary arithmetic (456176.74000000005 for 1,438 shares at $317.23); it is now the exact product of the shares and price the filing states.
    • COI Verification, Landed Cost, SEC Form 4 and EPA Compliance Risk: an AI reply cut off at its output limit was used as if it were complete. It is now refused (COI returns 422, the Landed Cost estimate 503) or replaced by the response’s existing fallback text (SEC notes, EPA summaries). COI also refuses a reply containing more than one result.
    • COI Verification, Invoice & Receipt OCR and AI Resume Parser: error messages now match their status: a 422 says sending the same file again will fail the same way, and a 502 says a retry may succeed. A failure on our side is no longer reported as a problem with the caller’s file. PII Redaction no longer lets words inside an upstream error change which message it serves.
    • New guides and research: CPSC’s Recall API: Nine Traps, Searching openFDA Recalls by Company: Nine Traps, The Department of Labor’s Open Data API: Eight Traps and The UFLPA Entity List as Data, each with its runnable script re-run on the day it shipped; The U.S. tariff schedule’s three rate columns, measured; and a filing-timing section in SEC Form 4, 2026 Q2, where the Form 4 parsing guide also gains two traps.
  13. 2026-09-15

    Fixes where eight APIs could return a clean-looking answer that was not complete

    • Landed Cost Estimator: the bundled U.S. tariff schedule was cut off in places (rate text at 40 characters, descriptions at 180) in the 2026-09-02 snapshot; it is replaced by a complete 2026-09-14 snapshot, and /health now reports tariff_schedule_snapshot. AD/CVD (anti-dumping and countervailing duty) exposure is now reported as not assessed for every origin: the per-origin lists behind “assessed” had no cited source. The data behind Is the 6-Digit HS Code Enough? is corrected to match, and there is a new guide, USITC’s HTS Export API: Nine Traps in the Tariff Schedule Data.
    • EPA Compliance Risk: /company-risk-screen read Labor Department and openFDA results 25 at a time and could present a partial history as complete; a section that holds more now names the dataset in truncated and sets incomplete_coverage. A company name typed without the agency’s punctuation (“Tyson Foods Inc” for “Tyson Foods, Inc.”) no longer misses its records. A facility whose name does not match, or one of several matches, no longer counts toward the cross-agency score. A blank ECHO flag is reported in unreadable_inputs instead of being read as “no”.
    • US Import Risk Screening: a supplier name with no Latin letters was screened as a clean result; it now returns error with incomplete coverage. A listed entity’s former name is a match. Each UFLPA match now carries the list category DHS publishes it under, in basis.
    • FDA Import Alert Screening: a firm name written with a different legal form (“Ltd” for “Limited”), different spacing or accented letters could miss its listing; it now matches, so “Claridges Organic Ltd” finds “Claridges Organic Limited”. A firm could be dropped from comparison when many listed names shared a word; every candidate is now compared, or the request fails as too broad. A daily refresh that could not read every alert page is discarded and the previous complete lists stay in service, with /health saying so; lists older than their refresh window make /screen return 503 rather than an out-of-date answer.
    • SEC Form 4: a Form 4 that could not be read disappeared from the results; the request now fails and names the filing. A derivative exercise no longer shows a computed value of $0.
    • Invoice & Receipt OCR: a document with a page of line items missing, an unread line total, or an amount read with the wrong decimal point or sign could come back without a warning; each now raises one. A date printed only in numbers whose day and month could be either way round (such as 03/10/2026) is returned as null with a warning. A document too long for one response returns 422.
    • PII Redaction: a value repeated in another form (the same name in capitals, an SSN with spaces), a second list in the model’s reply, or a reply with commentary around its list could leave personal data in redacted_text with no warning; those forms are now redacted, and a reply with commentary fails instead. Dash-formatted SSNs, card numbers that pass the Luhn check, email addresses and North American phone numbers are also matched by pattern.
    • AI Resume Parser: withheld lists each email, phone number or date returned as null because it could not be quoted from the document. The check is stricter: an email must appear whole in the text the model quotes, a phone number’s digits must match what is printed, and a date range must support the start and end dates it is given.
    • OpenAPI documents and Postman collections are now published for Invoice & Receipt OCR and PII Redaction; see Developers.
  14. 2026-09-15

    COI Verification: an unread policy date is never reported missing

    • COI Verification: a policy date the reading left empty without saying it could not read the cell was reported as missing from the certificate, which turned an illegible expiration date into a coverage deficiency (seen on 1 of 3 live calls on the same certificate, 2026-09-15). A policy date missing from a coverage row the certificate shows is now withheld as not established from the certificate, and a requirement that depends on it returns cannot_determine. Blank limits and unmarked checkboxes are still reported as absent.
    • COI Verification: a Workers Compensation section with nothing read from it counted as the coverage a workers_comp.required rule asks for, and could return compliant; it now needs a value read from the certificate, otherwise the requirement is unreadable.
  15. 2026-09-14

    Developer resources, research data, and three screening fixes

    • New: Developers — every API with its OpenAPI 3.1 document and Postman collection where published, authentication, the error model, and a first call to make. Specs, collections and code examples are MIT-licensed; research data is CC BY 4.0.
    • New: Data Sources & Freshness — each product’s upstream source, how it is read, and the source’s own stated update schedule, quoted.
    • New research: SEC Form 4, 2026 Q2 — issuer-as-owner filings and flag spellings, with the method, limits and downloadable data. The data behind Is the 6-Digit HS Code Enough? is now downloadable too, and that page’s “extreme case” sentence is corrected.
    • New guide: trade.gov’s Consolidated Screening List API: Nine Traps in the Search Endpoint.
    • Fixed in Import Risk Screening: a name the Consolidated Screening List reports many records for was scored on its first page only and could be reported as complete coverage; it is now flagged as incomplete, with the reason. A response missing its record count is treated the same way. A record on a denied-persons list that carries no type and a person’s name is now withheld, as the entity-only scope states.
    • Fixed in SEC Form 4: an unknown company number returns 404 company_not_found instead of a 502 that said to retry.
    • Fixed in EPA Compliance Risk: agency sections no longer report the request date as the data date (as_of is null where the agency publishes none), and cached openFDA and CPSC answers say they may be up to 6 hours old.
    • Corrected examples: the COI, Invoice OCR and Resume Parser code examples pointed at files that did not exist. The COI and Invoice OCR examples now use sample documents served on this site and return the responses shown; the Resume Parser examples send the resume as text.
  16. 2026-09-13

    Two developer guides and an EPA search fix

    • New guide: Parsing SEC Form 4 XML: Seven Traps in EDGAR’s Filing Data. Each trap is shown on a real filing, with a runnable script and its output.
    • New guide: EPA ECHO API: Nine Traps in the Facility Search Services. Errors that arrive as HTTP 200, filters ECHO silently ignores, and a failed download that parses as rows.
    • Fixed in EPA Compliance Risk: city and street-address searches were sent under parameter names ECHO does not recognize, so they narrowed nothing. They now narrow the search. A download ECHO failed to produce is now reported as an upstream failure rather than scored as a low-risk facility.
  17. 2026-09-11

    Three live products corrected: illegible COI cells, Section 301 statements, FDA countrywide alerts

    • Correction: COI Verification reported an illegible cell as a missing one. A cell with ink in it that cannot be read, such as a smudged date, came back absent (“not found on certificate”), exactly like a blank cell, and the requirement was marked deficient. Our product pages said the API tells those two apart. It never produced a false compliant, but it would send you back to your vendor over coverage that may be printed on the page. Fixed: the extraction step now marks a cell it cannot read, and that cell comes back unreadable, is listed in withheld, and the verdict is cannot_determine. A blank cell is still absent.
    • Correction: the Landed Cost Estimator said goods from outside China were “not subject” to Section 301. That has been false since 24 July 2026, when USTR’s Section 301 forced-labor action took effect on products of 60 economies, China included, so the statement understated duty. The API and the free tool now say only which Section 301 lists were checked (the China lists), and every response, for every origin, states that the forced-labor action and Section 232 are NOT ASSESSED, with where to check. The product page says the same.
    • Correction: FDA Import Alert Screening could let a no_match read as a clean result. Some Import Alerts detain every shipment of a product from a whole country, some only in a stated season, unless the firm is on that alert’s Green List, so a firm can be covered without its name appearing on any list. A name screen cannot see that. Every response now says countrywide alerts are NOT ASSESSED and points to FDA’s alert list to check before relying on a no_match.
    • Correction: two more fixes on the Landed Cost Estimator page. A notice saying the product was paused stayed up for nine days after it stopped being true; it is gone. And the figure that 74% of subheadings carry a single duty rate did not say what it was measured over: it holds for the 5,253 subheadings whose rates are percentages, and is 72.1% across all 5,612. The page now states the denominator and the snapshot date.
    • Correction: the UFLPA supplier-screening guide was out of date. It still described the AD/CVD check removed on 6 September and showed a “not accepting signups” notice while the product was open for signups. Rewritten against dhs.gov as read today; the related blog post now opens with a dated update note.
    • New guides: Blank, Unreadable, or Absent, Is the 6-Digit HS Code Enough to Estimate U.S. Duty? and Coverage Requirements as Data.
    • The COI Extraction Honesty Test adds fixture 4, a cell that is there but cannot be read, with our own result both before and after the fix above.
  18. 2026-09-10

    FDA Import Alert Screening launched, and guides, free tools and research get their own sections

    • New product: FDA Import Alert Screening. Screen a firm name against the Red, Yellow and Green Lists of FDA’s published Import Alerts: 24,034 firm entries across 153 alerts (measured 2026-09-10). Now listed on RapidAPI.
    • Guides, Free Tools and Research each now have an index page and a place in the site navigation. Until today our guides and both free tools were live but linked from almost nowhere. /llms.txt now builds its guide and tool lists from the pages themselves, so a new page cannot be left off.
    • New research: the COI Extraction Honesty Test. Three synthetic test documents, each built around a condition where extraction tends to go wrong (a blank cell, a placeholder date, a document that is not a certificate), with the ground truth, the method and our own results. Free to use under CC BY 4.0, including on tools that are not ours. Preparing it showed that our own recorded ground truth for one fixture was wrong, and the page says so.
    • New guides: Certificate Holder vs Additional Insured and What a Certificate of Insurance Actually Proves.
  19. 2026-09-09

    Pricing statements corrected to match the plans actually on sale

    Each of these was a product page promising something its marketplace listing did not sell:

    • Correction: COI Verification’s page said it was available pay-as-you-go per document. It never was; the listing sells monthly plans only. Removed.
    • Correction: the Landed Cost Estimator’s page described paid tiers with per-estimate overage while its listing offered a single free plan with a hard cap. Corrected.
    • Correction: six more product pages described overage billing on their Pro and Ultra plans, which are hard-capped. On those plans calls stop at the limit rather than billing you. Corrected on all six.
  20. 2026-09-08

    COI Verification now says when it could not read a field

    • COI Verification returns a three-state verdict: compliant, deficient or cannot_determine. Each deficiency carries a status of present, absent or unreadable, and a withheld list names every value that is on the certificate but could not be quoted from it. A value your requirements depend on that could not be quoted gives cannot_determine, never a clean result. compliant keeps its meaning: every requirement you set was checked against a value we read, and every one passed. (A cell the model reported as blank rather than unreadable still came back absent until 2026-09-11 — see that day’s entry.)
    • New reference page: When a Certificate Can’t Be Read, built on a real response from that day.
  21. 2026-09-07

    COI Verification stops reporting values it cannot quote, and a free COI checker

    • Correction: COI Verification reported a value that was not on the certificate. On a real certificate whose Personal & Advertising Injury cell was blank, the API returned 1000000, a figure that appears nowhere on the document and one that would have passed a $1,000,000 requirement as compliant. Every extracted value must now be backed by text quoted from the document; a value that cannot be quoted is withheld and returned as null. Checked cell by cell in production on the same certificate: the invented value is gone and every printed value came through.
    • Correction: COI Verification turned placeholder dates into real ones. A date printed as 1/1/20** came back as 2020-01-01 and was reported as expired 2,441 days earlier. Placeholder characters now count as proof that no value is given, so those dates return null, and a quoted number or date must actually match the value reported.
    • Correction: our documented file_url example could not work. COI Verification’s README showed a PDF at a file_url; that combination always failed, with a 422 that blamed the file. A PDF at a file_url now gets an immediate 400 pdf_url_unsupported telling you to send PDFs as base64_image with mime_type application/pdf, and the example now uses an image URL. Invoice & Receipt OCR and Resume Parser have the same guard, each with its own instructions.
    • Correction: EPA Compliance Risk’s company screen was returning errors for two agencies. From 6 September, the OSHA and DOL sections of GET /company-risk-screen returned an error instead of results; they never reported a false clean. The DOL failure was a defect on our side. OSHA records are now read from the Department of Labor’s open-data service. Every section answers again.
    • Invoice & Receipt OCR and Resume Parser now follow the same quote-or-withhold rule as COI Verification. An invoice value that cannot be quoted from the document comes back null and is flagged in warnings as unreadable_number, so it stays distinguishable from a figure the invoice never had. Resume Parser checks email, phone and dates the same way.
    • New: a free COI checker. Upload an ACORD 25, set the limits your contract requires, and get an itemized verdict plus a separate list of anything that could not be read. Up to three checks per visitor per day; nothing you upload is stored.
    • New guide: What Makes a Certificate of Insurance Deficient.
  22. 2026-09-06

    AD/CVD removed from import screening, screening made entity-only, and a discontinued product fully taken down

    • Correction to our 3 September entry: we named the wrong reason for the AD/CVD gap. We blamed an expired TLS certificate on the federal endpoint; we had checked the wrong host. The real reason is that the federal AD/CVD Orders API is not offered to developers, and there is no subscription for it we can obtain. So US Import Risk Screening no longer claims to cover AD/CVD:
      • GET /adcvd/by-hts/{hts} now answers 410 route_retired and points you to the International Trade Administration’s own AD/CVD search at access.trade.gov/adcvd.
      • On POST /screen/shipment, hts and country_of_origin are optional and echoed back, not screened. At least one of supplier_name or manufacturer is now required: party names are all this API screens, and accepting a request without one would return “no exposure” having checked nothing.
      • incomplete_coverage read true on every response because the AD/CVD section could never run. It now reads false on a complete screen.
      • The public examples repository on GitHub was corrected to match.
    • Correction: Healthcare Exclusion & Sanction Screening, discontinued on 2 September, was still answering authenticated API requests until today. Its API, its database of screening records (all of it about individual people) and its marketplace listing are now gone. Its public GitHub examples repository, which still described the product and told readers to screen employees before hire, has been deleted. It should have come down on 2 September.
    • Vendor Entity Screening (not yet open for signups): the SAM.gov refresh changed, so our 3 September description of it no longer holds. A request never triggers a refresh now; a scheduled daily job does. A copy past its age limit is served with its real age stated rather than refreshed mid-request, and the limit is one number, seven days, used by both /health and screening — before, /health used seven days and screening used 24 hours. An empty copy still reports that section as not screened.
    • Screening is entity-only, permanently. Vendor Entity Screening and US Import Risk Screening do not serve records about individual people. Instead of a per-query count of withheld records, which would itself be information about a person, every response carries the same coverage line. On Vendor Entity Screening it reads: “Entity records only. Records SAM.gov classifies as individuals are excluded from this service. Screen individuals at SAM.gov directly.” The include_individuals option added to Vendor Entity Screening on 4 September no longer exists; sending it returns 400 include_individuals_removed. On US Import Risk Screening, a listed company is still matched when the list’s own aliases show a company form, so a sanctioned firm is not dropped because its name reads like a person’s.
    • Terms of Service, redeployed on every API. The screening clause now carries a permitted-purpose certification: results may not be used as a factor in any decision about an individual’s employment, tenancy, credit or insurance. And the clause on tariff codes, which contradicted itself for a customer sending a 10-digit code, now says what the code does: an HTS code you send is echoed back exactly as you sent it, and a 7-to-10-digit code the API would supply itself is never returned — a response that would carry one is refused rather than trimmed.
    • SEC Form 4 Insider Trade Alerts is open for signups again on RapidAPI, and its page no longer shows a paused notice.
  23. 2026-09-05

    EPA company-screen matching corrected; SEC Form 4 now says it skips amendments

    • Correction: EPA Compliance Risk could report an unrelated company as an exact match. The company-name matcher behind GET /company-risk-screen treated single letters as optional initials, so a name like “A B C, Inc.” could come back as an exact match, score 1.0, for a different company. Measured on 600 real company names: 100 exact matches before the fix, 15 after — the other 85 were false. The corrected matcher shipped the same day and was checked live: that probe now returns no match, and a genuine exact match still returns.
    • Correction: SEC Form 4 Insider Trade Alerts left out amended filings (Form 4/A) without saying so in the response. Every response’s disclaimer now states it. The product page and listing had called the gap “not a real constraint” for recent-activity alerting; for alerting it is exactly the case that matters, and both now say so plainly.
    • Our contact address changed. [Superseded 2026-09-11: the address this entry originally named — a hello@ alias on our own domain — does not exist, so it has been taken off every page. Our contact address is aerviklabs@gmail.com. The dead address is described here rather than reprinted: leaving it in the text would keep handing readers an address that silently drops their mail, which is the whole defect. The entry is corrected in place rather than deleted, because a changelog that quietly edits its own past is not a changelog.]
  24. 2026-09-04

    Live site brought up to date, and the free Landed Cost Estimator back online

    • Correction: the live site was two days behind, and part of our 3 September entry was not actually live. The All APIs index and /sitemap.xml announced that day were missing from the deployed site, the homepage’s search description still named the healthcare exclusion product discontinued on 2 September, and any mistyped or removed URL returned the homepage with HTTP 200 instead of a 404. All three were fixed by deploying the current build.
    • The free Landed Cost Estimator is available again. For part of its first day back it dropped the country of origin you picked before calling the API, so the China Section 301 check never ran and the result said no country had been supplied. Fixed the same day.
    • Correction, on our RapidAPI listings: the PII Redaction example response was wrong. It left out the PERSON entity, showed the name “Jane” unredacted in redacted_text, and had both end offsets off by one — the same errors corrected in this site’s copy on 3 September. It now matches a live call. Broken code blocks on the Invoice & Receipt OCR and PII Redaction listings were repaired too.
    • Terms of Service: the venue clause now names the state and federal courts in Pinellas County, Florida, on this site’s Terms and on every API’s /terms.
    • New: /llms.txt, a plain-text guide to this site for AI assistants, generated from the same product records every page uses.
  25. 2026-09-03

    Trade products repositioned, a product index added, and a full accuracy sweep

    • Both trade products are now capped at the 6-digit HS subheading, and the site says so. Determining the tariff line for a shipment is a licensed customs broker’s work. The Landed Cost Estimator produces a planning estimate, not an entry classification. US Import Risk Screening never derives an HTS number at all — you supply it, and every tariff reference the API returns from antidumping scope data is reduced to 6 digits before it leaves.
    • The Landed Cost Estimator now says who it isn’t for. Measured across the full 23,193-line tariff schedule, the subheading rate is exactly right for most manufactured goods — 100% of paper, 91% of machinery, 87% of electronics — but only 34% of footwear, where one subheading can span 3% to 48%. If you sell apparel or footwear, this product won’t give you a number you can plan a margin on, and the product page now says that plainly instead of selling into it.
    • Three “pending a compliance review” notices removed. That review concluded on 2 September. Two products (COI verification, SEC Form 4) were kept, and one of them is publicly available again — leaving a notice up that said otherwise would have been simply false. Where a product is still unavailable, the page now gives the real, current reason.
    • New: an All APIs index. Every product in one place, grouped by solution family, with each one’s current availability stated. Previously the only way to browse was through the four solution hubs.
    • Fixed: our robots.txt pointed search engines at a sitemap URL that had never existed on this site. There is now a real sitemap at /sitemap.xml.
    • Fixed: pages carried no canonical URL and no link-preview metadata, so a link to any page pasted into a chat or a post rendered as a bare URL.

    Corrections found in a word-by-word review of the whole site the same day. Every one of these was us describing our own products less accurately than we should have:

    • COI verification: saved requirement profiles were advertised as a feature and are not reliable yet. POST /requirements returned an id that could fail to resolve on a later call, because the storage behind it was per-instance memory rather than a database. The fix is written and not yet released. Until it is, the product page and this changelog say so, the feature is off the feature list, and the documented path is to send requirements inline on each /verify call — which was always unaffected. Update, 2026-09-04: the database-backed version shipped and was verified in production the following day. Saved requirement profiles work; an id you receive stays resolvable. This entry is left as written rather than edited, because it records what was true when published.
    • US Import Risk Screening: we named the wrong reason for the AD/CVD gap. Three pages described that section as “a placeholder awaiting a data-source credential.” The credential exists. The actual blocker is an expired TLS certificate on the federal endpoint’s own side, expired since 28 July 2026 and still expired, which we will not work around by disabling certificate checks. Now stated that way everywhere, with the date.
    • EPA multi-agency screen: the page now states plainly that the DOL section covers Wage & Hour, MSHA and OSHA enforcement and does not cover EBSA, and points you at the per-source basis field on the response rather than asking you to trust the page.
    • Vendor screening: “daily-refreshed” was the wrong word for the SAM.gov cache. There is no background job on a clock. There is a 24-hour freshness window, and a request against a stale copy refreshes it from SAM.gov before answering. Same practical effect under traffic, materially different if you assumed a nightly job, so the page now describes the real mechanism and tells you to read source.as_of.
    • Vendor screening and the compliance solution page now say outright that these are on-demand checks, not monitoring subscriptions. We don’t hold your vendor roster, watch it, or alert you. Several use cases read like we might; they don’t now.
    • Removed an unsourced statistic. “Manual COI review takes 15–45 minutes per document” appeared on three pages as though it were something we had measured. It wasn’t ours. It’s gone rather than dressed up with a hedge.
    • Removed a dollar figure and a legal characterization from the exclusion-list reference article — penalty amounts get adjusted over time and we are not the right source for them.
    • Fixed wrong character offsets in the PII/PHI Redaction example response, and made the example actually show the person-name redaction the API documents.
    • Product pages no longer print an internal “Tier A/B/C” label that meant nothing to a reader; they show the product’s solution family instead.
    • Solution pages now state whether each listed product is open for signups, which only the All APIs index was doing.
    • Accessibility: added a skip-to-content link and visible keyboard focus rings (there were none), darkened the button fill so white button text meets WCAG AA contrast, and fixed the mobile header and headline sizing.
  26. 2026-09-02

    Healthcare Exclusion & Sanction Screening discontinued

    • Healthcare Exclusion & Sanction Screening has been discontinued permanently. It is not paused and it is not coming back. Aervik Labs no longer offers any product that screens an individual person; we decided we are not the right operator for that kind of product, and we would rather remove it than keep selling something we don’t intend to stand behind long-term.
    • The free Healthcare Exclusion lookup tool has been removed for the same reason. Its endpoint now returns HTTP 410 Gone rather than a “temporarily unavailable” message, because “temporarily” was no longer true.
    • The Healthcare Compliance solution hub has been retired — it had no other member products. Its URL now redirects to Compliance & Vendor Risk.
    • Unaffected: Business-Entity SAM.gov + OFAC/CSL Vendor Risk Screening, which screens a company or vendor entity rather than a person, continues unchanged.
    • The reference article on how OIG LEIE, SAM.gov, and state Medicaid exclusion lists actually differ is being kept, with the product references removed. The breakdown in it is accurate and useful on its own; the removed pages now redirect there. Update, 2026-09-03: the article was removed too, on the human principal’s decision — it described lists used only by the discontinued product. Its address now returns 404 on purpose.
    • Corrected on the vendor screening product page: its SAM.gov Entity Exclusions section was described as returning placeholder data. That stopped being true on 2026-08-28, when it moved to a daily-refreshed copy of SAM.gov’s bulk exclusions extract. Both of that product’s data sources are live.
    • Corrected on the Security & Data Handling page: the data-source table listed four healthcare sources we no longer use. Replaced with the two federal sources still in production.
  27. 2026-08-27

    COI/ACORD 25 Verification, US Import Risk Screening, and Healthcare Exclusion Screening published on RapidAPI

  28. 2026-08-27

    Marketing site relaunched with real product pages, structured data, and two free tools

    • New aerviklabs.com site live with real product pages for all 9 APIs, 5 solution hub pages, and an About page.
    • Two free interactive tools added: a Healthcare Exclusion lookup and an HTS tariff classifier, each rate-limited per IP address per day.
    • Structured data (schema.org), unique meta descriptions, and FAQ sections added sitewide to improve search visibility.
    • Fixed a bug where /robots.txt was serving broken content instead of valid robots rules.
  29. 2026-08-27

    Security & Data Handling page and this changelog added

    • Published a Security & Data Handling page summarizing what we store (and don’t), our data-source licensing basis, encryption, and rate limiting.
    • Published this changelog, linked from the site footer.
  30. 2026-08-26

    COI/ACORD 25 Verification, US Import Risk Screening, and Healthcare Exclusion Screening built

    • Three new units built and deployed to production: COI/ACORD 25 Compliance Verification, US Import Risk Screening, and Healthcare Exclusion & Sanction Screening.
    • A Cloudflare D1 caching layer was added to Healthcare Exclusion Screening to keep it within a real data source’s published rate limit at production volume.
  31. 2026-08-25

    AI Resume Parser, PII/PHI Redaction, and SEC Form 4 Alerts launched

    • AI Resume Parser & Candidate Data Extraction, PII/PHI Redaction & Detection, and SEC Form 4 Insider-Trade Alerts built, tested, deployed, and published on RapidAPI.
    • Portfolio reaches 6 live, tested APIs by the end of the day.
  32. 2026-08-25

    First three APIs live: HTS Tariff Classification, Invoice/Receipt OCR, and EPA Compliance Risk

    • HTS/HS Tariff Classification & Duty Rate Lookup, Invoice & Receipt OCR, and EPA ECHO Compliance History & AI Risk Score built, tested, and deployed to production.
    • All three published on RapidAPI under the Aervik Labs organization, with Terms of Service live on each unit.
    • aerviklabs.com connected and live on Cloudflare.