Allocation Guide: Refining Your Workstreams
Last updated: January 27, 2026
Span's Allocation feature helps you answer critical questions about your engineering organization:
💰 Where is our engineering capacity actually going?
📊 How much effort is each strategic initiative receiving?
🎯 Are we investing in alignment with our roadmap?
📈 How has our allocation changed over time?
The allocation system connects AI-detected engineering work (workstreams) to your business initiatives (projects), giving you visibility into resource distribution and enabling data-driven planning.
What You'll Achieve
By the end of this guide, you'll be able to:
✅ Create allocation tracking periods
✅ Organize your team into meaningful cohorts
✅ Define your project portfolio
✅ Map engineering work to business initiatives
✅ Track allocation coverage and trends
✅ Generate allocation reports for leadership
Key Concepts
🗓 Refinement Periods
Time-bounded windows for allocation planning and analysis. Think of them as "snapshots" that capture how your team's effort was allocated during a specific timeframe.
Example: "Q1 2024 Allocation" (Jan 1 - Mar 31, 2024)
👥 Cohorts
Team groupings that you define for allocation tracking. Cohorts let you slice allocation by manager, team, or custom groupings.
Examples:
By manager: "Backend Team (John Smith)", "Frontend Team (Jane Doe)"
By team: "Platform Team", "Product Team", "Infrastructure Team"
By specialty: "Mobile Engineers", "Data Engineers"
🎯 Projects (Roadmap Items)
Strategic initiatives or features that represent your business priorities. These are what you want to understand allocation across.
Examples:
"New User Authentication System"
"Mobile App Redesign"
"Performance Optimization Initiative"
"Technical Debt Reduction"
🔗 Mappings
Connections between workstreams and projects that show where engineering effort is being spent.
Example: The "API Development" workstream maps to the "New User Authentication System" project.
Getting Started Workflow
Here's the complete journey from start to finish:
1. Create Refinement Period → 2. Setup Cohorts → 3. Define Projects → 4. Map Workstreams → 5. Analyze & Report
Estimated Time: 1-2 hours for your first allocation setup
Refinement Periods
What They Are
Refinement periods are the foundation of allocation tracking. Each period represents a specific timeframe during which you'll capture how your engineering capacity was distributed across projects.
Creating Your First Refinement Period
Step-by-Step:
Navigate to Investment → Allocation → Refinement
Click "Start New Refinement Period"
Select Date Range:
Start Date: Must be in the past (not future)
End Date: Must be after start date
Maximum Duration: 100 days
⚠ Important: Each period must start exactly where the previous period ended (no gaps allowed)
Click "Create"
💡 Recommended Timeframes:
Quarterly: 90 days aligned with business quarters (recommended)
Monthly: 30 days for more frequent tracking
Sprint-based: 2-4 weeks aligned with agile sprints
Custom: Any duration up to 100 days
Understanding Period Status
Status | Meaning | Can Edit? |
🟢 In Progress | Currently being configured | ✅ Yes |
✅ Completed | Finalized and locked | ❌ No (read-only) |
⚪ Discarded | Abandoned/unused | ❌ No |
Managing Periods
To Discard a Period (if you need to start over):
Open the period
Click Actions → "Discard Period"
Confirm
Create a new period
⚠ Important Rules:
Cannot overlap periods
Cannot have gaps between periods
Cannot edit completed periods
First period can start at any past date
Subsequent periods must be contiguous
Setting Up Cohorts
What Cohorts Do
Cohorts let you track allocation by team segment. They answer questions like:
"How is Jane's team allocating their time?"
"What is the Platform team working on?"
"Where is our backend engineering capacity going?"
Cohort Configuration Options
You have three ways to define cohort membership:
Option 1: By Managers 👔
Best for: Manager-based allocation visibility
Select one or more engineering managers
Automatically includes all their direct reports
Updates dynamically as reporting structure changes
Example: "Backend Team" cohort includes all direct reports of John Smith
Option 2: By Teams/Groups 🏢
Best for: Organizational structure alignment
Select one or more teams from your org chart
Includes all members of those teams
Aligns with existing team boundaries
Example: "Platform" cohort includes everyone on the Platform Engineering team
Option 3: By People 👤
Best for: Custom groupings
Manually select specific individuals
Full control over membership
Useful for cross-functional squads or special projects
Example: "Mobile Squad" cohort with iOS and Android engineers from different teams
Creating Cohorts
Method A: Manual Setup (Full Control)
Start with your refinement period created
Navigate to the Setup tab
Click "Add Cohort"
Configure:
Cohort Name: Give it a descriptive name (must be unique)
Selection Type: Choose Managers, Groups, or People
Select Members: Pick the relevant managers/groups/people
Optional Supervisors: Add supervisors for this cohort (optional)
Click "Save"
Repeat for each cohort you need
Method B: Quick Setup (Automated)
Click "Set all Cohorts" dropdown
Choose one:
"By Manager": Automatically creates one cohort per engineering manager
"By Team": Automatically creates one cohort per organizational team
Review the generated cohorts
Adjust names or membership as needed
Click "Save"
💡 Tip: Quick setup is great for your first time. You can always refine later!
Cohort Rules & Constraints
✅ Allowed:
Multiple cohorts per refinement period
Same person as supervisor in multiple cohorts
Empty supervisors (not required)
❌ Not Allowed:
Same person as member in multiple cohorts (each person can only be in ONE cohort)
Duplicate cohort names within a period
Blank cohort names
Validation: Unassigned People
After creating cohorts, check the "Unassigned People" section at the bottom of the Setup tab.
🟢 Empty list: Perfect! Everyone is assigned to a cohort.
🟡 Names appear: These people aren't in any cohort. Either:
Add them to an appropriate cohort, OR
Intentionally exclude them (e.g., contractors, recent hires without work history)
⚠ Important: Work by unassigned people won't appear in allocation reports!
Example Cohort Structures
Scenario 1: Manager-Based Allocation
✓ Backend Team (Manager: John Smith)
✓ Frontend Team (Manager: Jane Doe)
✓ Mobile Team (Manager: Alex Johnson)
✓ DevOps Team (Manager: Sam Lee)Scenario 2: Team-Based Allocation
✓ Platform Engineering
✓ Product Engineering
✓ Infrastructure
✓ Data Engineering
Scenario 3: Hybrid Approach
✓ iOS Squad (Custom: 5 specific iOS engineers)
✓ Android Squad (Custom: 4 specific Android engineers)
✓ Backend Teams (All backend managers combined)
✓ Platform Teams (Platform team + DevOps team)
Defining Projects
What Projects Represent
Projects are your strategic initiatives—the features, systems, and work products that your business cares about. They answer the question: "What are we building and why?"
Project Hierarchy
Projects support multi-level hierarchies for organization:
📁 Authentication Redesign (Parent)
├─ 📄 Frontend Components (Child - Mappable)
├─ 📄 Backend Services (Child - Mappable)
└─ 📄 Mobile Integration (Child - Mappable)
Key Rule: Only leaf projects (those without children) can have workstreams mapped to them.
Creating Projects
Method A: Manual Creation
Navigate to the Projects tab in your refinement period
Click "Add project"
Enter project details:
Name (required): Clear, descriptive name
Description (optional): Context for stakeholders
To add sub-projects:
Click the "+" button next to a parent project
Enter sub-project details
Repeat for multiple children
Click "Save Projects"
Example:
Name: "User Authentication Redesign"
Description: "Complete overhaul of authentication system with OAuth2, SSO, and MFA support. Target: Q1 2024 launch."
Method B: Bulk Import (CSV)
Best for: Large project portfolios or existing roadmap data
Click "Load from CSV"
Prepare CSV with these columns:
name: Project name (required)description: Project description (optional)parent_name: Parent project name for hierarchies (optional)order: Display order number (optional)
Example CSV:
name,description,parent_name,order
Authentication Redesign,Complete auth system overhaul,,1
Frontend Components,React login/signup flows,Authentication Redesign,1
Backend Services,OAuth2 and SSO implementation,Authentication Redesign,2
Mobile Integration,iOS and Android auth flows,Authentication Redesign,3
Performance Optimization,Site speed improvements,,2
Upload the CSV file
Review imported projects
Click "Save"
Special Project: "Other"
The system automatically includes an "Other" project as a catch-all for:
Ad-hoc work
Maintenance tasks
Exploratory work
Unplanned initiatives
💡 Tip: It's okay to have work in "Other"—typically 10-20% of engineering effort is miscellaneous!
Project Management
Editing Projects:
Can change name and description anytime
Can add or remove children
Cannot change parent after creation (parent relationship is immutable)
Deleting Projects:
Can delete projects that have no workstream mappings
Must unmap workstreams first before deleting
Organizing Projects:
Use
orderfield to control display sequenceGroup related projects together with parent-child relationships
Keep hierarchy depth reasonable (2-3 levels max recommended)
Project Naming Best Practices
✅ Good Project Names:
"Mobile App Redesign - iOS"
"Customer Dashboard v2.0"
"Payment Gateway Integration"
"Technical Debt: Database Performance"
❌ Avoid:
"Work" (too generic)
"Stuff" (not descriptive)
"John's Project" (not sustainable)
"TBD" (define before mapping)
Example Project Structures
Product-Focused Portfolio:
✓ New User Dashboard
✓ Advanced Reporting Features
✓ Mobile App Enhancements
├─ Push Notifications
├─ Offline Mode
└─ UI Refresh
✓ API v2.0 Migration
✓ Other
Platform-Focused Portfolio:
✓ Infrastructure Modernization
├─ Kubernetes Migration
├─ CI/CD Pipeline Improvements
└─ Monitoring & Alerting
✓ Developer Experience
├─ Internal Tooling
└─ Documentation
✓ Security & Compliance
✓ Performance Optimization
✓ Other
Mapping Workstreams to Projects
What Mapping Does
Mapping connects actual engineering work (workstreams detected by AI) to business initiatives (your defined projects). This is where allocation becomes visible.
Before Mapping: You see workstreams like "Backend API Work" with 45 FTE days
After Mapping: You see "Backend API Work → User Authentication Project" = 45 FTE days allocated
The Mapping Interface
The mapping UI has three key panels:
┌─────────────────────────────────────────────────┐
│ Cohort: Platform Team Coverage: 67% │
├──────────────┬──────────────────┬───────────────┤
│ Projects │ Workstreams │ Detail View │
│ (Left) │ (Center) │ (Right) │
│ │ │ │
│ □ Auth │ ☑ Backend API │ Backend API │
│ □ Mobile │ □ Frontend UI │ 45 FTE Days │
│ □ Perf Opt │ □ Mobile Dev │ │
│ │ │ Map to: │
│ │ │ • Auth ← │
│ │ │ • Mobile │
└──────────────┴──────────────────┴───────────────┘
Step-by-Step Mapping Workflow
Select Cohort
Use dropdown at top to choose which cohort to map
You'll map each cohort independently
Browse Workstreams (Center Panel)
See all workstreams for selected cohort
Expand to view sub-workstreams
Status indicators show mapping state:
🟢 Complete: Fully mapped
🟡 Partial: Some work mapped, some unmapped
🟣 Indirect: Mapped through children
⚪ Not Mapped: No allocation
Click a Workstream
Detail panel opens on right
Shows:
Total FTE days
Current mappings (if any)
Available projects to map to
Option to add mapping rules
Map to a Project
Option A: Click a project name to map entire workstream
Option B: Add rules (see below) for partial mapping
Save Mappings
Click "Save" button to persist changes
Coverage percentage updates automatically
Repeat for all workstreams and cohorts
Mapping Types
Type 1: General Mappings (Complete)
What: Map an entire workstream to a single project
When: The workstream clearly belongs to one initiative
How: Simply click the project name
Example:
Workstream: "OAuth Implementation"
Project: "Authentication Redesign"
Mapping: 100% of workstream → Project
Type 2: Split Mappings (Partial)
What: Map a workstream to multiple projects
When: Work spans multiple initiatives
How: Click multiple project names
Example:
Workstream: "API Development"
Mappings:
• 60% → "Authentication Redesign"
• 40% → "Mobile App Integration"
Type 3: Rule-Based Mappings (Precise)
What: Map specific issues or PRs to projects
When: Need fine-grained control
How: Add mapping rules with specific work item IDs
Example:
Workstream: "Frontend Development"
Rules:
• Issues #123, #124, #125 → "User Dashboard"
• PR #456, #457 → "Reporting Features"
• (Remaining work) → "Other"
Adding Mapping Rules
Rules let you precisely control which work items count toward which projects.
Steps to Add Rules:
Click workstream in center panel
Click "Add Rules" in detail panel
Choose rule type:
Issue Asset IDs: Map specific issues
Pull Request Asset IDs: Map specific PRs
Select work items:
Browse or search issues/PRs
Select checkboxes for items to include
Click "Add to Rule"
Assign to Project:
Click project name
Rule is created
Repeat for additional rules
Click "Save"
Rule Types:
Rule Type | Use Case | Example |
Issue IDs | Map by features/tickets | Issues #100-110 → "Auth Project" |
PR IDs | Map by code changes | PRs #500-520 → "Performance" |
No Rules (General) | Map entire workstream | All work → "Mobile App" |
Conflict Resolution
Scenario: You try to add a general mapping, but rules already exist
System Response:
⚠ "This workstream already has rule-based mappings. Adding a general mapping will replace them."
Your Options:
Cancel: Keep existing rules
Confirm: Replace rules with general mapping
Rule: You cannot have both general mappings AND rules on the same workstream. Choose one approach.
Understanding Mapping Status
Workstreams show visual indicators of mapping state:
IndicatorStatusMeaning | ||
🟢 Green | Complete | 100% of workstream effort is mapped |
🟡 Yellow | Partial | Some effort mapped, some unmapped |
🟣 Purple | Indirect | Mapped via child workstreams |
⚪ White | Not Mapped | No mapping exists |
💡 Goal: Aim for as many green indicators as possible (high coverage).
Mapping Validation
The system prevents invalid mappings:
❌ Cannot Map:
Non-leaf projects (only leaf projects can have mappings)
Same workstream to same project twice (duplicates)
Rules when general mapping exists (conflict)
General mapping when rules exist (conflict)
✅ Can Map:
Multiple projects to same workstream (split allocation)
Same project to multiple workstreams (consolidation)
Mix of general and rule-based across different workstreams
Update/change mappings anytime during "In Progress" periods
Understanding Coverage
What Coverage Measures
Allocation Coverage = Percentage of engineering effort that has been mapped to known projects.
Formula:
Coverage % = (Mapped FTE Days / Total FTE Days) × 100
Example:
Total Effort: 100 FTE days
Mapped: 85 FTE days
Coverage: 85%
Coverage Levels
Coverage | Interpretation | Action Needed |
80-100% 🟢 | Excellent visibility | Maintain |
60-79% 🟡 | Good, some gaps | Map remaining high-value work |
40-59% 🟠 | Moderate gaps | Review unmapped workstreams |
<40% 🔴 | Low visibility | Define more projects or map existing |
Coverage Metrics
The system tracks coverage at multiple levels:
Cohort-Level Metrics
Shown in the mapping interface header:
Platform Team
├─ Total FTE Days: 120
├─ Mapped FTE Days: 90
├─ Coverage: 75%
├─ Total Workstreams: 15
└─ Mapped Workstreams: 12 (80%)
Project-Level Metrics
Shown in project details:
Authentication Redesign
├─ Mapped FTE Days: 45
├─ Mapped Workstreams: 5
└─ Contributing Cohorts: 3
Organization-Level Metrics
Aggregate view across all cohorts:
Q1 2024 Allocation
├─ Total Organizational Effort: 500 FTE days
├─ Mapped: 425 FTE days (85%)
├─ By Project:
│ ├─ Auth Redesign: 120 FTE days (24%)
│ ├─ Mobile App: 95 FTE days (19%)
│ ├─ Performance: 80 FTE days (16%)
│ └─ Other: 130 FTE days (26%)
└─ Unmapped: 75 FTE days (15%)
Improving Coverage
Strategy 1: Define Missing Projects
If you see significant unmapped work:
Review unmapped workstreams
Identify common themes
Create projects for major initiatives
Map workstreams to new projects
Strategy 2: Use "Other" Project
For miscellaneous work that doesn't fit existing projects:
Map to the "Other" project
Acceptable for 10-20% of effort
Review "Other" periodically for patterns
Strategy 3: Refine Workstream Mappings
Some workstreams might actually belong to existing projects:
Review workstream details
Check recent issues and PRs
Determine correct project
Create mapping
Strategy 4: Accept Some Unallocated Work
Not all work needs to be allocated:
Exploratory work
Learning and development
Very minor tasks
Typically <10% is acceptable
Coverage Reports
Access detailed coverage data via:
In-App Reports:
Cohort summary view
Project detail pages
Allocation trends over time
Exportable CSV reports
API Access:
GET /api/v1/investment/ai-workstreams/refinement/{periodId}/coverage
Best Practices
Planning Phase
1. Align With Business Planning
Time refinement periods with strategic planning cycles (quarters, releases)
Involve product/engineering leadership in project definition
Ensure projects match roadmap priorities
2. Define Cohorts Thoughtfully
Choose cohort structure that matches how you make decisions
Manager-based: Good for people management
Team-based: Good for organizational visibility
Consider creating 5-10 cohorts (not too few, not too many)
3. Start Simple
First time? Use quick setup ("Set all Cohorts by Manager")
Define 10-15 core projects initially
Expand sophistication over time
4. Communicate
Inform teams about allocation tracking
Explain why it matters
Set expectations for coverage goals
Execution Phase
5. Be Comprehensive
Aim for 70-80%+ coverage
Define projects for all major initiatives
Use "Other" for miscellaneous work (<20%)
6. Map Iteratively
Start with largest workstreams (most FTE days)
Map obvious connections first
Refine details later
7. Use Rules Judiciously
General mappings work for most cases
Use rules only when precision is critical
Rules add maintenance overhead
8. Regular Updates
Update mappings as priorities shift
Review coverage weekly during refinement period
Adjust cohorts if team structure changes
Analysis Phase
9. Track Coverage Trends
Monitor coverage % over time
Investigate significant drops
Celebrate improvements
10. Compare Periods
How did allocation shift quarter over quarter?
Which projects grew/shrank?
Are investments aligned with strategy?
11. Validate Data
Spot-check mappings against actual work
Ask teams if allocation matches their perception
Refine definitions based on feedback
12. Share Insights
Create executive summaries
Highlight key findings
Use data to drive conversations
Maintenance Phase
13. Complete Periods Promptly
Mark periods as complete when finalized
Locks data for historical accuracy
Enables period-over-period comparisons
14. Learn and Iterate
What worked well? What didn't?
How can next period be better?
Document lessons learned
15. Automate Where Possible
Use quick setup for cohorts
Bulk import projects from roadmap tools
Export reports for distribution
Common Scenarios
Scenario 1: First-Time Setup
Goal: Get allocation tracking running for the first time
Steps:
✅ Create Q1 refinement period (3 months)
✅ Use "Set all Cohorts by Manager" quick setup
✅ Define 10-12 core projects based on current roadmap
✅ Map top 5 workstreams (by FTE days) to projects
✅ Aim for 60-70% coverage initially
✅ Review with leadership
✅ Refine based on feedback
Time Investment: 2-3 hours
Scenario 2: Quarterly Allocation
Goal: Track allocation every quarter
Steps:
✅ Complete previous quarter's refinement period
✅ Create new refinement period (start = previous end date)
✅ Copy cohorts from previous quarter (or adjust for team changes)
✅ Update projects (add new initiatives, remove completed ones)
✅ Map workstreams to current projects
✅ Aim for 75-85% coverage
✅ Generate quarter-over-quarter comparison report
✅ Share with stakeholders
Time Investment: 1-2 hours
Scenario 3: Mid-Quarter Reallocation
Goal: Team priorities shifted, need to remap
Steps:
✅ Open current refinement period (must be "In Progress")
✅ Add new projects for changed priorities
✅ Update workstream mappings
✅ Review coverage (ensure still high)
✅ Save changes
✅ Document reason for changes
Time Investment: 30-60 minutes
Scenario 4: Cross-Functional Projects
Goal: Map work from multiple cohorts to a shared project
Steps:
✅ Define project once in refinement period
✅ For each cohort:
Select cohort
Find relevant workstreams
Map to shared project
✅ System automatically aggregates across cohorts
✅ View project detail to see total effort from all cohorts
Result: Project shows combined FTE days from all contributing cohorts
Scenario 5: Detailed Financial Tracking
Goal: Understand cost of each initiative for financial reporting
Steps:
✅ Ensure cost estimates enabled in organization settings
✅ Create refinement period with financial focus
✅ Define projects matching budget line items
✅ Map workstreams with high precision (use rules if needed)
✅ Aim for 90%+ coverage (financial accuracy matters)
✅ Export allocation report with FTE Days Cost
✅ Share with finance team
Output: Cost allocation by project for capitalization or budget tracking
Scenario 6: Team Restructure
Goal: Org chart changed mid-quarter, need to adjust
Options:
Option A - Continue Current Period:
Keep cohorts as-is (snapshot in time)
Accept that period reflects old structure
New structure will appear in next period
Option B - Restart Period:
Discard current period
Create new period with new cohorts
Remap from scratch
Use if restructure is major
Recommendation: Usually Option A (less work, preserves history)
Troubleshooting
Error: "Refinement period overlaps with last refinement period"
Cause: New period's dates overlap or have gap with previous period
Solution:
Check previous period's end date
Ensure new period starts on next day after previous end
Example: Previous ends 2024-03-31 → New starts 2024-04-01
Prevention: System should auto-suggest correct start date
Error: "Member person IDs are duplicated across cohorts"
Cause: Same person assigned to multiple cohorts
Solution:
Review cohort configurations
Find person appearing in multiple cohorts
Decide which cohort they should belong to
Remove from all others
Save cohorts
Prevention: Use quick setup options which enforce non-overlapping membership
Error: "Have to include parent roadmap item in the request"
Cause: Trying to save child projects without including parent
Solution:
When defining projects with hierarchy, include parent in same save operation
If editing existing children, fetch and include parent in request
Use UI (which handles this automatically) rather than API
Prevention: Always work with complete project trees
Error: "Cannot be moved to a different parent"
Cause: Attempting to change a project's parent relationship
Solution:
Parent relationships are immutable
Create new project with correct parent
Map workstreams to new project
Delete old project (if no mappings remain)
Prevention: Plan project hierarchy carefully before creation
Issue: Coverage is Low (<50%)
Diagnostic Questions:
Are all major projects defined?
Are there workstreams you don't recognize?
Is work happening outside defined projects?
Solutions:
Review Unmapped Workstreams: Sort by FTE days descending, examine top unmapped items
Define Missing Projects: Create projects for initiatives not yet captured
Map to "Other": For miscellaneous work, map to "Other" project
Check Cohort Membership: Ensure all active engineers are in cohorts
Acceptable Level: 70-85% coverage is realistic; 100% is usually unnecessary
Issue: Workstream Name is Confusing
Problem: AI-generated workstream names aren't intuitive
Solution:
Navigate to workstream detail page (not in refinement)
Edit workstream name and description
Save changes
Customized name appears in all future refinement periods
Note: This is separate from allocation—edit workstreams in main workstreams view
Issue: Project Should Be Split
Problem: Realized a project is too broad, should be multiple projects
Solution:
In current refinement period, create new sub-projects under the broad project
Or create peer projects if not hierarchical
Review workstream mappings
Remap workstreams to more specific projects
Save changes
Prevention: Start with more granular projects; easier to combine than split
Issue: Team Member Missing from Cohorts
Problem: Person's work not appearing in allocation
Check:
Go to refinement period → Setup tab
Scroll to "Unassigned People" section
Look for person's name
Solution:
Add person to appropriate cohort
Save cohort configuration
Refresh mapping view
Person's workstreams now appear
Prevention: Review "Unassigned People" before starting mappings
Issue: Want to Change Previous Period
Problem: Realized mistake in completed period
Reality: Completed periods are immutable (locked)
Options:
Accept: Historical data reflects state at that time
Document: Note the issue for future reference
Correct in Next Period: Apply learnings to next refinement period
Prevention: Thoroughly review before completing periods
Advanced Topics
Integration with External Tools
Jira/Linear Integration:
Workstreams automatically link to tracked issues
Use issue IDs in mapping rules
Reflects actual work management structure
GitHub/GitLab Integration:
Pull requests associated with workstreams
Use PR IDs in mapping rules for code-level precision
Cost Management Systems:
Export FTE Days Cost for capitalization
Map to budget line items via project naming
API Usage
For programmatic access or custom reporting:
Base Endpoint:
/api/v1/investment/ai-workstreams/refinement
Common Operations:
# List all refinement periods
GET /api/v1/.../refinement/
# Get cohorts for period
GET /api/v1/.../refinement/{periodId}/cohorts
# Get mappings for cohort
GET /api/v1/.../refinement/{periodId}/cohorts/{cohortId}/mappings-data
# Update mappings
POST /api/v1/.../refinement/{periodId}/cohorts/{cohortId}/mappings-data
Authentication: Requires ManageInvestment permission
Documentation: See API reference in platform settings
Permissions & Access Control
Who Can Access Allocation Features:
Organization administrators
Users with
ManageInvestmentpermission
Permission Scope:
Global (all-or-nothing, cannot scope to specific cohorts)
Includes: create periods, define cohorts, manage projects, update mappings
Audit Trail:
All changes tracked with timestamps
Creator information available
Changes are transactional (atomic)
Quick Reference
Refinement Period Checklist
Create period with appropriate date range
Define cohorts (use quick setup if first time)
Verify no unassigned people
Define projects based on current roadmap
Map top workstreams first (by FTE days)
Aim for 70-85% coverage
Review with stakeholders
Make final adjustments
Complete period when finalized
Export report for distribution
Coverage Goals by Organization Size
Org Size | Recommended Coverage | Notes |
Small (<50 engineers) | 70-80% | More ad-hoc work acceptable |
Medium (50-200 engineers) | 75-85% | Balance structure and flexibility |
Large (>200 engineers) | 80-90% | Higher accountability needs |
Time Estimates
Activity | First Time | Subsequent Times |
Create period | 5 min | 2 min |
Setup cohorts | 30-60 min | 10-15 min |
Define projects | 30-60 min | 15-30 min |
Map workstreams | 60-90 min | 30-45 min |
Total | 2-4 hours | 1-2 hours |
Common Mistakes to Avoid
❌ Creating future-dated refinement periods
❌ Overlapping people across cohorts
❌ Mapping to non-leaf projects
❌ Forgetting to save changes
❌ Completing periods prematurely
❌ Skipping "Unassigned People" review
❌ Defining too few projects (everything goes to "Other")
❌ Over-engineering with excessive rules
Getting Help
Support Resources
In-App Help: Click "?" icon in any refinement screen
Customer Success: Contact your dedicated CSM
Email Support: support@span.app
Requesting Features
Have ideas for improving allocation tracking? We'd love to hear from you! Reach out to your Span rep.
Summary
Span's Allocation feature provides powerful visibility into engineering resource distribution. By following this guide, you'll be able to:
✅ Track where engineering capacity is going
✅ Align work with strategic priorities
✅ Measure investment across initiatives
✅ Report allocation to leadership
✅ Optimize resource planning over time
Next Steps:
Create your first refinement period
Set up cohorts using quick setup
Define your top 10 projects
Map your largest workstreams
Review coverage and refine
Remember: Start simple, iterate, and improve over time. Your first allocation won't be perfect—and that's okay!
Allocation Guide last updated: January 2026
Questions? Contact support@span.app