Disclosebrief

What the engine reads, and what it refuses

Disclosebrief is a storefront for ensign, an engine that reads creator posts against the FTC's Endorsement Guides, 16 CFR Part 255: the rules for how an ad that uses a creator has to say the creator was paid, gifted a product or employed. ensign is vendored into this site byte for byte; the free check in your browser and the paid brief on the server run the same files, and a test holds the two receipts to the same bytes before every deploy.

What it reads

Text you paste, and nothing else. Each post brings up to three channels a disclosure can sit in: the caption, the text on screen, and the transcript. It also brings the connection between creator and brand (paid, gifted, employment or none), whether the platform's own paid-partnership label was on, and the date the post went up.

A bare link is not a post. The page never fetches a URL and never contacts a platform, so a channel with no text is printed as not read, by name, on every post it touches. Not read is never the same as nothing found, and a post whose deciding channel was not read comes back unresolved rather than settled.

Two links to one post count once. Tracking parameters fold away (utm_source, fbclid and the rest of ensign's list), and identity is the post's address together with its brand.

How a post is settled

The gate row runs first. Section 255.5(a) reaches a post only where a connection exists between the creator and the brand, so a post with no declared connection stops at the gate. If it carries sponsorship signals such as a discount code or "link in bio", it is listed as awaiting a declaration and counted in neither figure; otherwise it is out of scope.

Past the gate, six rows test for a disclosure: in any channel the engine could read, in the channel the endorsement runs in, outside a trailing block of hashtags, and in more than the platform's own label. Each post gets one letter.

  • T, in scope. A connection exists and a row's condition is met: no disclosure was found where the row says one belongs. Each counts once toward the ceiling.
  • U, unresolved. The pack could not settle it from the text supplied, and the reason is printed in the pack's own words. Each counts once toward the second figure.
  • F, out of scope. No row reaches the post. No dollars.

Every row is in The Rules, with the sentence of the Guides it quotes and the date that sentence was retrieved.

Two figures, never added

The first figure is the ceiling: posts in scope multiplied by $53,088, the per-violation maximum for Section 5(m)(1)(A) of the FTC Act at 16 CFR § 1.98(d). The second is the same multiplication for the posts the pack could not settle. They print at the same size, one above the other, with the sentence that they are never added stamped between them.

A compliance score is what this page does not sell. A score has to fold the posts the pack could not settle in with the ones it could, and every dollar that folding adds is a dollar no sentence of the Guides stands behind. Printing the unsettled posts as their own figure, with their reasons, keeps the first figure defensible line by line.

What the ceiling assumes

The ceiling is arithmetic on a statutory maximum, and it predicts nothing. Section 5(m)(1)(A) reaches conduct a party already knew the Commission had held unfair or deceptive in a litigated proceeding: the penalty-offense route, which in practice means a Notice of Penalty Offenses letter or an existing order. Whether that reaches a given brand is a fact the engine cannot see, and the brief prints that assumption under the figure every time. The Guides themselves are interpretations, not a penalty provision; 16 CFR § 255.0(a) says so, and the brief quotes it.

The figure is checked against the eCFR when this page is built, and the date it was read is in sources.json.

What has not happened

No lawyer has reviewed this rule pack. All seven rows ship marked DRAFT; the first screen says so in the same type as the price, and the brief prints it above the posts. Counsel review is the step ensign's own review file names, and it has not been done. This page sells information and a document, never advice: what a brand does about a post is between the brand and its counsel.

The receipt

Each brief carries receipt.json: per post the verdict letter, the rule row id, the quoted text with its section and retrieval date, and the channels not read; both figures with the penalty figure's source and dates; the SHA-256 of the CSV the brief was built from; and DRAFT in its header. The receipt is canonical JSON named by its own SHA-256, and signed with an HMAC when the deployment holds a signing key. Verify a Receipt recomputes the name in any browser.

What else is sold for this job

One public price was found. Valen Sentinel's listing reads "$99 per month. All features included." (alternativeto.net, page updated March 19, 2026, read 2026-10-09). Gamesight's FTC Disclosure Monitor, impact.com's social monitoring and Traackr publish no price. The Guides themselves are free on the eCFR. Disclosebrief is $149 once per brand, for a document with its sources printed in it. It is not affiliated with any of them, or with the FTC.

What it does not do

It does not fetch posts, read platform exports, or check any post a CSV leaves out. It reads one brand per brief, up to 50 posts. It does not say whether the Commission would bring a case, and it does not say what to do.