Reference
Methodology: what SeedLink publishes, how it is observed, and what it does not publish
Every number on a SeedLink reference page was observed by SeedLink’s own software against a named system on a named day, and the page says which system and which day. This page is the rule book behind that sentence. It was last revised on .
What SeedLink is, in one paragraph
SeedLink is wholesale menu software for licensed cannabis cultivators in Rhode Island, connected to METRC, the state’s track-and-trace system. It reads a cultivator’s live inventory from METRC, turns it into a per-buyer menu link, and records how buyers engage with it. Doing that in production since 2026 has produced an operating record of how the Rhode Island METRC API behaves, and that record is what these reference pages publish.
The three families
| Family | Source | How a page changes |
|---|---|---|
| METRC field guides | SeedLink’s production integration with the Rhode Island METRC API, plus read-only probe scripts run against production and sandbox facilities | By hand, when a new observation is made. Each guide lists its observations with a date and a source. |
| Product taxonomy | SeedLink’s own wholesale category and subcategory reference, and the mapping from Rhode Island METRC item categories into it | When the reference tables change. Counts are derived at read time, never typed in; the mapping is computed by the sync’s own code, so the page cannot disagree with it. |
How a number gets onto a page
- Something was observed: an API response, an error message, a count, an ordering. The observation was made by SeedLink’s own code or by a read-only probe script kept in the SeedLink repository, against a named environment (Rhode Island production or the Rhode Island sandbox).
- The observation is written down with its date and its source before any prose is written about it. On a guide page this is the list under “Sources” and, in the page’s data, a fact row per number.
- A check runs on every build: every digit run in the prose must trace to one of those fact rows, or to a declared constant such as a unit definition. A page with a number nobody can vouch for does not build.
- The page shows the date of its newest observation as “Observed” and the date its words last changed as “Revised”. Those are different clocks and they never touch each other: a number moving is not a rewrite, and a rewrite does not refresh an observation.
What a number means, and what it does not
- A count belongs to one facility on one day. “305 adult-use tags available” describes one licensed facility on 2026-06-04. It is not a statewide figure and it was different the next day. The durable claim on that page is the shape of the response and the order of the list, not the count.
- Production and sandbox are named separately. METRC’s sandbox shares the production rule engine but not its data, and several pages record a behaviour observed in one and not checked in the other. A page says which.
- Absence is reported as absence. A field the API did not return, a value a table does not carry, or a facility that was not probed is written as unknown, never as zero and never filled from a neighbouring row.
- Other states can differ. Every observation here is Rhode Island. METRC runs one instance per state and the states configure them differently.
- An error message is quoted verbatim. Where a page reproduces METRC’s text, it is the text the API returned, because integrators match on it.
What SeedLink does not publish
The pages exist because the data underneath them is SeedLink’s to publish. The following is not, and does not appear on any public page.
- Cultivators’ wholesale prices, inventory or menus. A cultivator’s catalog is theirs. Nothing from it, priced or unpriced, is aggregated into a public number.
- Buyer engagement data. Who opened which menu, what they viewed and what they ordered is the product, and it is private to the cultivator it belongs to.
- Retail shelf observations. What is on Rhode Island dispensary shelves is observed by WeedShelf, a separate company, and SeedLink quotes its published readings inside the product with their provenance. SeedLink computes no retail averages, medians, shares or rates of its own, and publishes none.
- Operating benchmarks about SeedLink’s own customers. Figures such as how long a cultivator takes to confirm an order are not published: the sample is small, concentrated in a few cultivators, and shaped by SeedLink’s own interface, so a benchmark built on it would describe SeedLink, not the industry.
- Named incidents without consent. Where a guide describes something that went wrong on a real order, the cultivator and the order are not named unless they have agreed to it elsewhere.
How to cite a page
SeedLink, “<page title>”, observed <date>, revised <date>, https://www.seedlink.net/<path>
Each page prints that line under its sources. Quote the observation date with the number: a figure without its date is the one thing these pages are built to avoid. Every guide links a machine-readable copy of itself under its sources, holding the same facts with the same dates, and the whole METRC corpus is one file at /guides/metrc/data.json. This page is also the catalog those datasets point back at.
Corrections
If a page states something the Rhode Island METRC API no longer does, or never did, write to info@seedlink.net with the page and what you observed. A correction changes the page’s revised date; if it also brings a new observation, the observed date moves too, and the earlier observation is kept on the page with its own date rather than overwritten.