skills/scientiacapital/skills/portfolio-deal-linker

portfolio-deal-linker

Installation
SKILL.md

<quick_start> Daily automated run (7am CST): Checks for deals closed since last run → attributes to skills/actions → updates portfolio

On-demand: "portfolio update" → runs full attribution scan now "what did I influence this month" → generates monthly impact report "gtme evidence" → formats portfolio for interview/review context

Trigger phrases:

  • "portfolio update" / "deal closed"
  • "link deal to portfolio" / "gtme evidence"
  • "what did I influence" / "career evidence"
  • "transition tracker" / "show my impact" </quick_start>

<success_criteria>

  • Every closed-won deal attributed to originating skill/workflow within 24 hours
  • Revenue influenced tracked with clear attribution chain
  • Time-saved metrics aggregated weekly (skills that eliminated manual work)
  • Portfolio evidence formatted for VP BD transition narrative
  • Monthly executive summary auto-generated
  • Zero missed attributions on deals Tim touched </success_criteria>

Architecture

SCHEDULED (7am CST)           ATTRIBUTION                 PORTFOLIO UPDATE
──────────────────────────────────────────────────────────────────────────────
HubSpot: recently closed  →  Match deal to skill that  →  Update portfolio.jsonl
deals (won + lost)        →  originated/influenced it  →  Update weekly digest
                          →  Calculate metrics         →  Update GTME narrative
                          →  Compare to manual baseline →  Career evidence file

Stage 1: Detect Newly Closed Deals

Use hubspot_search_deals with filters:

  • dealstage IN ('closedwon', 'closedlost')
  • closedate >= last run timestamp (stored in ~/.claude/portfolio/last-run.json)
  • Exclude channel deals (is_channel = true) and owned by AE IDs '82625923', '423155215', '190030668' (Lex Evans, Ron Epstein, Phillip Sandler)

For each deal, pull:

Field Purpose
dealname Identification
amount Revenue attribution
closedate Cycle time calculation
createdate Pipeline velocity
dealstage Won vs lost
hubspot_owner_id Tim's deals only
Associated contacts Who was engaged
Associated company Company match
Deal notes/activity Attribution signals

Stage 2: Skill Attribution Engine

For each closed deal, determine which skills/automations contributed:

Attribution Signals

Signal Skill Attributed How to Detect
Contact was loaded via Apollo sequence prospect-research-to-cadence Apollo emailer_campaigns_search — check if contact was in a sequence
MEDDIC call prep was generated meddic-call-prep-auto Check if company appears in call prep logs
Deal was flagged by momentum analyzer deal-momentum-analyzer Check if deal appeared in RED/YELLOW actions
Contact enriched via Apollo prospect-research-to-cadence Apollo contact create date vs deal create date
Outreach email was drafted prospect-research-to-cadence Gmail draft history for contact email
Activity history exists meddic-call-prep-auto ask_agent — query activity timeline for company
Manual prospecting (no automation match) Tim (manual) Fallback — still counts for portfolio

Attribution Model

PRIMARY attribution (100% credit):
  → Skill that ORIGINATED the deal (first touch)

ASSIST attribution (shared credit):
  → Skills that INFLUENCED the deal (middle touches)
  → E.g., prospect-research found the contact, meddic-call-prep prepped the demo,
    deal-momentum flagged it when stalling

RECOVERY attribution:
  → If deal-momentum-analyzer flagged deal as RED/YELLOW
    AND deal subsequently closed-won
  → This is "recovered revenue" — strongest GTME evidence

Stage 3: Calculate Portfolio Metrics

Per-Deal Metrics

Metric Formula Why It Matters
Cycle time closedate - createdate Pipeline velocity
Revenue amount Direct impact
Cost to close Estimated from skill usage costs Efficiency
Automation touches Count of skill attributions Leverage
Manual vs automated % of deal lifecycle automated Transition evidence

Aggregate Metrics (Rolling 30 days)

Metric Formula Target
Total revenue influenced Sum of attributed closed-won deals Track monthly
Deals recovered Deals flagged RED/YELLOW → closed-won 5-10% of pipeline
Time saved (hours/month) Sum of skill time-saved estimates × usage count 30+ hrs/mo
Cost per deal Total automation cost / deals closed < $5/deal
Automation coverage Deals with ≥1 skill touch / total deals > 80%
Win rate lift Automated deal win rate vs manual baseline Track delta

GTME Positioning Metrics

Metric Narrative VP BD Relevance
Revenue influenced/month "I influenced $X in pipeline through automated workflows" Revenue ownership
Hours saved/month "Built systems that save 30+ hours/month of manual work" Operational leverage
Cost per lead "Reduced cost-per-qualified-lead from $X to $Y" Unit economics
Recovery rate "Recovered $18K/month in stalled pipeline through automated detection" Pipeline management
Automation coverage "80%+ of deals now touch at least one automated workflow" Systems thinking

Stage 4: Update Portfolio Files

4a. Append to portfolio.jsonl

{
  "date": "2026-03-15",
  "deal_id": "hs_12345",
  "deal_name": "Baylor University",
  "amount": 45000,
  "outcome": "closedwon",
  "cycle_days": 32,
  "primary_skill": "prospect-research-to-cadence",
  "assist_skills": ["meddic-call-prep-auto", "deal-momentum-analyzer"],
  "recovered": true,
  "recovery_skill": "deal-momentum-analyzer",
  "automation_touches": 5,
  "manual_touches": 3,
  "automation_pct": 0.625
}

4b. Update Weekly Digest

Append deal to the existing portfolio-artifact weekly digest with attribution details.

4c. Generate Monthly GTME Evidence Report

╔══════════════════════════════════════════════════════════════╗
║  GTME PORTFOLIO — [Month Year]                               ║
║  Tim Kipper | BDR → VP Business Development                  ║
╠══════════════════════════════════════════════════════════════╣

HEADLINE METRICS:
┌─────────────────────────────────────────────────────────────┐
│ Revenue Influenced:  $[XXX,XXX]  (XX deals)                 │
│ Pipeline Recovered:  $[XX,XXX]   (X deals saved from stall) │
│ Time Saved:          [XX] hours  ([X] min/day × [XX] days)  │
│ Automation Coverage: [XX]%       (deals with skill touch)    │
│ Cost per Deal:       $[X.XX]     (automation cost / deals)   │
└─────────────────────────────────────────────────────────────┘

SKILL ATTRIBUTION BREAKDOWN:
| Skill | Deals Influenced | Revenue | Time Saved |
|-------|-----------------|---------|------------|
| prospect-research-to-cadence | XX | $XX,XXX | XX hrs |
| meddic-call-prep-auto | XX | $XX,XXX | XX hrs |
| deal-momentum-analyzer | XX (recovered) | $XX,XXX | XX hrs |

TOP DEALS (with attribution chain):
1. [Deal] — $XX,XXX | Won
   Chain: Apollo enrich → sequence load → call prep → demo → close
   Skills: PRC → MCA → DMA

VP BD TRANSITION NARRATIVE:
"In [Month], I influenced $[X] in revenue through automated GTM systems
I designed and built. These systems saved [X] hours of manual work,
recovered $[X] in stalled pipeline, and achieved [X]% automation
coverage across the deal lifecycle. This demonstrates [operational
leverage / systems thinking / revenue ownership] at VP BD scale."

╚══════════════════════════════════════════════════════════════╝

Stage 4: Comp Plan Attainment Tracker

Calculate daily progress against Tim's 2026 BDR comp plan targets.

March 2026 Targets (Ramp 50%)

Metric Monthly Target Stretch (126%+) Daily Run Rate
Deals created 12 16+ 0.6/day
Pipeline generated $357,000 $450,000+ $17,850/day
Revenue (closed-won) $125,000 $157,000+ $6,250/day

Calculation Logic

  1. Query HubSpot for deals created this month where Tim is owner (87486452) or collaborator
  2. Sum amount for pipeline generated
  3. Sum amount where dealstage = 'closedwon' for revenue
  4. Calculate:
    • Pipeline attainment % = total pipeline / monthly target × 100
    • Revenue attainment % = total closed-won / monthly target × 100
    • Deal count attainment % = deals created / monthly target × 100
    • Accelerator zone: <100% = base, 100-110% = 1.0x, 111-125% = 1.25x, 126%+ = 1.5x
    • Days remaining = business days left in month
    • Required daily run rate = (target - achieved) / days remaining

Output Format (append to daily portfolio report)

📊 COMP PLAN TRACKER — March 2026 (Ramp 50%)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Pipeline:  $XXX,XXX / $357,000  (XX% — Zone: BASE/1.0x/1.25x/1.5x)
Revenue:   $XX,XXX / $125,000   (XX% — Zone: BASE/1.0x/1.25x/1.5x)
Deals:     X / 12               (XX%)
Days left: X business days
Gap to stretch: $XXX,XXX pipeline | $XX,XXX revenue | X deals
Daily run rate needed: $X,XXX pipeline | $X,XXX revenue

Monthly Target Lookup (for future months)

Month Deals Pipeline Revenue Phase
March 12 $357K $125K Ramp 50%
April 16 $464K $163K Ramp 65%
May 20 $607K $212K Ramp 85%
June 24 $714K $250K Full (H1)
July+ 24 $714K $475-600K Full (H2)

Dynamically select targets based on current month.

<scheduled_automation>

Daily 7am CST Run

Schedule: Daily at 7:00 AM CST (13:00 UTC), weekdays Task name: "portfolio-deal-linker-daily" Flow:

  1. Check HubSpot for deals closed since last run
  2. Attribute each deal to originating skills
  3. Calculate per-deal and aggregate metrics
  4. Append to portfolio.jsonl
  5. Update weekly digest if new closed-wons
  6. Generate monthly report if month-end

Integration with EOD: When Tim says "EOD", include portfolio attribution summary for any deals closed today. </scheduled_automation>

Sibling Skills Referenced

  • portfolio-artifact-skill — Base metrics capture, weekly digest format, executive summary template
  • deal-momentum-analyzer-skill — Recovery attribution (deals flagged RED/YELLOW that closed-won)
  • prospect-research-to-cadence-skill — Origination attribution (Apollo sequence enrollment)
  • meddic-call-prep-auto-skill — Influence attribution (call prep generated for deal)
  • hubspot-revops-skill — HubSpot query patterns, deal stage definitions

Emit Outcome Sidecar

As the final step, write to ~/.claude/skill-analytics/last-outcome-portfolio-deal-linker.json:

{"ts":"[UTC ISO8601]","skill":"portfolio-deal-linker","version":"1.0.0","variant":"default",
 "status":"[success|partial|error]","runtime_ms":[estimated ms from start],
 "metrics":{"deals_linked":[n],"skills_attributed":[n],"revenue_tracked_usd":[n]},
 "error":null,"session_id":"[YYYY-MM-DD]"}

Use status "partial" if some stages failed but results were produced. Use "error" only if no output was generated.

Weekly Installs
16
GitHub Stars
12
First Seen
Mar 15, 2026