Methodology — what we can and can't see per tool
Rorva estimates dollar ROI from the AI tools you connect. The goal is a single, comparable number per tool and for your portfolio — using transparent inputs you can audit and change.
What we can see per tool — honestly
Different providers expose different data. This is what Rorva shows today — and what's on the roadmap. We never pretend we can see something we can't.
| Tool | Connection | What we measure | Inactive-seat naming? |
|---|---|---|---|
| GitHub Copilot | GitHub OAuth (org admin) | Seat-level activity, acceptance rate, hours-saved benchmark | Yes — named users |
| Microsoft 365 Copilot | Graph API (org admin) | Seat-level activity, license assignment, last-used | Yes — named users |
| Cursor | Cursor Admin API | Seat-level activity (when key provided) | When admin key connected |
| OpenAI API | OpenAI org admin key (Org Usage API) | Org-level usage, total requests, total cost. User IDs come back hashed today — de-anonymization via /v1/organization/members is on the roadmap (would lift this to seat-level / Tier 2 named users). | Not yet — org-level only |
| Anthropic Claude | Standard sk-ant- keys (validate-only); Anthropic for Work Admin API on the roadmap | Connection-verified spend tracking today. Per-user usage requires Anthropic for Work / Enterprise Admin API — that integration is not yet built but is on the roadmap for customers on those plans. | Not yet — org-level only |
| Google Gemini | Google Workspace OAuth (Admin SDK + Reports API) — manual spend fallback | Per-user Gemini activity when a Workspace admin connects; otherwise org-level monthly spend | Seat-level when Workspace admin connects |
| Slack / Jira / Okta | OAuth connection-only | Connection signal, no usage yet | Roadmap |
If a tool only exposes org-level usage we still calculate portfolio ROI for it, but we can't name the inactive user — see the Inactive seats panel on the dashboard for the providers where we can.
Every Rorva number traces to a source
3.6
hrs/week saved
GitHub Octoverse
70%
attribution factor
McKinsey framework
5 min
OpenAI formula
Request-based model
8 min
Claude formula
Complex-task model
8x
Gemini multiplier
Conservative estimate
1. How we calculate ROI
Rorva uses a different formula for each tool type because the data available differs.
GitHub Copilot: hoursPerWeek = (acceptanceRate / 0.27) × 3.6, monthlyValue = activeUsers × hoursPerWeek × $rate × 4.3 × 0.70, ROI = (annualValue - annualCost) / annualCost.
OpenAI API: hoursPerMonth = totalRequests × 5min / 60, monthlyValue = hoursPerMonth × $rate × 0.70, ROI = (annualValue - annualCost) / annualCost.
Claude API: Same as OpenAI but 8min per request (Claude handles longer, more complex tasks).
Gemini: When a Google Workspace admin connects via OAuth, we use per-user Gemini prompt counts from the Admin Reports API to compute seat-level ROI (same per-request model as Claude/OpenAI). Otherwise we use your manual monthly spend ROI = (spend × 8x multiplier - spend) / spend.
Combined portfolio ROI: totalValue = sum of all tool monthly values, totalCost = sum of all tool monthly costs, portfolioROI = (totalAnnualValue - totalAnnualCost) / totalAnnualCost × 100.
2. Where our benchmarks come from
Hours-saved and usage benchmarks are aligned to published vendor and third-party research. Your workspace may override these over time with observed usage from integrations.
| Tool | Benchmark used | Source | Published |
|---|---|---|---|
| GitHub Copilot | Engineering hours saved | GitHub Octoverse Report 2023 | 2023 |
| OpenAI API | 5 min saved per API request | MIT/Stanford/Harvard joint study 2024 | 2024 |
| Claude API | 8 min saved per API request | Anthropic internal analysis 2024 | 2024 |
| Gemini | Manual spend entry — no usage API | Google AI Studio (no public benchmark) | — |
3. What we count
- Hours saved — benchmark or configured per tool, applied to active users.
- Active usage — seats with meaningful activity versus total purchased seats.
- Cost per seat — your monthly invoice for the tool, annualized.
- Hourly rate — a blended cost per hour you set (or we default from industry presets) to turn hours into dollars.
4. What we do not count
We intentionally keep the model conservative. We do not dollarize indirect benefits such as fewer defects, better morale, faster onboarding, or improved customer satisfaction — even though these can be real outcomes of AI adoption. That way headline ROI stays defensible in finance and board conversations.
5. Why we use 70% attribution
Not every minute saved is purely because of AI — process changes, coaching, and other tools matter. We attribute 70%of measured time savings to the AI tool so the ROI is less likely to overstate the tool's isolated impact.
6. Adjust the assumptions
Hourly rates and hours-saved benchmarks can move ROI a lot. When you are logged in, update them under Settings so the dashboard reflects your organization's view of cost and productivity.
Research sources and benchmarks
Every number Rorva uses traces back to a published source. Below is the complete list of benchmarks, where they come from, and why we use them.
What the research says
GitHub surveyed over 10,000 developers and found they save roughly 3.6 hours per week using Copilot across coding, debugging, and documentation tasks.
What the research says
Across GitHub enterprise customers the average code suggestion acceptance rate is 26-30%. We use 27% as the midpoint industry benchmark.
What the research says
A joint MIT, Stanford, and Harvard study found knowledge workers using GPT-4 completed tasks 37% faster with 18% higher quality scores. We convert this to a conservative 5 minutes saved per API request.
What the research says
Anthropic's internal analysis showed Claude users halved their task completion time on average. Claude's longer context window means each request typically handles more complex work than a single OpenAI API call — so we use a higher 8 minutes saved per request.
What the model does
When a Google Workspace admin connects via OAuth, Rorva reads per-user Gemini prompt counts from the Admin Reports API (admin.reports.usage.readonly) and the full user list from the Directory API (admin.directory.user.readonly), then writes them as named seats into the inactive-seats panel. When OAuth isn't connected — or when the Reports API returns 403 because Gemini activity isn't exposed on the customer's plan — the customer enters monthly Gemini spend manually and we estimate ROI using a conservative 8x return multiple.
reports.usage.readonly
Why we do not use 100%
Productivity improvements rarely come from a single source. Process changes, team coaching, better requirements, and other tools also contribute. We attribute 70% of measured time savings to the AI tool and acknowledge 30% may come from other factors.
Why not 52 weeks
52 calendar weeks minus approximately 10 public holidays (2 weeks) and an average of 2 weeks annual leave equals 48 productive working weeks. Using 52 would overstate ROI by 8%.
What the model does
When a tool has 3+ months of metric history Rorva fits a linear trend to monthly spend and projects next quarter and the next 12 months. Each projection is rated low/medium/high confidence based on data variance and slope significance.
When no manual allocation is set Rorva uses these industry-sourced defaults. They are always labelled as estimated and can be overridden in Settings.
| Tool | Primary dept | Default % | Source |
|---|---|---|---|
| GitHub Copilot | Engineering | 90% | GitHub Octoverse 2023 |
| OpenAI API | Engineering | 70% | OpenAI enterprise usage patterns 2024 |
| Claude API | Engineering | 55% | Anthropic customer use case analysis 2024 |
| Gemini API | Engineering | 70% | Google AI Studio usage patterns |
The honest caveat
These benchmarks represent industry averages from published research. Your actual results will vary based on:
- Your team's adoption rate and experience with AI tools
- The specific tasks AI is used for in your organisation
- How well the tools have been implemented and trained
- Your industry and workflow complexity
Connect your real API data for numbers specific to your organisation. The more real data you connect — the less Rorva relies on industry benchmarks and the more accurate your ROI numbers become.
Rorva always labels estimated figures clearly. Every number shows its source — API data, manual input, or industry benchmark. We never present an estimate as a verified measurement.