User guide

Everything TXcoas can do

A working tour of every shipped feature. Updated as we ship. Last updated 2026-05-08.

What TXcoas is

TXcoas is a multi-tenant repository for Texas hemp Certificates of Analysis (COAs). It exists because DSHS §300.402 requires a customer to be able to reach the lab report for any consumable hemp product in three clicks or fewer from the product label. Without a system like this, every brand and retailer scrambles to host PDFs themselves and update labels constantly.

The platform splits the work across three roles: labs publish canonical COAs, brands claim them for their SKUs, and retailers carry them on their shelves. Consumers get a single public library at txcoas.com with one URL per COA they can scan or link from a label.

Getting started

  1. Go to /signup and pick your tenant type (Lab / Brand / Retailer), choose a URL slug, and enter your email.
  2. Open the magic-link email we send you. Sign-in is passwordless — no setup, no password resets.
  3. Land on your dashboard. The 5-step onboarding checklistwalks you through saving your forwarding inbox, sending a test forward, and approving your first COA. Five contribution tokens unlocks “founding contributor” status.
Tip:Already signed up? Skip to the dashboard.

Lab vs Brand vs Retailer

Each tenant type sees a different overview because each has a different daily question. The dashboard branches automatically based on what you signed up as.

Lab

Are people finding/using/disputing my data correctly?

Headline KPI

Active COAs Issued

Free forever — you're the canonical source.

Brand

Is every SKU I sell currently covered by a fresh COA?

Headline KPI

SKU Coverage %

Add SKUs once, attach COAs to lots, see which retailers stock you.

Retailer

Is my shelf legally compliant right now?

Headline KPI

Shelf Compliance Score

Add products to shelf, get warned when COAs go stale (>365d).

Forwarding COAs by email

The fastest way to get a COA into the catalog: open the email, hit Forward, send to your TXcoas Inbox.

  1. Go to /dashboard/me/inbox. Your address looks like [email protected] — a 16-character secret unique to you.
  2. Click Add to Contacts (.vcf)to save it on your phone, or scan the QR. Saving the contact means “TXcoas Inbox” autocompletes when you type into a Forward field.
  3. Click Send me a test for a guided walkthrough — we email you a sample, you forward it back, and the system credits you 1 onboarding token.
  4. Forward any real lab email to that address. Within ~60s you'll get a confirmation reply listing the queued and duplicate COAs.

What we accept: PDF attachments (one or many), ZIP archives (auto-unpacked), forwarded chains. Inline images and Word docs are skipped with a friendly note in the reply.

Multi-business users: append +slug to the local part to route a forward to a specific business — e.g. [email protected]. Otherwise it goes to your oldest membership.

Full reference at /docs/email-forwarding.

Bulk drag-drop upload

For when you have a folder of PDFs and don't want to forward them one by one.

  1. Go to /dashboard/t/<your-slug>/coas/bulk via the sidebar (Operations → Bulk upload).
  2. Drop up to 100 PDFs. We hash-dedupe against the catalog before doing any work — duplicates are auto-claimed instantly, novel files queue for OCR.
  3. Watch the batch detail page as the worker processes each one — usually under 90s per COA. The page auto-refreshes.
  4. Review and approve. See Reviewing & approving COAs below.

Single COA upload (manual)

When you want full control over a single COA's metadata (or are testing the OCR), use the single-upload form.

  1. From the catalog page (/dashboard/t/<slug>/coas), click Upload COA.
  2. Pick a PDF. Click Parse with AIto pre-fill every field with the OCR'd values.
  3. Verify or correct each field. Confidence is shown per field (green ≥85%, amber 50–85%, rose <50%).
  4. Click Save COA.

Reviewing & approving COAs

Every COA the worker finishes lands in one of three buckets:

  • Clean — no validation flags + all critical fields ≥ 85% OCR confidence. Eligible for one-click batch approve, or per-row review with the Details ▾ panel.
  • Verify — warnings or medium-confidence fields. Open the PDF, glance at it, then approve.
  • Fix required — validation errors or low-confidence fields. Open the PDF, then either re-upload via the single-COA flow or discard.

Click Details ▾ on any row to expand a comprehensive panel showing every field the OCR captured: scalar fields with confidence badges, Total THC + Total Δ9-THC in all four measurement forms (% / mg/g / mg/unit / mg/serving), the full cannabinoid panel, and every non-cannabinoid panel the lab reported— heavy metals, pesticides, microbials, mycotoxins, residual solvents, terpenes, water activity, moisture, foreign matter. Panels we don't recognize get an OTHERbadge with the lab's heading preserved verbatim.

Tip:Trust the OCR? The CLEAN bucket has an “Approve all N at once” shortcut below the per-row list.

Contribution tokens

You earn 1 token per novel COA you approve. Re-uploading a PDF that's already on TXcoas just adds your business as a claim — no new token (no new contribution).

Tokens accumulate in your personal ledger and show in the nav as 🪙 N. Banked balance will be redeemable for tier credits, custom-domain unlocks, and inaccuracy-report bounties — full mechanics announced soon. The audit trail preserves which COA minted each token.

Background see /docs/tokens.

Subscriptions

The subscription graph is how brands and retailers stitch themselves into the lab/brand network.

  • Retailers can follow brands and labs. Following auto-displays their COAs on your public page.
  • Brands can follow labs.
  • Labsare the source — they don't follow anyone.

Manage subscriptions at /dashboard/t/<slug>/subscriptions. Or, hit the Followbutton on any public brand or lab page — it shows up automatically when you're signed in with a tenant that's allowed to follow them.

The Auto-displaytoggle controls whether the target's COAs render on your own public page. Toggle off if you want to follow without surfacing them.

Products (brands)

Brand-only feature for binding COAs to specific SKUs.

  1. Add a SKU at /dashboard/t/<slug>/products/new with name, optional category, serving size, package size, image.
  2. On the product detail page, search for COAs you've uploaded or claimed and attach them to a lot. The lot is created automatically if it doesn't exist.
  3. Each product gets a coverage status: Covered (fresh COA on file), Stale (COA > 365 days), Has errors (COA has validation errors), or No COA. Your dashboard's SKU Coverage % KPI is the percentage in “Covered.”

Shelf inventory (retailers)

Retailer-only feature for tracking which products are on your shelf and whether they're currently compliant.

  1. At /dashboard/t/<slug>/shelf/add, search any brand's products by name or SKU. One click adds the product to your shelf and auto-creates CARRIED claims for its current COAs.
  2. Your Shelf Compliance Score on the dashboard is the % of shelf products with a fresh, error-free COA on file.
  3. When a product is sold out / discontinued, hit Remove on the shelf list — that sets carriedUntil to today and excludes it from your compliance score.

Inaccuracy reports

Anyone — signed-in tenant or anonymous consumer — can report a COA looks wrong. Reports go to the issuing lab and any tenant that's claimed the COA.

  1. On any public COA page (/coa/<id>) scroll to the footer and click Report an inaccuracy →.
  2. Check the fields that look wrong, describe what's off, and (if you're not signed in) leave an email for follow-up.
  3. The owning lab/tenant sees it at /dashboard/t/<slug>/reports. They can approve (correction needed), reject (resolved as-is), or jump straight to the COA's edit form.

Members & roles

Each tenant has a member list at /dashboard/t/<slug>/members. Three roles:

  • Owner — can manage members, change settings, invite/remove people.
  • Editor — can upload, approve, manage subscriptions and inventory. Cannot manage members or settings.
  • Viewer — read-only.

Invites send a magic-link sign-in to the email you specify; the invitee lands directly in your tenant's dashboard with their role pre-applied. The system blocks removing the only owner — promote someone else first.

Branding your public page

Customize how your public TXcoas page (/r/<slug>, /b/<slug>, /l/<slug>) looks at /dashboard/t/<slug>/settings?tab=branding.

  • Logo URL — square works best, hosted somewhere we can hotlink.
  • Hero image URL — wide banner across the top of the page.
  • Primary + accent colors — hex codes; primary is the top-border accent.
  • Tagline — one short line under your name.
  • About — short paragraph describing what you do.

Embedding on your website

Drop your TXcoas page (or a single COA) onto your existing site — WordPress, Shopify, Wix, Squarespace, BigCommerce, Webflow, anything that allows custom HTML. Visitors stay on your site; the COA library renders inline with live data and your branding.

  1. In the dashboard sidebar, go to Embed on your site under Distribution.
  2. Pick a layout (Full / Compact / Badge), tweak accent color if you want, and pick your platform from the tabs.
  3. Copy the recommended snippet. Paste it into your site's HTML editor following the platform-specific paste instructions shown on the page.
  4. Save and publish. Live data, auto-resizes to fit content.
Tip:Wix and free Squarespace plans block <script> tags — the dashboard auto-shows the iframe-only snippet for those platforms. It works everywhere.

Advanced options available in the same generator:

  • By-batch URL: embed a single COA via its batch number (no CUID hardcoding) at /embed/coa-by-batch/<slug>/<batch>. Resolves to the latest matching COA automatically.
  • JSON API: pull the same data programmatically from /api/r/<slug>. CORS allow-all, no auth.
  • Pin a frozen script version: /embed.v1.js never changes behavior; the unversioned /embed.js may.
  • Domain allowlist: restrict embedding to specific domains via Settings → Embeds.
  • View analytics: aggregate per-mode embed views in Settings → Embeds.

Full reference at /docs/embed.

Public 3-click compliance audit

Free public tool at /audit. Drop in any URL — your own retail site or anyone else's — and we crawl up to 3 clicks deep looking for COA links. Returns a per-COA depth report and an overall §300.402 verdict.

Useful for self-audits before an inspection, validating a competitor's claims, or reassuring a wholesale partner. Rate-limited to one audit per IP every 10 seconds.

QR codes for labels

Every COA has a customer-facing QR code that links straight to its public page — one-click compliant under §300.402.

  • Per-COA QR: open any /coa/<id> page and use QR only ↓ for a bare PNG, or Download card ↓ for a branded summary card with QR + product info ready to print.
  • Bulk print sheet: brands and retailers can generate a printable grid of QR codes for an entire batch at /dashboard/t/<slug>/coas/qr-sheet. Sized for label printers.

Mobile use

On phones the sidebar collapses to a hamburger drawer and a 4-slot bottom-tab nav appears at the bottom of the screen:

  • Home — your tenant overview.
  • Search — opens the command palette.
  • Forward— opens your phone's mail app with your TXcoas Inbox address pre-filled. Useful for forwarding a lab email you're looking at right now.
  • More — opens the full sidebar nav.

Alpha testing & feedback

The platform is currently in alpha. Anyone who signed up during this phase is stamped as an alpha tester and stays that way even after we move to beta or production. Alpha testers see two extras inside the dashboard:

  • Alpha tasks page (sidebar, Help group). A structured list of things to try, grouped by Onboarding, Daily ops, Distribution, Network, Tenant-specific, Edge cases, Feedback. Most tasks auto-detect; manual ones have a Mark done button.
  • 💬 Feedback button bottom-right of every dashboard page. Bug reports, feature ideas, questions, or praise. Screenshot upload supported. We auto-capture the page URL and your browser version so we can reproduce.

The feedback widget is available to everyone, alpha or not. Track your submitted tickets at /dashboard/me/feedback. When the team triages or resolves something, you'll get an email reply.

Tip:Founding-cohort retailers and brands stay free for the first year regardless of how the alpha phase lands. Your input shapes the platform.

Quick reference

Your forwarding inbox
[email protected]
Multi-business routing
[email protected]
Public COA page
https://txcoas.com/coa/<id>
Public lab page
https://txcoas.com/l/<slug>
Public brand page
https://txcoas.com/b/<slug>
Public retailer page
https://txcoas.com/r/<slug>
Open command palette
⌘K / Ctrl+K
Sign in
https://txcoas.com/login
Sign up
https://txcoas.com/signup
3-click compliance audit
https://txcoas.com/audit
Catalog search
https://txcoas.com/search

Roadmap

Items currently flagged soon in the sidebar — built next, in no particular order:

  • Activity feed — unified per-tenant events page (uploads, approvals, claims, subscription changes, member events).
  • Public-page editor — richer customization beyond the basic branding fields.
  • Lab intake queue — lab-side dashboard for pending uploads from partner brands.
  • API & webhooks — programmatic COA push for labs with LIMS integrations.
  • Token redemption — spend banked tokens on tier credits, custom domains, etc.
  • Lab domain verification — verified-lab badges across the platform.

Have a feature you'd like prioritized? Reply to any confirmation email or get in touch via the inbox panel.