You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When a vendor can't attend a market day, instead of leaving their stall empty, they can post their absence to a coverage board. Qualified substitute vendors from the market's waitlist or approved roster see the opening and can request to fill it. The manager approves the swap with one tap. This reduces empty stalls, preserves customer confidence, and gives waitlisted vendors an on-ramp to regular participation.
Market Signal
VibePro ($149-595/month) offers waitlist management and Eventeny has approval workflows, but no competitor provides dynamic day-of substitution. Vendor no-shows are the most common operational disruption cited in market management literature. The 2026 National Farmers Market Survey (launched February 2026 by USDA AMS) is collecting updated benchmarks on vendor participation — attendance reliability is a key metric. Markets with high stall occupancy rates are more attractive to customers (67% visit weekly during peak season) and more successful in FMPP grant applications. With $45K average annual vendor gross sales, each recovered stall represents meaningful revenue.
User Signal
The PRD identifies "managers must manually collect updates from fragmented vendor channels" as the core problem. Exception statuses (FR15: running late, sold out, not attending) already surface absences — but currently there's no recovery path. FR10 (roster management) and FR10a (vendor search/invite) provide the building blocks for a coverage workflow. The manager persona "Maria" needs to fill gaps without phone calls. At 30-40 vendors per market, even 2-3 no-shows per market day creates visible empty spots that erode customer confidence.
Technical Opportunity
The architecture already has the key seams: vendor_statuses table records "not attending" exceptions, market_vendors junction table manages roster membership with approval status, and the domain event bus (internal/events/) can trigger coverage-board notifications. The coverage board is a new view over existing data: filter market_vendors where status = "not_attending" for a given date, cross-reference with approved-but-not-rostered vendors. The Go event bus publishes CoverageSlotOpened events → FCM notifies eligible substitutes. Manager approval uses the same pattern as FR10a vendor invitations.
Assessment
Dimension
Score
Rationale
Feasibility
med
New workflow but built on existing roster and exception-status infrastructure
Impact
high
Solves the #1 manager operational pain; unique competitive differentiator
Urgency
med
No competitor offers this; value scales with vendor pool size
Adversarial Review
Strongest objection: At pilot scale (40 vendors across 5 markets), the substitute vendor pool is too small to make a coverage board useful. You need a critical mass of waitlisted vendors.
Rebuttal: Start with manager-initiated matching rather than self-service: when a vendor posts "not attending," the manager sees suggested substitutes from the approved vendor list and sends a one-tap invite (FR10a already supports vendor invitations). This works even with 2-3 substitute vendors per market. The self-service board scales with the vendor pool. At the PRD's 12-month target (160 vendors, 20 markets), a meaningful substitute pool exists. Even one recovered stall per market day materially improves customer confidence and market revenue.
Suggested Next Step
Define the coverage workflow state machine: vendor posts absence → system identifies eligible substitutes (same product category, approved by this market) → manager reviews suggestions and approves → substitute confirms → roster updates → customer notifications cascade. Start with the manager-initiated path as MVP; add self-service vendor browsing of openings as the vendor pool grows.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Summary
When a vendor can't attend a market day, instead of leaving their stall empty, they can post their absence to a coverage board. Qualified substitute vendors from the market's waitlist or approved roster see the opening and can request to fill it. The manager approves the swap with one tap. This reduces empty stalls, preserves customer confidence, and gives waitlisted vendors an on-ramp to regular participation.
Market Signal
VibePro ($149-595/month) offers waitlist management and Eventeny has approval workflows, but no competitor provides dynamic day-of substitution. Vendor no-shows are the most common operational disruption cited in market management literature. The 2026 National Farmers Market Survey (launched February 2026 by USDA AMS) is collecting updated benchmarks on vendor participation — attendance reliability is a key metric. Markets with high stall occupancy rates are more attractive to customers (67% visit weekly during peak season) and more successful in FMPP grant applications. With $45K average annual vendor gross sales, each recovered stall represents meaningful revenue.
User Signal
The PRD identifies "managers must manually collect updates from fragmented vendor channels" as the core problem. Exception statuses (FR15: running late, sold out, not attending) already surface absences — but currently there's no recovery path. FR10 (roster management) and FR10a (vendor search/invite) provide the building blocks for a coverage workflow. The manager persona "Maria" needs to fill gaps without phone calls. At 30-40 vendors per market, even 2-3 no-shows per market day creates visible empty spots that erode customer confidence.
Technical Opportunity
The architecture already has the key seams:
vendor_statusestable records "not attending" exceptions,market_vendorsjunction table manages roster membership with approval status, and the domain event bus (internal/events/) can trigger coverage-board notifications. The coverage board is a new view over existing data: filtermarket_vendorswhere status = "not_attending" for a given date, cross-reference with approved-but-not-rostered vendors. The Go event bus publishesCoverageSlotOpenedevents → FCM notifies eligible substitutes. Manager approval uses the same pattern as FR10a vendor invitations.Assessment
Adversarial Review
Strongest objection: At pilot scale (40 vendors across 5 markets), the substitute vendor pool is too small to make a coverage board useful. You need a critical mass of waitlisted vendors.
Rebuttal: Start with manager-initiated matching rather than self-service: when a vendor posts "not attending," the manager sees suggested substitutes from the approved vendor list and sends a one-tap invite (FR10a already supports vendor invitations). This works even with 2-3 substitute vendors per market. The self-service board scales with the vendor pool. At the PRD's 12-month target (160 vendors, 20 markets), a meaningful substitute pool exists. Even one recovered stall per market day materially improves customer confidence and market revenue.
Suggested Next Step
Define the coverage workflow state machine: vendor posts absence → system identifies eligible substitutes (same product category, approved by this market) → manager reviews suggestions and approves → substitute confirms → roster updates → customer notifications cascade. Start with the manager-initiated path as MVP; add self-service vendor browsing of openings as the vendor pool grows.
All reactions