Skip to content

Motion Failure Audit: Vellocity Platform

Date: 2026-02-15 Scope: Codebase audit against AWS Marketplace motion failure patterns Framework: PRIME (Productization, Reach, Integration, Marketing, Engagement)


Executive Summary

This audit maps the motion failure patterns identified in real-world AWS Marketplace partner stories against Vellocity's current codebase. The core finding: Vellocity has strong individual components but lacks the connective tissue that prevents motion collapse. The platform provides tools but doesn't enforce the sequencing, gates, and institutional logic awareness that separates successful marketplace launches from the $500K mistake.

Audit Verdict

Area Status Risk Level
PRIME as Diagnostic (not philosophical) GAP HIGH
GTM Motion Sequencing Enforcement GAP HIGH
CTA-to-Revenue Misalignment PARTIAL MEDIUM
Monetization Infrastructure PARTIAL MEDIUM
ACE Eligibility Awareness GAP HIGH
Credit Burn / Conversion Workflow GAP HIGH
RIF / FTR Self-Service Guidance GAP MEDIUM

1. PRIME Framework: Diagnostic vs. Philosophical

What the Feedback Demands

PRIME should be a revenue dashboard, not a book chapter:

  • Productization Readiness Score
  • Reach Amplification Index
  • Integration Depth Analysis
  • Marketing Motion Alignment
  • Engagement Monetization Tracking

What the Code Has

File: app/CustomExtensions/CloudMarketplace/System/Models/PartnerReadinessChecklist.php

The current readiness checklist uses 8 operational categories:

partner_profile     (15%) - AWS Partner Central profile
seller_profiles     (15%) - Marketplace seller profiles
marketplace_listings (20%) - Product listings
brand_voice         (10%) - Brand voice config
sandbox_eligibility (10%) - Innovation Sandbox
aws_compliance      (15%) - FTR review, security
data_sources        (10%) - Connected data sources
cosell_readiness     (5%) - Co-sell platform setup

The Gap

None of these categories map to the PRIME diagnostic framework. The current checklist answers "are your technical prerequisites complete?" but NOT "are your revenue systems aligned?"

PRIME Dimension Current Coverage What's Missing
Productization Readiness Score marketplace_listings checks listing content exists No pricing model validation, no packaging readiness, no buyer journey mapping, no free trial effectiveness scoring
Reach Amplification Index MarketplaceListingMetric tracks impressions/clicks No channel amplification scoring, no GTM motion velocity tracking, no campaign-to-pipeline correlation
Integration Depth Analysis aws_compliance checks FTR pass/fail No API integration depth scoring, no consumption tracking readiness, no metering service validation
Marketing Motion Alignment brand_voice checks voice config exists No campaign-to-listing alignment scoring, no content-to-CTA pathway validation, no launch sequencing readiness
Engagement Monetization Tracking cosell_readiness at 5% weight No ACE opportunity count tracking, no co-sell conversion rates, no MDF ROI tracking, no engagement-to-revenue correlation

Recommendation

Transform PartnerReadinessChecklist::CATEGORIES from operational checklist to PRIME diagnostic dimensions. Each dimension should compute a real-time score from actual platform data, not from manual checkbox completion.

Priority: HIGH - This is the core positioning differentiator described in the feedback.


2. GTM Motion Sequencing: Structure Without Enforcement

What the Feedback Demands

Story #1 (Airline Software Provider): "No launch sequencing plan" = go-to-market sequencing failure.

Partners need gates that prevent motion collapse: - Pre-submission QA before marketplace listing - Internal governance clarity before CTA activation - Partner Central migration awareness before co-sell - Launch sequencing that enforces readiness before execution

What the Code Has

File: database/migrations/2026_01_20_000001_reorganize_menu_gtm_motions.php

The platform defines 4 GTM motions as menu categories:

CREATE  → Content-First Build
LAUNCH  → Campaign Execution
CO-SELL → Partner GTM
LEARN   → Intelligence & Attribution

The Gap

These are navigation categories, not sequenced gates. A partner can jump to CO-SELL without completing CREATE or LAUNCH. There is no enforcement of readiness between stages.

Sequencing Need Current State Gap
Pre-submission QA gate No gate exists Partners can launch listings without QA validation
CREATE before LAUNCH Menu order implies sequence No enforcement - all sections accessible immediately
LAUNCH before CO-SELL Menu order implies sequence Can initiate co-sell without any campaign infrastructure
Readiness gates between motions PartnerReadinessChecklist exists but doesn't gate access Checklist is informational, not blocking
Launch sequencing plan No concept of sequencing plan No timeline-based launch workflow with dependencies

Specific Code Evidence

In PartnerReadinessChecklist.php:328-347, the determineStatus() method only sets status labels. It doesn't gate any platform operations:

protected function determineStatus(int $score, int $blockingItems): string
{
    if ($blockingItems > 0) return self::STATUS_NEEDS_ATTENTION;
    if ($score >= 90) return self::STATUS_READY;
    // ... purely informational
}

Recommendation

Implement motion gates in the route/middleware layer that check readiness scores before allowing access to downstream GTM motions. A partner with 0% CREATE completion should see a guided pathway, not the full CO-SELL toolset.

Priority: HIGH - This directly prevents the "go-to-market sequencing failure" pattern.


3. CTA-to-Revenue Misalignment

What the Feedback Demands

Story #2 (Private Offer Misconception): Partners think "Turn on CTA = money flows." Reality:

  • CTA ≠ revenue
  • CTA = co-sell routing
  • CTA = DGR triage gate
  • CTA = enablement, not automation

What the Code Has

File: app/CustomExtensions/CloudMarketplace/System/Models/MarketplaceCtaMetric.php

CTA metrics track click performance: - 9 CTA types (request_demo, private_offer, free_trial, etc.) - 8 CTA positions (hero, above_fold, sidebar, etc.) - Strength scoring (CTR 30%, conversion 35%, position 15%, volume 20%)

File: app/Models/PrivateOfferRequest.php

Private offer workflow tracks the sales lifecycle: - Status flow: new → qualified → proposal_sent → negotiating → accepted - Sales rep assignment, contact tracking, follow-up management - CRM sync (HubSpot, Salesforce)

The Gap

CTA and Private Offer are disconnected systems. There's no concept that CTA activation should trigger sales alignment workflows, not just track clicks.

Need Current State Gap
CTA activates co-sell routing CTA tracks metrics only No routing logic from CTA to co-sell pipeline
CTA triggers DGR triage No DGR concept exists No demand generation review before CTA goes live
CTA requires sales alignment CTA and Private Offers are separate No validation that sales team is ready before CTA activation
CTA as enablement layer CTA is a measurement tool No pre-activation checklist for sales readiness

Specific Code Evidence

MarketplaceCtaMetric::calculateStrengthScore() (line 124-169) scores CTA strength based entirely on performance metrics (CTR, conversion, position). It has zero awareness of whether: - A sales process exists behind the CTA - The partner has a deal desk to handle inbound - The CTA target (demo, private offer) has operational support

Recommendation

Add a cta_readiness_score that validates operational infrastructure behind each CTA type before allowing activation. For example, request_private_offer CTA should verify that PrivateOfferRequest workflows have assigned sales reps and active CRM integrations.

Priority: MEDIUM - Revenue consequence is 1-2 quarters of momentum loss.


4. Monetization Infrastructure Gaps

What the Feedback Demands

Story #3 (Supabase - 600 MQLs): No conversion system. Missing: - Deal desk - Credit burn tracking - Conversion workflow - Subscription migration plan

"That's a monetization infrastructure failure. Credits expire → no upsell → no revenue capture."

What the Code Has

Component Status File
Deal desk (formal) MISSING PrivateOfferRequest has sales workflow but no formal deal desk queuing/approval
Credit burn tracking WRONG SCOPE UserUsageCredit tracks Vellocity platform credits, not customer marketplace credits
Conversion workflow PARTIAL PrivateOfferRequest tracks new→accepted but no MQL-to-customer conversion pipeline
Subscription migration MISSING No concept of free trial → paid subscription migration workflow

The Gap

Deal Desk: PrivateOfferRequest.php (line 126-134) defines a status workflow (new → qualified → proposal_sent → negotiating → accepted) but this is a single-track sales process. There's no: - Multi-approver deal desk queue - Pricing governance rules - Discount authority levels - Deal routing by size/complexity

Credit Burn Tracking: The platform tracks Vellocity's own token credits (UserUsageCredit), but has no model for tracking a customer's AWS Marketplace credits (promotional credits, sandbox credits, ISV Accelerate credits). The SandboxCreditRequest model in DesignWinActivity tracks requests but not burn rate or expiry.

Conversion Workflow: ContentAttributionEvent.php tracks content → deal attribution beautifully (5 attribution models, CRM integration, deal value calculation). But there's no conversion pipeline that: - Captures MQLs from marketplace activity - Triages by qualification criteria - Routes to conversion workflow - Tracks credit → subscription migration - Alerts on credit expiry approaching without upsell

Specific Code Evidence

ContentAttributionEvent::CONVERSION_EVENTS (line 114-119) defines:

public const CONVERSION_EVENTS = [
    self::EVENT_FORM_SUBMIT,
    self::EVENT_MEETING_BOOKED,
    self::EVENT_OPPORTUNITY,
    self::EVENT_DEAL_CLOSED,
];

This tracks that a conversion happened, not that a conversion workflow was executed. There's no model for: - MQL qualification criteria - Lead scoring - Conversion workflow steps - Credit expiry alerting - Upsell trigger conditions

Recommendation

Build a MarketplaceConversionPipeline model that connects: MQL capture → qualification → credit tracking → subscription migration → upsell triggering. This is the "monetization infrastructure" the feedback identifies as a six-figure opportunity loss when missing.

Priority: HIGH - "Easily a six-figure opportunity loss."


5. ACE Eligibility Blind Spot

What the Feedback Demands

Story #4 (Bolt): Partners assume "engineering will enable RPO" but eligibility = traction + ACE opportunity count. Missing: - Threshold awareness - Qualification criteria knowledge - Enablement roadmap - Pre-qualification strategy

What the Code Has

File: app/Extensions/ContentManager/System/Services/Capabilities/AceOpportunitySyncCapability.php

Strong ACE brief generation and pipeline tracking: - 4 operations: generate_brief, prepare_submission, track_pipeline, request_engagement - 7 pipeline stages: prospect → qualified → technical_validation → business_validation → committed → closed_won → closed_lost - AWS field team engagement routing (SA, PSA, AE, etc.)

The Gap

The ACE capability generates individual opportunity briefs but has zero awareness of portfolio-level eligibility thresholds. It doesn't know or track:

ACE Eligibility Need Current State Gap
Minimum opportunity count for RPO eligibility Not tracked No concept of "you need X ACE opportunities to qualify for RPO"
Traction metrics threshold Not tracked No tracking of aggregate traction metrics vs. tier thresholds
ISV Accelerate tier requirements Not modeled No model for ISV Accelerate tier progression (Select → Advanced → Premier)
Pre-qualification strategy Not implemented No roadmap showing "you are here, you need X to reach next tier"
ACE opportunity count dashboard Not implemented No aggregate view of total ACE opportunities vs. thresholds

Specific Code Evidence

AceOpportunitySyncCapability::validateAceRequirements() (line 396-422) validates individual opportunity fields:

$required = [
    'customer_name',
    'opportunity_name',
    'deal_value',
    'customer_industry',
    'primary_challenge',
    'solution_description',
];

This validates a single submission. There's no method that checks: - "How many ACE opportunities does this partner have?" - "What's the minimum count for their target tier?" - "Are they on track for RPO eligibility?" - "What engagement types are they missing?"

Recommendation

Add an AceEligibilityTracker that maintains portfolio-level ACE metrics: total opportunities, opportunities by stage, tier threshold progress, and time-to-eligibility projections. This should surface in the PRIME diagnostic dashboard under the Engagement dimension.

Priority: HIGH - "Could stall enterprise expansion."


6. The $500K Mistake: Missing Revenue Readiness Gate

What the Feedback Demands

The $500K mistake is: "Activating Marketplace without revenue readiness." Or more precisely: "Entering AWS Marketplace without aligned Productization, Reach, Integration, Marketing, and Engagement systems."

What the Code Has

The PartnerReadinessChecklist model has a concept of blocking_items and status tracking. The PredictionEngineService::scoreLaunchReadiness() computes a multi-factor readiness score with a threshold: 'can_launch' => empty($blockingIssues) && $totalScore >= 70.

The Gap

These readiness checks are advisory only. They don't gate any actual operations. A partner with a readiness score of 10 can still: - Publish marketplace listings - Activate CTAs - Enable co-sell - Submit ACE opportunities - Launch campaigns

There is no revenue readiness gate that enforces: "You cannot activate X until Y is ready."

Specific Code Evidence

PredictionEngineService.php:237:

'can_launch' => empty($blockingIssues) && $totalScore >= 70,

This can_launch boolean is computed but never enforced. It's returned in the DTO but no controller, middleware, or policy checks it before allowing operations.

Recommendation

Implement a RevenueReadinessGate middleware/policy that is checked before key marketplace operations. Map each operation to its required PRIME dimension scores:

Operation Required PRIME Score Minimum Threshold
Publish listing Productization ≥ 70 Integration ≥ 50
Activate CTA Marketing ≥ 60 Has active sales process
Enable co-sell Engagement ≥ 50 Has ACE capability
Submit ACE Engagement ≥ 60 Meets tier threshold
Launch campaign Reach ≥ 50 Marketing ≥ 60

Priority: CRITICAL - This is the single most important gap. This IS the $500K mistake prevention.


7. The RIF Twist: FTR Without Partner SA

What the Feedback Demands

No FTR reviews without designated Partner SA. Fewer internal reviewers = more backlog, more blind spots, more self-service expectation.

What the Code Has

File: app/CustomExtensions/CloudMarketplace/System/Models/DesignWinActivity.php

FTR tracking exists: - ftr_review_status: pending, passed, failed, not_required - ftr_review_date tracking - recordFTRReview() method - getSandboxEligibilityChecklist() includes FTR

The Gap

FTR tracking is status recording, not navigation guidance. The platform records that an FTR happened but doesn't help partners:

Need Current State Gap
Self-service FTR preparation No guidance No checklist/wizard for FTR self-prep
FTR backlog awareness No visibility Partner doesn't know current wait times
Alternative review paths Not modeled No guidance on proceeding without Partner SA
Common FTR failure patterns Not tracked No pattern library for avoiding failures
FTR remediation workflow Not implemented No guided fix-and-resubmit workflow

Recommendation

Add FTR self-service preparation capabilities: - Pre-FTR checklist based on common failure patterns - Estimated review timeline based on current backlog data - Guided remediation workflow when FTR fails - Alternative pathway documentation when Partner SA unavailable

Priority: MEDIUM - Increasing urgency as AWS internal support thins.


8. The Meta Pattern: Partners Operate As If AWS Is Infrastructure

What the Feedback Demands

Partners behave as if: - Marketplace is a feature → Reality: ecosystem with institutional logic - AWS will drive demand → Reality: AWS amplifies what already works - CTA is a switch → Reality: CTA is enablement, not automation - Co-sell is automatic → Reality: co-sell requires ACE readiness + traction

Platform Manifestation

The Vellocity codebase reflects this same assumption in subtle ways:

  1. Readiness is optional - All tools are available regardless of readiness state
  2. CTA is metrics - CTA scoring is about performance, not about operational readiness
  3. ACE is per-opportunity - ACE tooling is transactional, not strategic
  4. Co-sell is partner matching - Co-sell focuses on finding partners, not on co-sell infrastructure readiness
  5. Attribution is backward-looking - Content attribution tracks what happened, not what should happen next

The Positioning Opportunity

The feedback identifies Vellocity's positioning as:

"The Strategic Layer Between Your SaaS and AWS Marketplace"

or

"Prevent the $500K Marketplace Mistake"

The codebase should embody this positioning by making revenue readiness the central organizing principle, not an optional dashboard widget.


Summary: Priority Action Items

Critical (Revenue-blocking)

  1. PRIME Diagnostic Dashboard - Replace operational checklist with revenue-diagnostic scoring across 5 PRIME dimensions
  2. Revenue Readiness Gate - Enforce PRIME scores before marketplace operations
  3. Marketplace Conversion Pipeline - Build MQL → qualification → credit tracking → upsell pipeline

High Priority (Quarter-blocking)

  1. GTM Motion Sequencing - Add gates between CREATE → LAUNCH → CO-SELL → LEARN
  2. ACE Eligibility Tracker - Portfolio-level ACE metrics with tier threshold awareness
  3. CTA Operational Readiness - Validate sales infrastructure behind each CTA before activation

Medium Priority (Momentum-blocking)

  1. FTR Self-Service Guidance - Pre-FTR checklist, remediation workflow, backlog awareness
  2. Credit Burn Tracking - Customer marketplace credit expiry alerting and upsell triggers

Implementation: Before → After Transformation

Implemented 2026-02-16. See commit history for the claude/motion-failure-audit-improvements-ggWSS branch.

Readiness Framework: Operational Checklist → PRIME Revenue Diagnostic

Dimension BEFORE AFTER
Framework 8 operational categories (partner_profile, seller_profiles, etc.) 5 PRIME revenue dimensions (Productization, Reach, Integration, Marketing, Engagement)
Weights Co-Sell at 5%, Brand Voice at 10% — operational busywork overweighted Engagement at 20%, Productization at 25% — revenue signals drive priority
What it measures "Are your technical prerequisites complete?" "Are your revenue systems aligned to capture marketplace value?"
Score meaning "In Progress" / "Nearly Ready" — neutral labels "Revenue Systems Unaligned" / "$500K Mistake Pattern" — consequence language
Action guidance "Complete Partner Profile setup" "[P] Is your product packaged for marketplace buyers to self-serve?"
Data source Manual checkbox completion Real-time aggregation from platform models (listings, CTAs, ACE, FTR)

Status Messaging: Neutral Labels → Consequence-Driven Language

Score Range BEFORE AFTER
0-29 "Not Started" "Revenue Systems Unaligned" — "Marketplace activation at this stage matches the pattern of a $500K mistake."
30-49 "In Progress" "High Revenue Risk" — "Significant gaps in revenue infrastructure. Expect 2-3 quarter delay."
50-69 "In Progress" "Revenue Velocity at Risk" — "Foundation in place but acceleration systems incomplete. Expect 1-2 quarter delay."
70-89 "Nearly Ready" "Revenue Systems Aligned" — "Core infrastructure operational. Fine-tune for maximum velocity."
90-100 "Ready" "Launch Ready" — "Revenue readiness verified across all PRIME dimensions. Launch conditions met."

GTM Motions: Navigation Menu → Sequenced Gates

Motion BEFORE AFTER
CREATE Menu item — always accessible Always unlocked — this is where you start
LAUNCH Menu item — always accessible Gated: Productization ≥ 60, Marketing ≥ 50
CO-SELL Menu item — always accessible Gated: Productization ≥ 70, Integration ≥ 50, Engagement ≥ 40
LEARN Menu item — always accessible Gated: Reach ≥ 40 (needs minimum data for intelligence)
Gate UX No concept of gates Shows progress bars, gap messages, "To unlock: Productization needs +15 points"

CTA Strength Score: Performance-Only → Performance + Operational Readiness

Factor BEFORE (Weight) AFTER (Weight)
CTR Performance 30% 25%
Conversion Rate 35% 30%
Position Effectiveness 15% 10%
Volume/Significance 20% 15%
Operational Readiness Did not exist 20% — validates infrastructure behind each CTA type

CTA Operational Readiness Checks (NEW)

CTA Type BEFORE AFTER — Required Infrastructure
Request Demo Tracks clicks/conversions Checks: demo calendar, sales routing, follow-up sequence
Request Private Offer Tracks clicks/conversions Checks: assigned sales rep, CRM integration, deal qualification, pricing authority
Start Free Trial Tracks clicks/conversions Checks: trial onboarding, usage tracking, conversion workflow, expiry alerts
Subscribe Now Tracks clicks/conversions Checks: pricing dimensions configured, billing/metering integration
Contact Us Tracks clicks/conversions Checks: routed to monitored inbox, response SLA defined

Revenue Readiness Gate: Advisory → Enforced (NEW)

Operation BEFORE AFTER — PRIME Thresholds Required
Publish listing Allowed regardless of readiness Productization ≥ 70, Integration ≥ 50
Activate CTA Allowed regardless of readiness Marketing ≥ 60, Productization ≥ 50
Initiate co-sell Allowed regardless of readiness Engagement ≥ 50, Productization ≥ 70, Integration ≥ 50
Submit ACE Allowed regardless of readiness Engagement ≥ 60, Integration ≥ 40
Launch campaign Allowed regardless of readiness Reach ≥ 50, Marketing ≥ 60
Gate Response N/A 422 with PRIME gap details, failure story, and specific remediation steps

ACE Tracking: Per-Opportunity → Portfolio Strategy (NEW)

Aspect BEFORE AFTER
Scope Single opportunity brief generation Portfolio-level metrics across all ACE opportunities
Tier awareness No concept of ISV Accelerate tiers Tracks Select → Advanced → Premier thresholds
RPO eligibility Not tracked Calculates gap to Premier tier (RPO requirement)
Engagement breadth Not tracked Identifies missing engagement types (SA, Executive, EDP, etc.)
Velocity Not tracked Opportunities/month, win rate, average deal value
Recommendations Per-field completion suggestions Strategic: "Submit 3 more ACE opportunities to unlock MDF eligibility"

PredictionEngineService::can_launch — Computed → Enforced

Aspect BEFORE AFTER
can_launch boolean Computed in DTO, returned in API response, never checked Still computed in DTO; additionally enforced by RevenueReadinessGate middleware
Enforcement point None — partner with score of 10 could publish, activate CTAs, enable co-sell revenue-gate:{operation} middleware on operation routes
Failure response N/A Structured JSON with PRIME dimension gaps, failure pattern stories, and remediation

Appendix: File Reference Map

Audit Area Primary Files
PRIME / Readiness app/CustomExtensions/CloudMarketplace/System/Models/PartnerReadinessChecklist.php
Revenue Readiness Gate app/Http/Middleware/RevenueReadinessGate.php
CTA Operational Readiness app/CustomExtensions/CloudMarketplace/System/Models/MarketplaceCtaMetric.php
ACE Eligibility Tracker app/Services/AceEligibilityTracker.php
GTM Motions database/migrations/2026_01_20_000001_reorganize_menu_gtm_motions.php
Private Offers app/Models/PrivateOfferRequest.php
ACE Sync app/Extensions/ContentManager/System/Services/Capabilities/AceOpportunitySyncCapability.php
Attribution app/Extensions/ContentManager/System/Models/ContentAttributionEvent.php
FTR/Design Win app/CustomExtensions/CloudMarketplace/System/Models/DesignWinActivity.php
Prediction Engine app/Services/PredictionEngine/PredictionEngineService.php
Launch Readiness app/Livewire/Marketplace/LaunchReadinessScore.php