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.

ToolConnectionWhat we measureInactive-seat naming?
GitHub CopilotGitHub OAuth (org admin)Seat-level activity, acceptance rate, hours-saved benchmarkYes — named users
Microsoft 365 CopilotGraph API (org admin)Seat-level activity, license assignment, last-usedYes — named users
CursorCursor Admin APISeat-level activity (when key provided)When admin key connected
OpenAI APIOpenAI 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 ClaudeStandard sk-ant- keys (validate-only); Anthropic for Work Admin API on the roadmapConnection-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 GeminiGoogle Workspace OAuth (Admin SDK + Reports API) — manual spend fallbackPer-user Gemini activity when a Workspace admin connects; otherwise org-level monthly spendSeat-level when Workspace admin connects
Slack / Jira / OktaOAuth connection-onlyConnection signal, no usage yetRoadmap

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.

ToolBenchmark usedSourcePublished
GitHub CopilotEngineering hours savedGitHub Octoverse Report 20232023
OpenAI API5 min saved per API requestMIT/Stanford/Harvard joint study 20242024
Claude API8 min saved per API requestAnthropic internal analysis 20242024
GeminiManual spend entry — no usage APIGoogle 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.

GHGitHub Copilot — hours saved
3.6 hrs/week per developer

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.

PublishedNovember 2023
Sample size10,000+ developers
TypeGitHub commissioned survey
How Rorva uses this:We use 3.6 hrs/week as the baseline and adjust it up or down based on your team's actual acceptance rate. Higher acceptance rate than industry average of 27%, we assume more hours saved. Lower, we assume fewer.
GHGitHub Copilot — acceptance rate
27% industry average

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.

PublishedJune 2023
TypeAggregate enterprise data
How Rorva uses this:Your real acceptance rate comes directly from GitHub's API. We compare it to the 27% benchmark to calculate whether your team is above or below average efficiency.
OAOpenAI API — productivity impact
5 min saved per API request

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.

Published2024
TypeAcademic research study
How Rorva uses this: We multiply your total API requests by 5 minutes to estimate time saved. Your real request count and cost come directly from the OpenAI usage API when you connect your account.
ANClaude API — productivity impact
8 min 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.

Published2024
TypeVendor internal analysis
How Rorva uses this: We multiply your total API requests by 8 minutes (longer than OpenAI because Claude handles more complex tasks per request). Your real request count and cost come from the Anthropic usage API.
GEGemini — via Google Workspace Admin SDK + Reports API
Seat-level when Workspace admin connects

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.

Primary sourceGoogle Admin SDK
Scopes requireddirectory.user.readonly +
reports.usage.readonly
FallbackManual monthly spend
TypeVendor API + manual fallback
Honest caveat:the Workspace OAuth path is shipped end-to-end but not yet production-attested with a paying customer. The Reports API can return 403 on Workspace plans that don't expose Gemini activity, in which case we automatically fall back to the manual-spend model and label the data source accordingly.
RFAttribution factor
70% of gains attributed to AI

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.

SourceRorva methodology
Aligned withMcKinsey AI ROI framework (65-75% range)
Also used byGartner AI productivity model
Why this matters: Using 100% attribution would make ROI numbers look better but would not survive board scrutiny. 70% is conservative enough to be defensible while still reflecting real value.
WKWorking weeks per year
48 weeks

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%.

SourceStandard HR assumption
Used byMost finance and HR departments for annual productivity calcs
FCSpend forecast — linear regression on last 3 months
Last 3 months, project next 12

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.

SourceRorva methodology
AlgorithmSimple linear regression
Confidence ratingslow / medium / high
Medium and high projections are included in the monthly board report email when at least one connected tool has 3+ months of history.
DTDepartment usage defaults

When no manual allocation is set Rorva uses these industry-sourced defaults. They are always labelled as estimated and can be overridden in Settings.

ToolPrimary deptDefault %Source
GitHub CopilotEngineering90%GitHub Octoverse 2023
OpenAI APIEngineering70%OpenAI enterprise usage patterns 2024
Claude APIEngineering55%Anthropic customer use case analysis 2024
Gemini APIEngineering70%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.