Custom Reports Guide
Last updated: February 12, 2026
Overview
Custom Reports allow you to create personalized analytics views of your organization's engineering data in Span. Build custom tables with the exact metrics, fields, and calculations you need—no predefined templates required.
With Custom Reports, you can:
Select which data fields and metrics to display
Apply filters to focus on specific teams or individuals
Create calculated columns with custom formulas
Configure time ranges for metric analysis
Sort, paginate, and download results as CSV
Share reports publicly or keep them private
Getting Started
Creating Your First Report
Navigate to Custom Reports
Go to Productivity > Custom Reports in the Span navigation menu
Click Create Report
Choose What You're Analyzing
People: Analyze individual contributors and team members
Teams: Analyze team and organizational unit performance
Configure Your Report
Add columns (data fields, metrics, or custom calculations)
Set filters to narrow down results
Configure default time ranges
Set a maximum row limit (1-10,000 rows)
Save and Share
Give your report a descriptive name
Choose visibility:
Private: Only you can see this report
Public: Everyone in your organization can view it
Building Reports
Adding Columns
Custom Reports support four types of columns:
1. Data Fields
Display information directly from your catalog data.
Examples:
Person: Name, Email, Job Title, Team, Tenure, IC Level
Team: Team Name, Path, Parent Team
How to add:
Click Add Column > Field
Select the field from the dropdown
Customize the column name (optional)
2. Metrics
Include any metric available in Span's metrics catalog.
Examples:
Pull Requests Created
PR Cycle Time
Code Review Depth
Commit Frequency
How to add:
Click Add Column > Metric
Search for and select a metric
Set the time range (or use report default)
Choose the aggregation type if applicable (avg, p50, p75, p90, max)
Time Range Options:
Last 7 Days, 2 Weeks, 4 Weeks
Last 3 Months, 6 Months, 12 Months
Last Completed Month/Quarter
Custom date range
3. Percentiles
Show statistical percentiles for any metric.
Use cases:
Compare individuals against team benchmarks
Identify outliers
How to add:
Click Add Column > Percentile
Select the metric
Set the time range
4. Custom Calculations
Create calculated columns using formulas and mathematical operations.
Supported Operations:
Addition:
+Subtraction:
-Multiplication:
*Division:
/Parentheses:
()for order of operations
Example Formulas:
Approval Rate %:
${prs_approved} / ${prs_total} * 100
Average PR Size:
${lines_added} + ${lines_deleted} / ${prs_created}
Productivity Index:
(${commits} * 2 + ${prs_created} * 5) / ${work_days}
How to add:
Click Add Column > Custom
Build your formula using available metric columns
Reference other columns using
${column_name}syntaxName your custom column
Filtering Data
Filters help you focus on specific subsets of data.
Filter Types
Filter TypeAvailable OperatorsExample | ||
Text | Equals, Not Equals, In | Team Name = "Engineering" |
Number | =, ≠, >, ≥, <, ≤ | PRs Created > 50 |
Date | >, ≥, <, ≤ | Tenure ≥ 365 days |
Boolean | Equals, Not Equals | Is Dev Contributor = true |
Team Membership (People) | Is Member Of | Team = "Platform Team" |
Team Hierarchy (Teams) | Is Child Of | Parent = "Engineering" |
Combining Filters
Use AND and OR logic to create complex filters:
AND: All conditions must be true
Example: Team = "Engineering" AND PRs > 50
OR: At least one condition must be true
Example: Team = "Frontend" OR Team = "Backend"
You can nest multiple AND groups within an OR to create sophisticated filtering logic.
Report Settings
Default Time Range
Set the default time period for all metric columns (unless overridden per column).
Maximum Row Limit
Control how many rows are returned (1-10,000 rows).
Higher limits may take longer to load
Consider using filters to narrow results
Using Reports
Viewing Report Results
Once your report is saved:
Navigate to the report from the Custom Reports list
Adjust the time range using the time range selector (overrides default)
Sort columns by clicking column headers
Navigate pages using the pagination controls at the bottom
Downloading Data
Export your report results as CSV:
Open the report
Click the Download button
Your CSV will include all current columns with properly formatted numbers
Managing Reports
Edit Report
Click the Edit button (pencil icon)
Modify columns, filters, or settings
Save changes
Duplicate Report
Click Duplicate to create a copy
Useful for creating variations of existing reports
Delete Report
Click Delete (trash icon)
Only available for reports you created
Email Subscriptions
Subscribe to receive report updates via email:
Open the report
Click Subscribe
Choose frequency (daily, weekly, monthly)
Receive automated email updates with report data
Example Reports
Example 1: Top Contributors by Activity
Asset Type: People
Columns:
Field: Name
Metric: Commits (Last 4 Weeks)
Metric: PRs Created (Last 4 Weeks)
Metric: Code Reviews Given (Last 4 Weeks)
Custom: Total Activity =
${commits} + ${prs_created} + ${reviews_given}
Filters:
Is Dev Contributor = true
Sort: Total Activity (descending)
Use case: Identify most active contributors over the past month
Example 2: Team PR Efficiency Comparison
Asset Type: Teams
Columns:
Field: Team Name
Metric: PR Cycle Time (Last 3 Months, p50)
Metric: PR Merge Rate (Last 3 Months, avg)
Metric: PRs Merged (Last 3 Months)
Filters:
Is Child Of: "Engineering"
Sort: PR Cycle Time (ascending)
Use case: Compare team efficiency and throughput
Example 3: New Team Member Onboarding Progress
Asset Type: People
Columns:
Field: Name
Field: Tenure (days)
Metric: First PR to Merge Time
Metric: PRs Created (Last 7 Days)
Metric: Code Review Participation (Last 7 Days)
Filters:
Tenure < 90 days
Is Member Of: "Your Team"
Sort: Tenure (ascending)
Use case: Track onboarding progress for recent hires