Goal Decomposing
Break a single goal into a hierarchy of actionable subgoals.
Responsibility
Take ONE goal and decompose it into subgoals using derivation formulas. Creates multiple goal files with parent-child links.
Quick Start
-
Read parent goal from strategy/goals/active/{goal-dir}/goal.md
-
Determine decomposition pattern based on category
-
Apply derivation formulas to create subgoals
-
Write subgoal files as {n}.{name}.md in the parent goal directory
-
Update parent goal.md with child links
Decomposition Hierarchy
Level 1: Business Goal (leadership) │ "Achieve $10M ARR" │ Time horizon: Annual │ ▼ Level 2: System Goal (RevOps) │ "Generate $40M pipeline" │ Time horizon: Quarterly │ ▼ Level 3: Operational Goal (Team Leads) │ "Book 400 qualified meetings" │ Time horizon: Monthly │ ▼ Level 4: Tactical Goal (Individual) "Complete 100 outreach touches/day" Time horizon: Weekly/Daily
Decomposition Patterns
Revenue Goal Decomposition
Revenue Target ($X ARR) │ ├── Pipeline Target = Revenue / Win Rate │ │ │ ├── Opportunities = Pipeline / Avg Deal Size │ │ │ └── Meetings = Opportunities / Opp Rate │ │ │ └── Outreach = Meetings / Meeting Rate │ ├── Expansion Target = Existing ARR × Expansion Rate │ │ │ └── Expansion Meetings = Target / Avg Expansion Deal │ └── Retention Target = 100% - Churn Rate │ └── At-Risk Interventions = Churn Risk Accounts × Save Rate
Activity Goal Decomposition
Meeting Target (X meetings) │ ├── Outbound Meetings = Total × Outbound Ratio │ │ │ └── Outbound Touches = Meetings / Meeting Rate │ └── Inbound Meetings = Total × Inbound Ratio │ └── MQL Target = Meetings / MQL-to-Meeting Rate │ └── Traffic Target = MQLs / Conversion Rate
Content Goal Decomposition
Content Lead Target (X leads) │ ├── Blog Leads = Total × Blog Attribution % │ │ │ └── Blog Posts = Leads / Leads-per-Post │ ├── Gated Content Leads = Total × Gated % │ │ │ └── Ebooks/Guides = Leads / Leads-per-Asset │ └── Traffic Target = Total / Conversion Rate │ └── SEO Keywords = Traffic / Avg Traffic-per-Keyword
Derivation Formulas
Revenue Formulas
From To Formula Defaults
Revenue Pipeline revenue / win_rate
win_rate: 0.25
Pipeline Opportunities pipeline / avg_deal
avg_deal: $50K
Opportunities Meetings opps / opp_rate
opp_rate: 0.30
Meetings Outreach meetings / meeting_rate
meeting_rate: 0.02
Revenue Expansion existing_arr × expansion_rate
expansion_rate: 0.25
Revenue New Logo (target - existing × nrr) / arpu
nrr: 1.0
Activity Formulas
From To Formula Defaults
Meetings MQLs meetings / mql_meeting_rate
rate: 0.15
MQLs Traffic mqls / conversion_rate
rate: 0.025
Outreach Emails outreach × email_ratio
ratio: 0.60
Outreach Calls outreach × call_ratio
ratio: 0.25
Outreach LinkedIn outreach × linkedin_ratio
ratio: 0.15
Efficiency Formulas
From To Formula Defaults
Win Rate Stage Rates win_rate^(1/stages)
stages: 4
Cycle Time Stage Times cycle / stages
stages: 4
CAC Channel CAC cac × channel_weight
by channel
Process
Step 1: Read Parent Goal
Read: strategy/goals/active/{goal-dir}/goal.md Extract:
- goal_id (matches directory name, e.g. ea-revenue-q1)
- category (determines pattern)
- target_value, target_unit
- period_start, period_end
- baseline_value
- assumptions
Step 2: Determine Decomposition Pattern
if category == "revenue": if target > $1M: pattern = full_revenue_cascade else: pattern = simple_revenue_cascade
if category == "activity": pattern = activity_cascade
if category == "content": pattern = content_cascade
if category == "efficiency": pattern = efficiency_decomposition
if category == "retention": pattern = retention_decomposition
Step 3: Apply Formulas
For each subgoal in pattern:
-
Calculate target using formula
-
Inherit period from parent (or subdivide)
-
Inherit constraints proportionally
-
Set parent_goal link
-
Generate goal_id
Step 4: Write Subgoal Files
Location: Numbered files inside the parent goal directory.
strategy/goals/active/{goal-dir}/{n}.{name}.md
-
{n} — sequential number (1, 2, 3...)
-
{name} — short kebab-case metric name
Subgoal ID format: {goal-dir}/{n}.{name}
Examples:
-
ea-revenue-q1/1.launch-readiness
-
ea-revenue-q1/2.feb-sales
-
distribution-q1/1.github-organic
Step 5: Update Parent
Add child_goals list to parent goal.md frontmatter using subgoal IDs:
child_goals:
- ea-revenue-q1/1.launch-readiness
- ea-revenue-q1/2.feb-sales
- ea-revenue-q1/3.mar-sales
Output Structure
Directory Layout
Subgoals are numbered files inside the parent goal directory:
strategy/goals/active/{goal-dir}/ ├── goal.md # Parent goal (created by sys-defining-goals) ├── 1.{name}.md # First subgoal ├── 2.{name}.md # Second subgoal └── 3.{name}.md # Third subgoal
Subgoal File Format
goal_id: {goal-dir}/{n}.{name} name: {descriptive name} category: {inherited or derived} target_value: {calculated} target_unit: {inherited or derived} target_direction: {inherited} period_start: {inherited or subdivided} period_end: {inherited or subdivided} period_type: {inherited or derived} baseline_value: {calculated or inherited} baseline_source: derived_from_parent baseline_date: {same as parent} parent_goal: {goal-dir} child_goals: [] thread: null derivation_formula: {formula used} derivation_assumptions: [{from parent + new}] ownership_accountable: {derived from level} ownership_contributors: [] constraints_budget: {proportional allocation} constraints_headcount: {proportional allocation} constraints_capacity: {inherited} confidence_score: {parent × formula_confidence} status: active created: {today}
{Subgoal Name}
Target
{target_value} {unit} by {period_end}
Derivation
Parent Goal: {goal-dir}/goal.md Formula: {formula_description}
Calculation
{parent_metric}: {parent_value} {rate_name}: {rate_value} Result: {parent_value} {operator} {rate_value} = {target_value}
Current State
Baseline derived from parent goal derivation.
Milestones
| Date | Target | Status |
|---|---|---|
| {date_1} | {value_1} | pending |
| {date_2} | {value_2} | pending |
Dependencies
- Requires: {goal-dir}
- Enables: {child_goals if any}
Constraints
Allocated from parent:
- Budget: {proportional_amount}
- Headcount: {proportional_count}
Recursive Decomposition
For deep hierarchies, apply decomposition recursively:
- Decompose business goal → system goals
- For each system goal with target > threshold: └── Decompose → operational goals
- For each operational goal with target > threshold: └── Decompose → tactical goals
- Stop when: └── Target small enough for single owner └── Period is weekly or shorter └── No further decomposition formula exists
Decomposition Thresholds
Category Level Continue If
Revenue System target > $500K
Revenue Operational target > $100K
Activity Operational count > 100
Activity Tactical count > 20/day
Content Operational pieces > 10
Constraint Allocation
When parent has constraints, distribute to children:
Budget Allocation
Method 1: Proportional to target child_budget = parent_budget × (child_target / total_child_targets)
Method 2: By category weights outbound_weight: 0.40 inbound_weight: 0.35 content_weight: 0.25
Method 3: Fixed allocation Some subgoals may have explicit budget assignments
Headcount Allocation
If parent.headcount defined:
- Outreach goals: AE/SDR count
- Content goals: Writer count
- Ops goals: Ops count
Calculate capacity per person: touches_per_sdr = 100/day posts_per_writer = 4/month
Workflow
-
READ parent goal └── Parse frontmatter and body └── Extract target, category, period, constraints
-
DETERMINE decomposition pattern └── Match category to pattern └── Check thresholds for depth
-
CALCULATE subgoals └── Apply formulas for each level └── Validate against capacity constraints
-
WRITE subgoal files └── For each subgoal: └── Generate numbered filename: {n}.{name}.md └── Set goal_id: {goal-dir}/{n}.{name} └── Calculate target and milestones └── Write to strategy/goals/active/{goal-dir}/
-
UPDATE parent goal.md └── Add child_goals array to frontmatter └── Use subgoal IDs: [{goal-dir}/{n}.{name}]
-
RETURN subgoal list └── [{goal_id, target, relationship}]
Validation
Consistency Checks
-
Sum of child targets should derive parent target Example: If revenue needs $4M pipeline at 25% win rate, pipeline subgoal should be $4M (not arbitrary)
-
Time periods should align Children period ≤ parent period Quarterly parent → Monthly children OK Monthly parent → Quarterly children NOT OK
-
Constraints should not exceed parent sum(child_budgets) ≤ parent_budget
Achievability Checks
-
Capacity validation If outreach target > team_capacity × days: Flag constraint, adjust or note
-
Historical benchmark If required rate > best_historical × 1.5: Flag stretch, note risk
-
Dependency check If child requires other goal not yet defined: Note dependency gap
Integration
Upstream
- sys-defining-goals : Provides parent goal to decompose
Downstream
-
sys-activating-goals : Creates threads for leaf goals
-
sys-tracking-goals : Monitors all goals in hierarchy
With RevOps
-
rop-calibrator : Provides scoring models for conversion assumptions
-
rop-allocator : May trigger decomposition for resource planning
Boundaries
This skill provides:
-
Hierarchical decomposition of goals
-
Formula-based subgoal derivation
-
Parent-child linking
-
Constraint allocation
This skill does NOT:
-
Define the initial parent goal (use sys-defining-goals )
-
Create execution threads (use sys-activating-goals )
-
Track progress (use sys-tracking-goals )
-
Override parent constraints
Example
Input
Parent goal directory: strategy/goals/active/arr-q1/goal.md
-
goal_id: arr-q1
-
Target: $1,000,000 ARR
-
Current: $650,000
-
Period: Q1 2026
-
Win rate assumption: 25%
Output
strategy/goals/active/arr-q1/ ├── goal.md # Parent (updated with child_goals) ├── 1.pipeline.md # Target: $1,400,000 (gap $350K / 0.25) ├── 2.opportunities.md # Target: 28 ($1.4M / $50K) ├── 3.meetings.md # Target: 93 (28 / 0.30) └── 4.outreach.md # Target: 4,650 touches (93 / 0.02)
Parent goal.md updated with:
child_goals: [arr-q1/1.pipeline, arr-q1/2.opportunities, arr-q1/3.meetings, arr-q1/4.outreach]
Each subgoal references parent_goal: arr-q1 in frontmatter.