Estimate hours and dollars saved by replacing scripts, spreadsheets, and Slack nudges with campaign orchestration. All math is open — adjust any number.
Used in shareable output — doesn't affect the savings calculation
campaignDurationWeeks = affected / 50
scripting_hours = 16 + (affected × 0.05)
// 16 hr baseline + 3 min/repo for edge cases
// Spotify's "simple" Maven updater → 20,000+ LOC (Spotify Engineering blog, 2024)
pr_lifecycle_hours = affected × (minutes_per_pr / 60)
// User-provided: your avg time chasing each PR to merge
status_tracking_hours = campaignDurationWeeks × 2
// 2 hrs/week on spreadsheets and leadership updates (internal estimate) scripting_hours = 4 + (affected × 0.01)
// YAML spec vs custom scripting → ~75% reduction
pr_lifecycle_hours = affected × (minutes_per_pr / 60) × 0.15
// 85% reduction via automated reminders, auto-merge, escalation
// Grounded in Spotify's 70% lifecycle figure + automated follow-up
// 37% bot PR merge rate → ACM research
status_tracking_hours = campaignDurationWeeks × 0.2
// 90% reduction — dashboard replaces spreadsheets (internal estimate) hours_saved_per_year = (total_before - total_after) × campaigns_per_year
dollars_saved_per_year = hours_saved_per_year × hourly_rate weeks_before = affected / 50 // ~50 PRs merged/week manually
weeks_after = affected / 400 // parallel gradual rollout + auto-merge // Pricing tiers (matching bansheeapp.com/pricing):
// ≤5 repos → $0/yr (free)
// ≤50 repos → $4,800/yr + $20/repo/mo above 25
// ≤500 repos → $18,000/yr + $12/repo/mo above 100
// >500 repos → $40,000/yr (floor)
payback_campaigns = ceil(annual_cost / (dollars_saved / campaigns_per_year))
// min 1 campaign. If savings < cost → "not cost-justified at this scale" Reduction percentages are conservative anchors from Spotify engineering data and ACM research. Internal estimates are marked. If you believe any number is wrong, email us.