Skip to content

MRD (Market Requirements Document)

The MRD defines market opportunity, target segments, and go-to-market strategy.

Purpose

An MRD answers:

  • What market opportunity exists?
  • Who are the target buyers?
  • How does our solution compare to alternatives?
  • What's the go-to-market strategy?

Structure

graph TD
    MRD[MRD Document]
    MRD --> M[Metadata]
    MRD --> MA[Market Analysis]
    MRD --> BP[Buyer Personas]
    MRD --> CA[Competitive Analysis]
    MRD --> GTM[Go-to-Market]
    MRD --> P[Pricing]

    MA --> TAM[TAM/SAM/SOM]
    MA --> T[Trends]
    MA --> S[Segments]

    CA --> C[Competitors]
    CA --> D[Differentiation]

Core Sections

Market Analysis

type MarketAnalysis struct {
    TAM         MarketSize   `json:"tam"`           // Total Addressable Market
    SAM         MarketSize   `json:"sam"`           // Serviceable Addressable Market
    SOM         MarketSize   `json:"som"`           // Serviceable Obtainable Market
    Trends      []Trend      `json:"trends"`
    Segments    []Segment    `json:"segments"`
    GrowthRate  string       `json:"growth_rate,omitempty"`
}

type MarketSize struct {
    Value       float64 `json:"value"`
    Currency    string  `json:"currency"`
    Year        int     `json:"year"`
    Source      string  `json:"source,omitempty"`
    Description string  `json:"description,omitempty"`
}

Buyer Personas

type BuyerPersona struct {
    ID              string   `json:"id"`
    Name            string   `json:"name"`
    Title           string   `json:"title"`
    Company         string   `json:"company_type"`
    BudgetAuthority bool     `json:"budget_authority"`
    DecisionRole    string   `json:"decision_role"` // Decision Maker, Influencer, User
    Motivations     []string `json:"motivations"`
    Objections      []string `json:"objections"`
    Channels        []string `json:"channels"`
}

Competitive Analysis

type CompetitiveAnalysis struct {
    Competitors    []Competitor `json:"competitors"`
    Differentiation string      `json:"differentiation"`
    PositioningMap string       `json:"positioning_map,omitempty"`
}

type Competitor struct {
    Name       string   `json:"name"`
    Category   string   `json:"category"` // Direct, Indirect, Substitute
    Strengths  []string `json:"strengths"`
    Weaknesses []string `json:"weaknesses"`
    Pricing    string   `json:"pricing,omitempty"`
    MarketShare string  `json:"market_share,omitempty"`
}

Go-to-Market

type GoToMarket struct {
    Strategy        string   `json:"strategy"`
    Channels        []string `json:"channels"`
    LaunchTimeline  string   `json:"launch_timeline"`
    TargetSegments  []string `json:"target_segments"`
    Messaging       Messaging `json:"messaging"`
    SalesEnablement []string `json:"sales_enablement,omitempty"`
}

type Messaging struct {
    ValueProposition string   `json:"value_proposition"`
    Tagline          string   `json:"tagline,omitempty"`
    KeyMessages      []string `json:"key_messages"`
}

Creating an MRD

import "github.com/grokify/structured-plan/mrd"

doc := &mrd.Document{
    Metadata: mrd.Metadata{
        ID:      "MRD-2025-001",
        Title:   "Enterprise Analytics Market",
        Version: "1.0.0",
        Status:  mrd.StatusDraft,
    },
    MarketAnalysis: mrd.MarketAnalysis{
        TAM: mrd.MarketSize{
            Value:    50000000000,
            Currency: "USD",
            Year:     2025,
            Source:   "Gartner 2024",
        },
        Trends: []mrd.Trend{
            {Name: "AI/ML Integration", Impact: "High"},
        },
    },
    BuyerPersonas: []mrd.BuyerPersona{
        {
            ID:              "BP-1",
            Name:            "Data-Driven Director",
            Title:           "Director of Analytics",
            DecisionRole:    "Decision Maker",
            BudgetAuthority: true,
        },
    },
    CompetitiveAnalysis: mrd.CompetitiveAnalysis{
        Competitors: []mrd.Competitor{
            {Name: "Competitor A", Category: "Direct"},
        },
        Differentiation: "Only solution with real-time insights",
    },
}

mrd.Save(doc, "analytics-market.mrd.json")

Validation

result := mrd.Validate(doc)
if !result.Valid {
    for _, err := range result.Errors {
        fmt.Printf("Error: %s\n", err.Message)
    }
}

Markdown Output

markdown := mrd.RenderMarkdown(doc, mrd.MarkdownOptions{
    IncludeFrontmatter: true,
})
fmt.Println(markdown)

JSON Example

{
  "metadata": {
    "id": "MRD-2025-001",
    "title": "Enterprise Analytics Market",
    "version": "1.0.0",
    "status": "draft"
  },
  "market_analysis": {
    "tam": {
      "value": 50000000000,
      "currency": "USD",
      "year": 2025,
      "source": "Gartner 2024"
    },
    "trends": [
      {"name": "AI/ML Integration", "impact": "High"}
    ],
    "segments": [
      {"name": "Enterprise", "size_percentage": 60}
    ]
  },
  "buyer_personas": [
    {
      "id": "BP-1",
      "name": "Data-Driven Director",
      "title": "Director of Analytics",
      "decision_role": "Decision Maker"
    }
  ],
  "competitive_analysis": {
    "competitors": [
      {"name": "Tableau", "category": "Direct"}
    ],
    "differentiation": "Real-time insights with no-code setup"
  },
  "go_to_market": {
    "strategy": "Product-led growth with enterprise sales",
    "channels": ["Direct Sales", "Partner Network", "Self-Service"]
  }
}

MRD to PRD Flow

MRD insights feed into PRD development:

MRD Section PRD Section
Buyer Personas User Personas
Market Trends Problem Statement
Competitive Analysis Solution Differentiation
TAM/SAM/SOM Business Objectives

Next Steps