Why Estimation Matters
Good estimation enables:Profitability
Accurate estimates create margin when delivery is efficient
Client Trust
Realistic quotes build confidence and long-term relationships
Capacity Planning
Precise estimates enable better scheduling and resource allocation
Risk Management
Identifying complexity upfront prevents overruns
The Estimation System
CharleOS combines two complementary approaches:- T-shirt Sizing
- Scoping
Relative estimation using standardized time rangesInstead 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
- “Homepage update” → M (3-6 hours)
- Simple, clear, and feeds into billing formula
How It Works Together
The estimation process follows a logical flow:1
Understand the Requirement
Review the client’s request or requirement description. Ask clarifying questions if anything is ambiguous. Understand the desired outcome.
2
Scope the Work
Define what’s included:
- What deliverables are expected?
- What’s explicitly excluded?
- Are there design and development components?
- What dependencies exist?
3
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
4
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?
Estimation in CharleOS
Where Estimates are Used
Quote Requirements
Quote Requirements
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.
Task Creation
Task Creation
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)
Capacity Planning
Capacity Planning
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.
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
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
When in Doubt, Size Up
When in Doubt, Size 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.
Break Large Work into Smaller Pieces
Break Large Work into Smaller Pieces
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.
Compare to Past Work
Compare to Past Work
Look at similar completed tasks:
- How long did they actually take?
- What was the estimated vs actual?
- What unexpected issues arose?
Account for the Unknown
Account for the Unknown
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.)
Remember the 80/20 Split
Remember the 80/20 Split
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
How Estimates Feed Billing
Estimates directly impact billing through the value-based formula:Efficient Delivery
Actual: 3 hours
Billable: 4.5 hours (average)
Result: 1.5 hrs banked (profit)
Billable: 4.5 hours (average)
Result: 1.5 hrs banked (profit)
On-Target Delivery
Actual: 5 hours
Billable: 5 hours (actual)
Result: No margin, but fair
Billable: 5 hours (actual)
Result: No margin, but fair
Overrun
Actual: 7 hours
Billable: 6 hours (maximum)
Result: 1 hr overage (absorbed)
Billable: 6 hours (maximum)
Result: 1 hr overage (absorbed)
- 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
T-shirt Sizing Guide
Complete reference on size ranges, how to choose, and what’s included
Scoping Guide
Best practices for breaking down and defining work before estimating
Billing Model
How estimates feed into the value-based billing formula
Creating Quotes
Step-by-step guide to applying estimates in quotes