Glossary

Domain terminology for the Vrida product.

Inventory & Plants

  • Plant master — A record representing a species/cultivar (e.g., Acer palmatum 'Bloodgood'). One plant master can have many variants.
  • Variant — A sellable form of a plant — specific size (1gal, 5gal, 15gal). Has its own SKU, price, cost, qty.
  • Hard good — Non-plant product (pots, soil, mulch, fertilizer, tools, decor).
  • Zone — A named, structured location inside a site (greenhouse A, north yard, retail floor). Has a structured type.
  • Bin / sub-zone — A specific sub-location within a zone (Row 7, Bench 12-A). Optional.
  • Site — A physical location (a single nursery property). Tenants can have one or many.
  • Lot / batch — A traceable group of plants from the same source/sow date (v1.5+).
  • Stock — The qty currently held in a variant at a specific zone/bin.
  • On-hand — Total physical stock.
  • Reserved — Stock committed to pending orders, not available for walk-in sale.
  • Available — On-hand minus reserved.
  • Cycle count / stock take — Periodic physical inventory verification.
  • Dead count — Inventory marked as no longer sellable (dead, damaged, theft).
  • Receiving — Process of accepting inventory from a vendor and incrementing stock.

Sales & Customers

  • Sale — Completed POS transaction (walk-in checkout).
  • Order / reservation — Future-dated transaction (phone hold, contractor pre-order).
  • Charge account — Customer credit relationship (typically landscape contractors).
  • Customer — End consumer who purchases plants from a nursery. Uses the Customer-facing App. NOT a nursery owner or staff member. May connect to multiple nurseries.
  • Tenant — A nursery business using Vrida (SaaS customer of Vrida). Operates POS, manages inventory, etc.
  • Tenant user — Staff member of a tenant; can be owner, manager, cashier, etc.
  • Customer-facing App — The mobile/web app used by end consumers (Customers), NOT the tenant POS/admin app.

Procurement

  • Vendor / supplier — Where the nursery buys plants/hard goods from.
  • Purchase order (PO) — A formal order issued to a vendor.
  • Three-way match — PO + Receipt + Invoice reconciliation.
  • Drop ship — PO where vendor ships directly to customer.

Production

  • Propagation — Self-growing plants from cuttings/seeds.
  • Crop plan — Production schedule from sow to ready-to-sell.
  • Crop lot — A specific batch in production.

Platform

  • Tenant — See "Tenant" under Sales & Customers above.
  • Site — A physical location of a tenant.
  • Tier — Subscription level (Starter / Pro / Enterprise).
  • Audit log — Immutable record of all changes.
  • Snapshot — Point-in-time state of inventory (daily).

Tech

  • RLS — Row-Level Security (Postgres feature for tenant isolation).
  • Schema — Postgres namespace (one per module).
  • Service — Public API class for a module.
  • DTO — Data Transfer Object (typed shape passed between modules).

Architecture (revised 2026-05-13 per Nursery-Only Focus)

Active terms

  • Platform — Vrida's control plane; 16 tables managing nurseries as Vrida's customers (tenant identity, subscriptions, billing, entitlements, onboarding, usage, legal, CS). See PROJECT_DECISIONS "Platform Module (Locked 2026-05-13)".
  • Party — Unified entity term for any participant in a transaction (customer, vendor, contractor, internal contact). Note: no longer a single "party" table in a core schema — masters live in owning modules (customer in CRM, vendor in Purchasing). The term is retained as a conceptual unification.
  • AIService — The single abstraction over AWS Bedrock owned by the AI / Intelligence module. Routes all model calls, owns rate limits, fallback paths, and (later) RAG corpus. No module calls Bedrock directly.
  • PaymentsService — The single abstraction over Stripe owned by the Payments module. Covers Stripe Terminal (in-person), Stripe Customer / subscriptions (SaaS billing), and Stripe Connect (per-site payment routing). No module calls Stripe APIs directly.
  • Connector — An external-system integration component owned by the Integrations module. QuickBooks, Shopify, Sage, Xero, workforce tools, etc., all follow one connector pattern. No nursery module imports a vendor SDK directly.
  • Foundation milestone — A pre-v1.0 milestone gating v1.0 nursery-module build. Covers building Platform (16 tables) + Identity + Payments + Integrations + AI + Files + Search, and refactoring three remaining nursery modules (CRM customer tenant-scoping cleanup, Customer App layering cleanup, Admin Identity + Integrations extractions). The Inventory item-first refactor is cancelled (item is nursery-first). v1.0 nursery-module build does not proceed until Foundation is complete and verified. See ROADMAP.md "Foundation (pre-v1.0)".
  • tenant_entitlement — Platform table that is the source of truth for why a tenant has access to a feature. Records source_type (tier, addon, override, beta, contract) + the source reference. Absorbs the prior subscription_addon concept.
  • tenant_setup_task — Platform table combining system provisioning (schema created, storage initialized, Stripe set up) and tenant-facing onboarding milestones (email verified, business profile, inventory imported via AI, first sale, go-live) into one tracking table. Each row carries task_category, is_customer_visible, dependencies, failure tracking.
  • Import pipeline — AI-powered self-serve data loading in the Integrations module (import_job, import_file, import_record). Tenant uploads files → AIService extracts and maps → flagged records reviewed → confirmed records loaded into target module tables. Milestones tracked in Platform's tenant_setup_task.
  • Billing split — SaaS subscription (Vrida → tenant) lives in Platform; customer-facing A/R (tenant → their customers) lives in Billing module (Module 11). charge_account is owned by Billing, not CRM.

Retired terms (kept here for traceability — do not use in new design)

  • Core — RETIRED. No generic-primitives layer. Masters live in owning modules.
  • Vertical extension — RETIRED. Vrida is nursery-only; there is no extension/non-extension split. Nursery-specific tables live in their owning modules directly.
  • Generic item / core.item — RETIRED. Item is nursery-first and lives in Inventory; plant fields are on item directly.
  • Plant profile — RETIRED. No plant_profile indirection.
  • Plant test (placement rule) — RETIRED. The "would this make sense for a business that has never heard of a plant" rule is no longer applied; Vrida is nursery-only.
Last modified: Jun 17, 2026, 6:57 PM PT
On this page
Esc