Get started using the Red Mountain pricing calculator and learn more about this tool.
PricingItem table (truncate and insert); pricing matches the sheet.The Red Mountain Pricing Calculator helps team members browse products, compare MSRP vs. Red Club pricing, and build a Patient Quote. This guide walks through every screen and term used from Home → Pricing Calculator → Patient Quote.
Browse products from the live catalog. Supplement rows are hidden; all other items from the database appear, including lines where a price is missing (shown as “-”). Use Search to filter by name. The column menu still lists optional savings columns and saves your choices per browser (storage key updated for this release).
List: Primary columns match the sheet—Item Name/Description, Product Line, MSRP, and Red Club. Turn on Red Club savings ($) or (%) if you need them. Use Clear search to reset the search box; sorting by MSRP or Red Club leaves blank prices at the end of the list.
Grid: Same fields on each card (name, product line, prices or “-”).
Toggle List vs. Grid. Prices use thousands separators where numeric. Default order is alphabetical by name. The green cart adds the line to the Patient Quote.
Line items show per‑unit MSRP and Red Club pricing, quantity, and subscription type (Monthly / Annual / Custom). You can remove lines, edit quantities, clear the quote, or print.
Totals and currency formatting in the quote match the calculator. Printing produces a clean multi‑page layout: benefits and disclaimers first, then the line-item table (which may span pages), then Cost Comparison on its own page, then estimated totals—so charts and cards are not clipped by long tables.
next build && next start) to test install prompts; next dev does not register the worker.| Device Type | Operating System | Supported |
|---|---|---|
| Desktop | macOS | |
| Desktop | Windows (PC) | |
| Laptop | macOS / Windows (PC) | |
| Tablet | iOS | |
| Tablet | Android | |
| Mobile | iOS (iPhone) | |
| Mobile | Android |
Here are recommended best practices and usage tips based on the workflow above:
This section provides architectural and data-modeling information for engineers extending or maintaining the application.
src/app/quote/page.tsx.monthsMsrp and monthsRedClub derive from base‑basket totals; MSRP excludes shipping. Month 1 adds startup fee on Red Club only.breakInside: "avoid" and pageBreakInside: "avoid" on large blocks to minimize splitting.The Red Club Pricing Calculator is built with a modern, scalable, cloud-ready architecture supporting rapid iteration and enterprise-grade reliability.
scripts/import_pricing.py) reads the March 2026-style sheet (Item Name/Description, Product Line, MSRP, Red Club), maps product line to category, and writes via psycopg2.null in JSON.TRUNCATEs PricingItem and inserts every CSV row (full catalog replace).data/catalog-march-2026.csv. Run with DATABASE_URL set (Neon: sslmode=require).typeOfTreatment / medicationMethod null.Next.js + Prisma + Postgres allows modular growth as new features (e.g., membership tiers, dynamic rules) are added.
Tailwind + Next.js enables rapid UI development with highly reusable components.
Docker containers provide predictable behavior across all environments, minimizing “it works on my machine” issues.
Postgres provides strong transactional consistency and referential integrity for pricing data.
Python importer + CSV allow pricing updates and catalog changes without touching app logic.
Represents individual items shown in the calculator.
model PricingItem {
id Int @id @default(autoincrement())
displayName String
category String? // Product line (sheet + API as productLine)
supplyType String?
itemType String? // legacy / prefix hint (PKG, SHOT, …)
typeOfTreatment String?
medicationMethod String?
isCalvinScott Boolean @default(false)
msrp Decimal?
redClubPrice Decimal?
isActive Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@unique([displayName, category, typeOfTreatment, medicationMethod])
}Fetch pricing items with full filter support.
Query Parameters:
membership = standard | redclubq = search term (product name)priceMin, priceMax (applies to MSRP or Red Club depending on membership)productType, typeOfTreatment / typeOfMedication, medicationMethod, isCalvinScott. The main calculator UI does not expose these anymore.Price filter applies to MSRP for standard or Red Club price for redclub membership.
{
"membership": "standard",
"items": [
{
"id": 1,
"name": "Example Product",
"productName": "Example Product",
"productLine": "Weight Loss",
"productType": "Weight Loss",
"category": "Weight Loss",
"itemType": "PKG",
"msrp": 299,
"redClubPrice": 149,
"price": 299
},
{
"id": 2,
"name": "Med Spa Service",
"productLine": "Med Spa",
"category": "Med Spa",
"msrp": null,
"redClubPrice": null,
"price": null
}
]
}Responses include productLine (same value as category). For compatibility, requests may still use typeOfTreatment or typeOfMedication as query parameters where supported.