> ## Documentation Index
> Fetch the complete documentation index at: https://docs.charle.agency/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> How work estimation works in CharleOS

Accurate estimation is the foundation of profitable delivery and predictable client costs. CharleOS uses a structured t-shirt sizing system combined with scoping best practices to estimate work consistently.

## Why Estimation Matters

Good estimation enables:

<CardGroup cols={2}>
  <Card title="Profitability" icon="chart-line">
    Accurate estimates create margin when delivery is efficient
  </Card>

  <Card title="Client Trust" icon="handshake">
    Realistic quotes build confidence and long-term relationships
  </Card>

  <Card title="Capacity Planning" icon="calendar">
    Precise estimates enable better scheduling and resource allocation
  </Card>

  <Card title="Risk Management" icon="shield">
    Identifying complexity upfront prevents overruns
  </Card>
</CardGroup>

## The Estimation System

CharleOS combines two complementary approaches:

<Tabs>
  <Tab title="T-shirt Sizing">
    **Relative estimation using standardized time ranges**

    Instead of precise hours, work is sized using XS, S, M, L, XL, and XXL categories. Each size maps to a time range with a minimum, maximum, and average.

    **Benefits:**

    * Faster than precise hourly estimates
    * Accounts for uncertainty with ranges
    * Consistent across the team
    * Easy to explain to clients

    **Example:**

    * "Homepage update" → **M** (3-6 hours)
    * Simple, clear, and feeds into billing formula
  </Tab>

  <Tab title="Scoping">
    **Breaking work into estimable pieces**

    Before sizing, requirements are scoped to ensure clarity. Good scoping means:

    * Understanding what's included (and excluded)
    * Identifying dependencies and unknowns
    * Breaking large work into smaller pieces
    * Comparing to similar past work

    **Benefits:**

    * Reduces estimation errors
    * Clarifies expectations with clients
    * Makes work easier to schedule
    * Catches complexity early

    **Example:**

    * "Checkout flow" → Breaks into design, development, payment integration, testing
    * Each piece gets its own t-shirt size
  </Tab>
</Tabs>

## How It Works Together

The estimation process follows a logical flow:

<Steps>
  <Step title="Understand the Requirement">
    Review the client's request or requirement description. Ask clarifying questions if anything is ambiguous. Understand the desired outcome.
  </Step>

  <Step title="Scope the Work">
    Define what's included:

    * What deliverables are expected?
    * What's explicitly excluded?
    * Are there design and development components?
    * What dependencies exist?

    Break large requirements into smaller, estimable pieces.
  </Step>

  <Step title="Apply T-shirt Sizes">
    For each scoped piece, select the appropriate t-shirt size:

    * Consider complexity, unknowns, and dependencies
    * Reference similar past work
    * Choose the size that fits the range

    Remember: Each size includes core work PLUS QA/feedback buffer.
  </Step>

  <Step title="Validate the Estimate">
    Review the total estimate:

    * Does it feel reasonable compared to similar work?
    * Have you accounted for risks and complexity?
    * Is the scope clear enough to justify the estimate?

    Adjust if needed before finalizing.
  </Step>
</Steps>

## Estimation in CharleOS

### Where Estimates are Used

<AccordionGroup>
  <Accordion title="Quote Requirements" icon="file-text">
    When creating quotes, each requirement block is assigned a t-shirt size. The quote shows the time range to the client (e.g., "M: 3-6 hours") and calculates the total estimated time.

    Requirements can have both **design** and **development** sizes for work with multiple components.
  </Accordion>

  <Accordion title="Task Creation" icon="check-square">
    When quotes are converted to tasks, the t-shirt sizes carry over. Tasks inherit the estimate, which becomes the billing cap.

    Task-level estimates feed into:

    * Scheduling and capacity planning
    * Billing calculations (MIN/MAX formula)
    * Efficiency tracking (actual vs estimate)
  </Accordion>

  <Accordion title="Capacity Planning" icon="calendar">
    Estimates are used to allocate capacity to the schedule. The system calculates how much time is needed and distributes it across available days.

    The 80/20 split (core work vs QA/feedback) helps allocate work to the right team members.
  </Accordion>
</AccordionGroup>

## Common Estimation Scenarios

### Scenario 1: Simple, Well-Defined Work

**Example:** "Update footer copyright year and add privacy link"

**Approach:**

* Work is clear and specific
* No unknowns or dependencies
* Quick change with minimal testing
* **Size:** XS (0-30 minutes)

### Scenario 2: Moderate Complexity

**Example:** "Add product filtering by category on shop page"

**Approach:**

* Requires backend query changes and frontend UI
* Existing patterns to follow
* Standard testing required
* **Size:** M (3-6 hours)

### Scenario 3: High Complexity

**Example:** "Build custom booking system with availability calendar"

**Approach:**

* Multiple components (calendar, booking form, admin)
* Complex logic (availability, conflicts, notifications)
* Extensive testing needed
* **Break it down:**
  * Calendar UI: L (8-16 hours)
  * Booking logic: XL (24-40 hours)
  * Admin panel: M (3-6 hours)
  * Testing & polish: L (8-16 hours)
  * **Total:** 43-75 hours across multiple sizes

<Warning>
  XXL sizes (40-120 hours) should be rare. If a requirement is XXL, consider breaking it into smaller deliverables to reduce risk and improve scheduling.
</Warning>

### Scenario 4: Unknown or Discovery Work

**Example:** "Investigate API integration options for \[third-party service]"

**Approach:**

* Treat discovery as its own task
* Size the discovery phase separately (usually S or M)
* Estimate the implementation after discovery is complete
* **Discovery:** S (1-2 hours)
* **Implementation:** TBD (after discovery)

## Estimation Best Practices

<AccordionGroup>
  <Accordion title="When in Doubt, Size Up" icon="arrow-up">
    If you're torn between two sizes, choose the larger one. It's better to deliver faster than expected (creating banked time) than to consistently overrun.

    Example: Feels like a large S or small M? → Choose M.
  </Accordion>

  <Accordion title="Break Large Work into Smaller Pieces" icon="scissors">
    Smaller estimates are more accurate than large ones. Instead of one XL task, consider three M tasks. This also improves scheduling flexibility.

    Rule of thumb: If it's XXL, try to split it.
  </Accordion>

  <Accordion title="Compare to Past Work" icon="clock-rotate-left">
    Look at similar completed tasks:

    * How long did they actually take?
    * What was the estimated vs actual?
    * What unexpected issues arose?

    Use history to calibrate your estimates.
  </Accordion>

  <Accordion title="Account for the Unknown" icon="question">
    Factors that increase complexity:

    * Working with unfamiliar tech
    * Client's codebase is messy or undocumented
    * Multiple dependencies or stakeholders
    * High-risk changes (payment, auth, etc.)

    Add buffer by sizing up when these factors are present.
  </Accordion>

  <Accordion title="Remember the 80/20 Split" icon="chart-pie">
    T-shirt sizes include core work AND QA/feedback time. Don't just estimate the happy path—account for:

    * Internal QA finding bugs
    * Client feedback requiring revisions
    * Multiple fix/review rounds

    The 20% buffer is built in, but complex work may need a larger size.
  </Accordion>
</AccordionGroup>

## How Estimates Feed Billing

Estimates directly impact billing through the value-based formula:

```formula theme={null}
Billable = MIN(maximum, MAX(average, actual))
```

**Example: M size (3-6 hours, average 4.5 hours)**

<CardGroup cols={3}>
  <Card title="Efficient Delivery" icon="bolt">
    **Actual:** 3 hours\
    **Billable:** 4.5 hours (average)\
    **Result:** 1.5 hrs banked (profit)
  </Card>

  <Card title="On-Target Delivery" icon="bullseye">
    **Actual:** 5 hours\
    **Billable:** 5 hours (actual)\
    **Result:** No margin, but fair
  </Card>

  <Card title="Overrun" icon="triangle-exclamation">
    **Actual:** 7 hours\
    **Billable:** 6 hours (maximum)\
    **Result:** 1 hr overage (absorbed)
  </Card>
</CardGroup>

**Why this matters:**

* **Underestimating** consistently creates chronic overruns, hurting profitability
* **Overestimating** creates unrealistic client expectations and may lose deals
* **Accurate estimation** balances risk and opportunity

## Tools and Resources

<CardGroup cols={2}>
  <Card title="T-shirt Sizing Guide" icon="ruler" href="/concepts/estimation/t-shirt-sizing">
    Complete reference on size ranges, how to choose, and what's included
  </Card>

  <Card title="Scoping Guide" icon="list-check" href="/concepts/estimation/scoping">
    Best practices for breaking down and defining work before estimating
  </Card>

  <Card title="Billing Model" icon="calculator" href="/concepts/billing/billing-model">
    How estimates feed into the value-based billing formula
  </Card>

  <Card title="Creating Quotes" icon="file-text" href="/user-guide/quotes/creating-quotes">
    Step-by-step guide to applying estimates in quotes
  </Card>
</CardGroup>
