Back to projects

Interactive product case study

Cruise Cost Analyzer

A browser-based decision-support tool that turns an advertised cruise fare into a more realistic total-cost scenario by exposing taxes, gratuities, packages, excursions, trip length, group size, and repeat travel.

JavaScriptCanvas visualizationFinancial modelingResponsive interfaceScenario analysis

The problem

Cruise pricing is usually presented as a low headline fare, while the amount a traveler actually needs can depend on port taxes, gratuities, beverage packages, Wi-Fi, shore excursions, group size, voyage length, and the number of trips taken each year. Those variables are difficult to compare mentally and easy to underestimate.

The solution

I built an interactive dashboard that lets a user change the major assumptions and immediately see the total voyage cost, per-person exposure, daily rate, and category allocation. The goal is not to recommend or discourage a cruise; it is to make the decision more transparent.

Real timeCalculations update as assumptions change
4-wayVisual allocation across major cost categories
ResponsiveDesigned for desktop and mobile use

Key interactions

  • Adjust annual trip count, group size, base fare, port taxes, and voyage duration.
  • Model daily beverage costs, gratuities, Wi-Fi, and excursion budgets.
  • Switch excursion allocation between group-level and per-person assumptions.
  • Compare total cost, per-person cost, and realized daily rate.
  • Inspect the financial breakdown through a synchronized canvas chart and accessible breakdown rows.

Design and engineering decisions

  • Kept the primary experience as a standalone browser application so it can be reviewed without an account or installation.
  • Used direct, adjustable inputs rather than hiding assumptions inside a fixed estimate.
  • Separated summary metrics from category detail so a user can understand the result before inspecting the model.
  • Used responsive layouts and larger touch targets to keep the tool usable on smaller screens.
  • Added a small arcade experiment as a separate companion feature without mixing it into the professional cost-analysis workflow.

What this project demonstrates

This project demonstrates my ability to define a user problem, translate financial assumptions into interactive logic, organize a dense interface, and present calculations in a way that supports a practical decision.

Planned improvements

  • Add named scenarios and side-by-side cruise comparisons.
  • Document formulas and assumptions directly inside the interface.
  • Add validation messages and more accessible chart alternatives.
  • Replace demonstration destination data with a maintainable external data source.