{"id":49719154,"url":"https://github.com/jukkan/dataverse-capacity","last_synced_at":"2026-05-08T22:37:27.318Z","repository":{"id":327122941,"uuid":"1107946949","full_name":"jukkan/dataverse-capacity","owner":"jukkan","description":"Calculator for the Dataverse capacity you get from different Microsoft product licenses.","archived":false,"fork":false,"pushed_at":"2026-04-20T10:53:48.000Z","size":268,"stargazers_count":5,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-20T12:40:36.468Z","etag":null,"topics":["copilotstudio","dataverse","dynamics365","licensing","lowcode","powerplatform","software-licensing"],"latest_commit_sha":null,"homepage":"https://dataverse.licensing.guide/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jukkan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-01T20:25:19.000Z","updated_at":"2026-04-20T10:53:52.000Z","dependencies_parsed_at":"2025-12-05T09:06:09.892Z","dependency_job_id":null,"html_url":"https://github.com/jukkan/dataverse-capacity","commit_stats":null,"previous_names":["jukkan/dataverse-capacity"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jukkan/dataverse-capacity","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jukkan%2Fdataverse-capacity","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jukkan%2Fdataverse-capacity/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jukkan%2Fdataverse-capacity/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jukkan%2Fdataverse-capacity/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jukkan","download_url":"https://codeload.github.com/jukkan/dataverse-capacity/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jukkan%2Fdataverse-capacity/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32800678,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"ssl_error","status_checked_at":"2026-05-08T08:22:45.650Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["copilotstudio","dataverse","dynamics365","licensing","lowcode","powerplatform","software-licensing"],"created_at":"2026-05-08T22:37:26.650Z","updated_at":"2026-05-08T22:37:27.312Z","avatar_url":"https://github.com/jukkan.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dataverse Capacity Calculator\r\n\r\nAn interactive web-based calculator for estimating Microsoft Dataverse capacity based on Power Platform and Dynamics 365 product licenses.\r\n\r\n[**OPEN CALCULATOR**](https://dataverse.licensing.guide/)\r\n\r\n[Read intro blog post](https://licensing.guide/december-2025-dataverse-default-capacity-changes-illustrated/)\r\n\r\n![Dataverse Capacity Calculator](https://github.com/user-attachments/assets/95933195-0fc4-4b56-b3f2-2a84013a2408)\r\n\r\n## Features\r\n\r\n- **Interactive Product Selection**: Choose from all major Dynamics 365 and Power Platform products\r\n- **Real-time Calculations**: See capacity updates instantly as you add products and adjust user counts\r\n- **Visual Capacity Gauges**: Clear visualization of default vs. per-user capacity allocation\r\n- **Detailed Breakdown Table**: Line-by-line breakdown of capacity contributions\r\n- **Helpful Tooltips**: Hover over products to see capacity details\r\n- **\"How it Works\" Guide**: Built-in explanation of Dataverse capacity licensing\r\n- **Mobile Responsive**: Works on desktop and mobile devices\r\n- **Print-friendly**: Clean output for printing or sharing\r\n\r\n## Capacity Calculation\r\n\r\n### How Capacity Works\r\n\r\n1. **Default Capacity**: When you license any Dataverse product, your tenant receives a one-time default capacity allocation. The highest tier product determines this amount.\r\n\r\n2. **Per-User Accrual**: Many products add additional capacity for each licensed user. This stacks across all products.\r\n\r\n3. **Tier Priority** (highest to lowest):\r\n   - D365 ERP Premium (125 GB DB / 110 GB File)\r\n   - D365 ERP Standard (90 GB DB / 80 GB File)\r\n   - D365 CRM (30 GB DB / 40 GB File)\r\n   - Power Platform Premium (20 GB DB / 40 GB File)\r\n   - Power Platform Workload (15 GB DB / 20 GB File)\r\n\r\n### Calculation Logic\r\n\r\n```mermaid\r\nflowchart TD\r\n    INPUT[\"Input: selected licenses, counts,\u003cbr/\u003eadd-on packs, PAYG environments\"]\r\n\r\n    INPUT --\u003e LOOP[\"For each license entry\"]\r\n    LOOP --\u003e LOOKUP{\"SKU found\u003cbr/\u003ein catalog?\"}\r\n    LOOKUP -- No --\u003e ERR[\"Log error, skip\"]\r\n    LOOKUP -- Yes --\u003e CICHECK{\"Requires\u003cbr/\u003eCI base?\"}\r\n    CICHECK -- \"Yes, base missing\" --\u003e ERR\r\n    CICHECK -- No / base present --\u003e DEFAULT{\"Eligible for\u003cbr/\u003edefault capacity?\"}\r\n\r\n    DEFAULT -- Yes --\u003e MAXDEF[\"Update tenant default\u003cbr/\u003emax(current, SKU default)\"]\r\n    DEFAULT -- No --\u003e ACCRUAL\r\n\r\n    MAXDEF --\u003e ACCRUAL{\"Accrues\u003cbr/\u003ecapacity?\"}\r\n    ACCRUAL -- No --\u003e NEXT\r\n    ACCRUAL -- Yes --\u003e CAP{\"Tenant cap\u003cbr/\u003eapplies?\"}\r\n\r\n    CAP -- Yes --\u003e CAPDB[\"Clamp DB accrual\u003cbr/\u003eto remaining cap\"]\r\n    CAP -- No --\u003e CLASSIFY\r\n    CAPDB --\u003e CLASSIFY\r\n\r\n    CLASSIFY{\"License type?\"}\r\n    CLASSIFY -- PerUser --\u003e USERACC[\"Add to per-user accrual\"]\r\n    CLASSIFY -- PerApp --\u003e APPACC[\"Add to per-app accrual\"]\r\n    CLASSIFY -- CapacityPack --\u003e PACKACC[\"Add to pack accrual\"]\r\n\r\n    USERACC --\u003e NEXT[\" \"]\r\n    APPACC --\u003e NEXT\r\n    PACKACC --\u003e NEXT\r\n    NEXT --\u003e MORE{\"More\u003cbr/\u003elicenses?\"}\r\n    MORE -- Yes --\u003e LOOP\r\n    MORE -- No --\u003e SUM\r\n\r\n    SUM[\"Tenant pool totals\u003cbr/\u003eDB = default + per-user + per-app + pack + add-ons\u003cbr/\u003eFile = default + per-user + per-app + pack + add-ons\"]\r\n    SUM --\u003e PAYG[\"PAYG environments\u003cbr/\u003e1 GB DB + 1 GB File each\u003cbr/\u003e(separate from tenant pool)\"]\r\n\r\n    PAYG --\u003e RESULT[\"Result: totals, breakdown,\u003cbr/\u003ePAYG, errors\"]\r\n\r\n    ERR --\u003e NEXT\r\n\r\n    style INPUT fill:#4f46e5,color:#fff,stroke:none\r\n    style RESULT fill:#059669,color:#fff,stroke:none\r\n    style ERR fill:#dc2626,color:#fff,stroke:none\r\n    style SUM fill:#0284c7,color:#fff,stroke:none\r\n```\r\n\r\n## Development\r\n\r\n### Prerequisites\r\n\r\n- Node.js 18+ \r\n- npm\r\n\r\n### Getting Started\r\n\r\n```bash\r\n# Install dependencies\r\nnpm install\r\n\r\n# Start development server\r\nnpm run dev\r\n\r\n# Build for production\r\nnpm run build\r\n\r\n# Preview production build\r\nnpm run preview\r\n```\r\n\r\n### Tech Stack\r\n\r\n- **React 18** - UI framework\r\n- **Vite** - Build tool and dev server\r\n- **Tailwind CSS** - Utility-first CSS framework\r\n\r\n## Deployment\r\n\r\nThe site automatically deploys to GitHub Pages when changes are pushed to the `main` branch via GitHub Actions.\r\n\r\n**Live Site**: [https://dataverse.licensing.guide/](https://dataverse.licensing.guide/)\r\n\r\n## MCP Server\r\n\r\nThis repo also includes a deployable MCP server in [`mcp-server/`](./mcp-server/).\r\n\r\nThe MCP implementation uses the same deterministic calculation engine as the web UI, so the capacity numbers stay aligned across:\r\n\r\n- the public calculator\r\n- local `stdio` MCP clients such as VS Code or Claude Desktop\r\n- remote HTTP MCP deployments behind a reverse proxy\r\n\r\nThe MCP package now exposes two transports:\r\n\r\n- `src/index.js` for local `stdio` clients\r\n- `src/http.js` for stateless Streamable HTTP deployments\r\n\r\nThe hosted HTTP deployment can also expose multiple MCP profiles from the same server, such as:\r\n\r\n- a full profile for capable MCP clients\r\n- a narrowed compatibility profile for clients like Copilot Studio\r\n\r\nPublic hosted endpoints for this repo:\r\n\r\n- Health: `https://mcp.licensing.guide/health`\r\n- Full MCP profile: `https://mcp.licensing.guide/mcp`\r\n- Copilot Studio compatibility profile: `https://mcp.licensing.guide/copilot-mcp`\r\n\r\nUse `https://mcp.licensing.guide/mcp` for capable MCP clients and `https://mcp.licensing.guide/copilot-mcp` for Copilot Studio.\r\n\r\nThe separate Copilot Studio profile exists because the initial Copilot Studio connection completed handshake traffic against the full `/mcp` endpoint but did not surface tools, while server logs confirmed successful requests from the Copilot Studio client. The working conclusion was that Copilot Studio was more sensitive to the richer nested schemas on the full profile, so the safer fix was to add a narrowed compatibility profile instead of weakening the main MCP surface for other clients.\r\n\r\nThat means other operators can deploy the MCP server on their own infrastructure without depending on the public hosted endpoint, while still preserving a richer API surface for some clients and a safer fallback for others. For setup details, see [`mcp-server/README.md`](./mcp-server/README.md).\r\n\r\n## Disclaimer\r\n\r\nThis calculator provides estimates based on publicly available licensing information (December 2025 values). Always verify actual entitlements in the [Power Platform Admin Center](https://admin.powerplatform.microsoft.com/).\r\n\r\n## Resources\r\n\r\n- [Microsoft licensing guides and docs](https://licensing.guide/resources/)\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjukkan%2Fdataverse-capacity","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjukkan%2Fdataverse-capacity","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjukkan%2Fdataverse-capacity/lists"}