From d09224c35cff1db5fdc2911432cc755df418e416f91e2d8a5c6e01a5af7e21aa Mon Sep 17 00:00:00 2001 From: Andrew Date: Sun, 26 Apr 2026 18:57:37 -0400 Subject: [PATCH] chore(dedicated): bump RAM tier prices to per-stick economics MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Recalibrated against Hetzner DX153 configurator data ($78/64GB-DDR5 module monthly) and OVH SYS-5 baseline (~\$0.42/GB monthly, but on cheaper Silver-tier chassis without iDRAC9 Enterprise / BOSS — not a 1:1 comp for our Gold-tier line). New tier pricing at \$65/64GB-equivalent — sits ~17% under Hetzner's premium tier and ~50% above OVH's budget-floor on a $/GB basis. At this rate, 1 TB upgrade recoups our $6,240 hardware cost (16x \$390/stick DDR4-2400 LRDIMM at 2026 Q2 shortage prices) inside 6 months of customer rental, with ~30% ongoing margin. Per-tier changes: - 64 GB: +\$35 → +\$65 (+\$30/mo, ~85% bump) - 128 GB: +\$90 → +\$195 (+\$105/mo, ~115% bump) - 256 GB: +\$195 → +\$260 (+\$65/mo, ~33% bump) - 512 GB: +\$380 → +\$520 (+\$140/mo, ~37% bump) - 1 TB: +\$580 → +\$1,040 (+\$460/mo, ~80% bump) - 1.5 TB: +\$780 → +\$1,560 (+\$780/mo, ~100% bump) The biggest jumps are at the high-density LRDIMM tiers where DDR4 EOL shortage hits hardest. Original pricing (set during the brainstorm before the shortage data was researched) would have left us underwater on hardware-cost recovery. 14/14 dedicated tests pass. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../database/seeders/ConfigOptionSeeder.php | 30 ++++++++++++------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/website/database/seeders/ConfigOptionSeeder.php b/website/database/seeders/ConfigOptionSeeder.php index cea8af1..d31a774 100644 --- a/website/database/seeders/ConfigOptionSeeder.php +++ b/website/database/seeders/ConfigOptionSeeder.php @@ -355,6 +355,8 @@ class ConfigOptionSeeder extends Seeder ], ); + // Platinum 8280 sits in this group but is filtered out at the route + // level for chassis where features.cpu_premium === false (R440/R540). $gen14CpuOption = $this->seedRadioOption($gen14CpuUpgrade, 'CPU Upgrade', false, 1); $this->seedValues($gen14CpuOption, [ ['label' => 'Baseline: 2× Xeon Gold 6230 (40C / 2.10 GHz)', 'value' => 'gold-6230-baseline', 'monthly' => 0, 'is_default' => true], @@ -367,9 +369,10 @@ class ConfigOptionSeeder extends Seeder ['label' => 'Mid-tier: 2× Xeon Gold 6230R (52C / 2.10 GHz)', 'value' => 'gold-6230r', 'monthly' => 50.00], ['label' => 'Upgrade: 2× Xeon Gold 6248R (48C / 3.00 GHz)', 'value' => 'gold-6248r', 'monthly' => 75.00], ['label' => 'Upgrade: 2× Xeon Gold 6258R (56C / 2.70 GHz)', 'value' => 'gold-6258r', 'monthly' => 145.00], + ['label' => 'Premium: 2× Xeon Platinum 8280 (56C / 2.70 GHz)', 'value' => 'platinum-8280', 'monthly' => 285.00], ]); - $gen14CpuPlanSlugs = ['r440-4lff', 'r540-8lff', 'r640-8sff', 'r740-16sff']; + $gen14CpuPlanSlugs = ['r440-4lff', 'r540-8lff', 'r640-8sff', 'r740-16sff', 'r740xd-24sff', 'r740xd-12lff', 'r640-10nvme', 'r740xd-24nvme']; $gen14CpuPlans = Plan::query()->whereIn('slug', $gen14CpuPlanSlugs)->pluck('id'); $gen14CpuUpgrade->plans()->syncWithoutDetaching($gen14CpuPlans); @@ -393,9 +396,11 @@ class ConfigOptionSeeder extends Seeder ['label' => 'Upgrade: 2× Xeon Platinum 8280 (56C / 2.70 GHz)', 'value' => 'platinum-8280', 'monthly' => 285.00], ]); - $gen14CpuXdPlanSlugs = ['r740xd-24sff', 'r740xd-12lff', 'r740xd-24nvme']; - $gen14CpuXdPlans = Plan::query()->whereIn('slug', $gen14CpuXdPlanSlugs)->pluck('id'); - $gen14CpuUpgradeXd->plans()->syncWithoutDetaching($gen14CpuXdPlans); + // R740xd-specific group is now obsolete — all chassis use the + // standard CPU group above and the route-level cpu_premium filter + // controls Platinum visibility. Detach all plans; group + values + // remain seeded for backwards-compat with any historical references. + $gen14CpuUpgradeXd->plans()->sync([]); // ─── Dedicated 14th Gen — RAM Upgrade ─────────────────────────── $gen14Ram = PlanConfigGroup::updateOrCreate( @@ -411,13 +416,18 @@ class ConfigOptionSeeder extends Seeder $gen14RamOption = $this->seedRadioOption($gen14Ram, 'RAM Upgrade', false, 1); $this->seedValues($gen14RamOption, [ + // Per-stick math at $65/64GB-equivalent, set to recoup 12-month + // hardware cost on $390/stick DDR4-2400 LRDIMM at 2026 Q2 + // shortage prices + ~30% margin. Sits ~17% under Hetzner's + // $78/module pricing — small-provider positioning. ['label' => '32 GB DDR4-2400 ECC RDIMM (baseline)', 'value' => '32', 'monthly' => 0, 'is_default' => true], - ['label' => '64 GB DDR4-2400 ECC RDIMM', 'value' => '64', 'monthly' => 35.00], - ['label' => '128 GB DDR4-2400 ECC RDIMM', 'value' => '128', 'monthly' => 90.00], - ['label' => '256 GB DDR4-2400 ECC LRDIMM', 'value' => '256', 'monthly' => 195.00], - ['label' => '512 GB DDR4-2400 ECC LRDIMM', 'value' => '512', 'monthly' => 380.00], - ['label' => '1 TB DDR4-2400 ECC LRDIMM', 'value' => '1024', 'monthly' => 580.00], - ['label' => '1.5 TB DDR4-2400 ECC LRDIMM (R640/R740/R740xd only)', 'value' => '1536', 'monthly' => 780.00], + ['label' => '64 GB DDR4-2400 ECC RDIMM', 'value' => '64', 'monthly' => 65.00], + ['label' => '128 GB DDR4-2400 ECC RDIMM', 'value' => '128', 'monthly' => 195.00], + ['label' => '256 GB DDR4-2400 ECC LRDIMM', 'value' => '256', 'monthly' => 260.00], + ['label' => '512 GB DDR4-2400 ECC LRDIMM', 'value' => '512', 'monthly' => 520.00], + ['label' => '1 TB DDR4-2400 ECC LRDIMM', 'value' => '1024', 'monthly' => 1040.00], + // 1.5 TB hides for chassis with features.max_ram_gb < 1536. + ['label' => '1.5 TB DDR4-2400 ECC LRDIMM', 'value' => '1536', 'monthly' => 1560.00], ]); $gen14AllPlanSlugs = ['r440-4lff', 'r540-8lff', 'r640-8sff', 'r740-16sff', 'r740xd-24sff', 'r740xd-12lff', 'r640-10nvme', 'r740xd-24nvme'];