Skip to content

ROI calculator: configurable salary rates with auto-recalculation across catalog and READMEs #1

@oitray

Description

@oitray

Summary

Allow each org that forks the blueprint to define their own blended salary rates for manager and user roles. All ROI values in the catalog and READMEs auto-recalculate based on those rates — so every org's time savings numbers reflect their actual labor costs.

Cross-posted from OITApps/claude-config#21 (reference implementation).


Why This Matters for Blueprint Adopters

A law firm at $120k/yr blended sees 3× the dollar ROI of an MSP at $55k/yr for the same tool. Hardcoded rates make the ROI numbers meaningless to anyone who isn't OIT. Configurable rates make every org's README a credible business case.


What Ships in the Blueprint

  • salary-config.json template with placeholder values and setup instructions
  • CODEOWNERS stub: salary-config.json @YOUR-ORG/admins — restrict to repo admins so no one self-approves a salary bump
  • scripts/calculate-roi.js — reads config + catalog, writes computed ROI values to catalog entries and README rollup
  • npm run roi shortcut
  • GitHub Action that runs calculate-roi on every merge to main
  • README section: "Configuring ROI for your org"

Salary Config Format

{
  "salaries": {
    "user": { "annual": 70000, "hourly": 33.65 },
    "manager": { "annual": 85000, "hourly": 40.87 }
  },
  "currency": "USD",
  "last_updated": "YYYY-MM-DD",
  "updated_by": "your@email.com"
}

Security

salary-config.json is CODEOWNERS-protected. Any PR modifying it requires review from the designated admin/approver team. Each forked org sets their own team — OITApps uses @oitray, Acme Widget Co sets @acme/admins. No one can change the salary basis without an approver sign-off.

Acceptance Criteria

  • salary-config.json template ships with blueprint
  • CODEOWNERS template includes salary-config.json entry with placeholder team
  • scripts/calculate-roi.js included and documented
  • GitHub Action runs ROI recalculation on merge to main
  • README explains salary configuration for new adopters
  • ROI table format shows rate basis (not just totals)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions