SOW Items

SOW Items are the building blocks of a Statement of Work, breaking down deliverables into manageable, testable components with clear acceptance criteria. Each SOW Item represents a specific requirement that must be satisfied.

Overview

SOW Items exist within Statements of Work (SOWs) and cannot be created independently. Each SOW can contain multiple SOW Items that collectively define the complete scope of deliverables.

SOW Items provide structure to a Statement of Work by:

  • Breaking down complex requirements into smaller, testable units
  • Establishing clear hierarchical relationships between requirements
  • Defining specific acceptance criteria for each requirement
  • Linking directly to test procedures that verify requirements
  • Enabling tracking of individual requirement completion

This granular approach ensures that every aspect of the project scope is clearly defined and testable, while maintaining a clear relationship to the parent Statement of Work.

The SOW Item Model

  • Name
    id
    Type
    string
    Description

    Unique identifier for the SOW Item.

  • Name
    sowId
    Type
    string
    Description

    ID of the Statement of Work this item belongs to.

  • Name
    title
    Type
    string
    Description

    The title or short description of the SOW Item.

  • Name
    description
    Type
    string
    Description

    A detailed description of the requirement.

  • Name
    parentId
    Type
    string
    Description

    ID of the parent SOW Item (if this is a sub-item).

  • Name
    priority
    Type
    string
    Description

    Priority level (e.g., "high", "medium", "low").

  • Name
    order
    Type
    number
    Description

    The relative order of this item within its level.

  • Name
    status
    Type
    string
    Description

    Current status (e.g., "drafted", "in-development", "tested", "approved").

  • Name
    ownerUserId
    Type
    string
    Description

    The user ID of the item owner.

  • Name
    createdAt
    Type
    timestamp
    Description

    Timestamp of when the item was created.

  • Name
    updatedAt
    Type
    timestamp
    Description

    Timestamp of when the item was last updated.

Creating SOW Items

Via the UI

  1. Navigate to a Statement of Work
  2. Click the "Add SOW Item" button
  3. Fill in the required information:
    • Title
    • Description
    • Priority
    • Parent item (if applicable)
  4. Click "Save Item"

Via the API

// Create a new SOW Item
const newItem = await apiClient.sows.items.create(
  "sow_id", 
  {
    title: "User Authentication",
    description: "Implement secure user authentication with MFA support",
    priority: "high",
    parentId: "parent_item_id", // Optional, for hierarchical nesting
  }
);

Hierarchical Organization

SOW Items can be organized in a hierarchical structure, allowing for a logical grouping of requirements:

  • Parent Items: Represent high-level requirements or feature sets
  • Child Items: Detail specific requirements within a parent item
  • Nested Levels: Support multiple levels of nesting for complex requirements

To create a hierarchical structure:

  1. Create top-level SOW Items first
  2. When creating child items, specify the parent item ID
  3. Use the drag-and-drop interface to reorganize items visually

Ordering Items

The order of SOW Items can be customized to reflect priority, sequence, or logical flow:

  1. In the UI, use drag-and-drop to reorder items
  2. Through the API, update the order field of items
// Reorder SOW Items
await apiClient.sows.items.reorder(
  "sow_id", 
  "parent_id", // null for top-level items
  ["item_id_1", "item_id_2", "item_id_3"] // Array of item IDs in desired order
);

Relationship to Statements of Work

Understanding the relationship between SOW Items and their parent Statement of Work is crucial:

  1. Containment: SOW Items always belong to a specific Statement of Work
  2. Completeness: The collection of SOW Items defines the complete scope of the Statement of Work
  3. Shared Context: SOW Items inherit context from their parent SOW (e.g., project goals, timelines)
  4. Versioning: When a SOW is versioned, all its SOW Items are also versioned

To navigate between a SOW and its items:

  1. From a Statement of Work detail page, you can view all associated SOW Items
  2. From a SOW Item detail page, you can navigate back to the parent Statement of Work

Managing Acceptance Criteria

Each SOW Item should have one or more acceptance criteria that define when the requirement is considered satisfied. See the Acceptance Criteria documentation for details on how to define and manage these criteria.

Best Practices for SOW Items

  • Be Specific: Each SOW Item should represent a single, clear requirement
  • Appropriate Granularity: Break down complex requirements, but avoid excessive fragmentation
  • Consistent Naming: Use consistent naming conventions for clarity
  • Complete Information: Include all relevant details in the description
  • Logical Hierarchy: Structure items to reflect logical relationships
  • Testable Design: Ensure each item can be verified through testing

API Reference

EndpointMethodDescription
/api/v1/sows/{sowId}/itemsGETList all items for a SOW
/api/v1/sows/{sowId}/items/{itemId}GETGet item by ID
/api/v1/sows/{sowId}/itemsPOSTCreate a new item
/api/v1/sows/{sowId}/items/{itemId}PUTUpdate an item
/api/v1/sows/{sowId}/items/{itemId}DELETEDelete an item
/api/v1/sows/{sowId}/items/reorderPOSTReorder items

For complete API details, refer to the API Reference.

Was this page helpful?