chore(dedicated): bump RAM tier prices to per-stick economics
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) <noreply@anthropic.com>
This commit is contained in:
@@ -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'];
|
||||
|
||||
Reference in New Issue
Block a user