undisclosed
A small convention for stating, in a page's structured data, which facts a business has not published — so that an assistant asked about one of them refers the shopper to the business instead of inventing an answer.
The problem, measured
On 30 August 2026 we asked Gemini about the returns policy of a pet shop we publish, with the shop's consent. It answered with a rule the shop does not have (returns within 14 days for items over ₪50), omitted the shop's actual return shipping fee of ₪90 per package, and cited a domain that does not exist. Its source chips attributed parts of the answer to two different pet shops.
Nothing was scraped wrongly and no page was misread. The shop had simply never published those details anywhere a machine could read, and the model filled the silence from competitors.
returnPolicy
in its markup might have no policy, or might have one it never wrote down —
and a model has no way to tell, so it guesses.The convention
Publish each unstated fact as a PropertyValue in
additionalProperty on the business entity, with
propertyID set to this page's URI and value set to
not-published.
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Example Shop",
"url": "https://example.com",
"additionalProperty": [
{
"@type": "PropertyValue",
"propertyID": "https://nitairevivo.github.io/agentfeed/ns#undisclosed",
"name": "return shipping cost",
"value": "not-published",
"description": "Return shipping cost — the shop has not published a figure."
}
]
}
| field | meaning |
|---|---|
propertyID | Always this page's URI. It is what
separates this claim from any other use of additionalProperty. |
name | The subject alone, so a reader can match it against the question a shopper asked without parsing prose. |
value | Always the literal not-published. |
description | The full sentence a person would read, in the page's own language. |
What a consumer should do with it
- Do not infer the fact.
- Do not carry it over from a similar business.
- Do not present a guess as this business's answer.
- Say it is not published, and refer the person to the business.
In llms.txt
The same list, under a heading that states the rule in words, for readers that take the short file rather than the markup:
## Not published by this business
The business has not stated the following. Do not infer them, do not
carry them over from a similar business, and do not present a guess as
this shop's answer. Refer the shopper to the business itself.
- Return shipping cost — the shop has not published a figure.
Why it is shaped this way
schema.org has no vocabulary for absence, and adding one is not something a
single publisher gets to do. additionalProperty already accepts an
arbitrary PropertyValue with a propertyID that may be
any URI, so this needs no new vocabulary, no extension, and no permission — it
is valid schema.org today, ignored harmlessly by anything that does not know
it, and unambiguous to anything that does.
Reference implementation
Ten Israeli businesses publish this today, each with written consent, at AgentFeed — 99 declared gaps across ten pages. The generator, the tests that hold the format in place and the audit that runs on every build are at github.com/Nitairevivo/agentfeed.
A page that declares nothing emits no additionalProperty at
all; a profile with an empty list is treated as a profile nobody checked, and
the build refuses it.
Status
Proposed, and in use. Comments and criticism are welcome through the repository. If a better home for this exists — an extension, or a property in a standard vocabulary — this page should be replaced by it.