Gulf Coast Boat Sales
Pricing Intelligence & Inventory Optimization for a Family-Owned Marine Dealership
23%
Faster Inventory Turnover
+23%
$2,800
Avg Pricing Uplift
per unit
91%
Forecast Accuracy
monthly
01The Challenge
A family-owned marine dealership on the South Texas Gulf Coast was pricing boats the way they always had — gut feel, competitor scanning, and a "what the market will bear" approach. The owner knew his inventory was sitting too long and margins were thinning, but couldn't pinpoint why.
Three specific problems drove the engagement:
- Pricing blindness: No systematic way to set asking prices based on actual market drivers — length, engine, condition, and model year were weighted by intuition, not data.
- Seasonal inventory pileup: Boats purchased for spring selling season sat unsold through summer, tying up capital and requiring costly storage.
- No markdown timing: Price reductions were reactive (when the owner noticed a boat "had been there a while"), not proactive based on aging curves.
Data Landscape
02Our Approach
We approached this as four interconnected modeling problems: pricing optimization, demand forecasting, inventory aging analysis, and customer segmentation. Each model feeds into a unified dashboard the dealership team uses daily.
- XGBoost + SHAP — gradient-boosted pricing model with interpretable feature contributions
- Prophet — Facebook's time series library for monthly demand forecasting with seasonal decomposition
- Survival Analysis (Lifelines) — Kaplan-Meier curves modeling how long each boat type sits before sale
- K-Means Clustering — customer segmentation by purchase behavior, geography, and financing preference
- Pandas + Recharts — data pipeline and interactive dashboard for the dealership team
Raw Sales Data
3,000+ transactions
Feature Engineering
20+ derived features
XGBoost Pricing
R² = 0.83
Prophet Forecast
91% monthly accuracy
Dashboard
Real-time pricing tool
03Key Findings
Seasonal Sales Heatmap
Monthly sales volume by boat type across all years. Peak demand is Mar–Jun for center consoles and bay boats, with a secondary Oct–Nov bump from tournament season.
What Drives Pricing? (SHAP Feature Importance)
Mean absolute SHAP values from the XGBoost pricing model. Condition and model year dominate — the owner had been underweighting condition in his mental model.
Inventory Survival Curves
Kaplan-Meier curves showing the probability a boat is still in inventory after N days. Pontoons and deck boats sell fastest; center consoles have the longest tail.
Interactive Pricing Calculator
Predicted Sale Price
$17,100
Linear model R² = 0.825 · For illustration only
Adjust boat features to see the model's predicted sale price. Based on a linear regression trained on 3,000 historical transactions.
04Business Impact
Projected Annual Value
$67,000 projected annual margin improvement
The dealership implemented data-driven pricing within the first month. The owner reported that the SHAP-based feature breakdown was the "aha moment" — seeing that condition grade had 2x the pricing impact of engine horsepower changed how he evaluated trade-ins and set asking prices.
The survival curves gave the team a concrete markdown policy: if a center console is still on the lot after 75 days, it's past the median sell-through point and should receive a 5% price reduction. Previously, that same boat might have sat 120+ days before anyone noticed.
05Technical Details
Pricing Model (XGBoost)
- Features: length_ft, engine_hp, model_year, days_on_lot, boat_type, condition, trade_in
- Hyperparameters: n_estimators=100, max_depth=4, learning_rate=0.1
- Evaluation: R² = 0.83, MAE = $1,450 (5-fold CV)
Demand Forecast (Prophet)
- Granularity: monthly, per boat type
- Seasonality: yearly (multiplicative) + custom regressor for local events
- Accuracy: MAPE = 9% on 12-month holdout
Survival Analysis
- Library: lifelines KaplanMeierFitter
- Stratified by: boat_type, condition, price_quartile
- Used for: automated markdown trigger points
Facing similar challenges?
Let's discuss how data science can drive results for your business.

