specification: FinOps Framework specificationVersion: '1.0' schema: https://www.finops.org/framework/ alignedWith: framework: FinOps Foundation Framework frameworkUrl: https://www.finops.org/framework/ dataSpec: FOCUS dataSpecVersion: '1.3' dataSpecUrl: https://focus.finops.org/focus-specification/v1-3/ provider: npm providerId: npm publisherName: GitHub, Inc. serviceCategory: Developer Tools / Package Registry created: '2026-05-04' # Provenance stamped 2026-08-11: this artifact was written by the API Evangelist # bulk sweep dated 2026-05-04, not harvested from the provider. See roadmap#35. method: generated modified: '2026-05-05' reconciled: true tags: - Packages - JavaScript - Node.js - Package Management - Registry - Security - FinOps - Cost Management - FOCUS description: 'FOCUS-aligned FinOps for npm: the public registry is free; commercial spend is on GitHub seats and Packages storage/egress, billed per user per month with usage overages.' sources: - https://github.com/pricing - https://docs.github.com/en/billing - https://www.npmjs.com/products principles: - name: Visibility description: Use the GitHub billing dashboard and Billing Platform API to see per-org Packages storage, data transfer, and Actions minutes. Public registry consumption is free and not metered. - name: Allocation description: Tag spend by GitHub organization and team; private npm packages roll up under the publishing org's GitHub Packages line items. - name: Optimization description: Use the public npm registry for OSS dependencies (zero cost). Mirror or proxy via Verdaccio/JFrog for high-volume bulk reads. Use replicate.npmjs.com instead of scraping for indexing workloads. - name: Accountability description: Org admins manage seats and Packages overage policies. Set Actions/Packages spending limits and alerts in GitHub billing settings; reconcile monthly invoices against per-team chargeback. billingModel: pricingCategory: Subscription + Usage billingFrequency: Monthly billingCurrency: USD chargeCategories: - Usage - Purchase - Tax - Credit - Adjustment chargeFrequency: Recurring focusColumns: ServiceName: npm ServiceCategory: Developer Tools / Package Registry ProviderName: npm PublisherName: GitHub, Inc. InvoiceIssuerName: GitHub, Inc. PricingCategory: Subscription + Usage PricingUnit: seat BillingCurrency: USD ChargeCategory: Usage meters: - name: github_seats description: Per-user GitHub plan seat (Team or Enterprise) granting private npm package access unit: seat aggregation: sum dimensions: - plan - org - name: packages_storage description: GitHub Packages storage consumed by private npm packages unit: GB-month aggregation: avg dimensions: - org - visibility - name: packages_data_transfer description: Outbound data transfer from the GitHub Packages registry unit: GB aggregation: sum dimensions: - org - name: actions_minutes description: GitHub Actions minutes consumed by npm publish/CI workflows unit: minute aggregation: sum dimensions: - runner_os - org apis: - name: npm Registry API baseURL: https://registry.npmjs.org tags: - Packages - JavaScript - Registry - Package Management - Node.js serviceName: npm Registry API serviceCategory: Package Registry - name: npm Public API baseURL: https://npm.pkg.github.com tags: - Packages - Tokens - Authentication serviceName: GitHub Packages npm serviceCategory: Package Registry - name: npm Hooks API baseURL: '' tags: - Webhooks - Notifications - Events serviceName: npm Hooks API serviceCategory: Package Registry - name: npm CLI baseURL: '' tags: - Command Line - Package Management serviceName: npm CLI serviceCategory: Package Registry - name: npm Provenance baseURL: '' tags: - Security - Supply Chain - Sigstore serviceName: npm Provenance serviceCategory: Package Registry unitEconomics: - name: Cost per private package GB-month metric: packages_storage_cost / packages_storage_GB - name: Cost per developer-month metric: github_seat_cost + packages_overage / active_developers maintainers: - FN: API Evangelist email: info@apievangelist.com