">
✈️Vantage Product LabsMyFlightWatcherMulti-provider airfare monitoring, analytics and alerting.
Airfare Intelligence • Multi-Provider Monitoring • Price Alerts
Vantage Product Labs • MyFlightWatcher: Product Architecture Overview

Stop checking fares.
Start watching the market.

MyFlightWatcher is a purpose-built airfare monitoring system designed to solve a simple but persistent travel problem: a traveler can know the route, dates, airports, nonstop preference and target price they want, yet still have to repeatedly search multiple flight and booking sources to determine whether the market has moved. The system automates that repetitive work by checking multiple providers on governed schedules, normalizing the results into one history, tracking provider-specific lows, and alerting when fares become actionable.

Core Product Thesis
Search less. Observe continuously. Act when the fare is right.
MyFlightWatcher separates acquisition, normalization, storage, analytics, alerting and archival so the system can monitor continuously without requiring a user to manually repeat the same searches.
🗺️Define Trip
⏱️Schedule Checks
🔎Query Providers
📉Normalize Fares
🔔Alert & Learn

✈️Executive Product Overview

The Problem

Airfare decisions are time-sensitive, fragmented and repetitive. Prices change, different providers surface different inventory or timing, and manually re-running the same searches creates friction exactly when a traveler needs fast confidence. A single snapshot answers “what is the fare now?” but not “how has it moved, which provider is lowest, when was that low first observed, and should I act?”

The Solution

MyFlightWatcher turns those repeated searches into a monitored process. It checks configured providers automatically, applies trip rules such as route and nonstop requirements, records normalized fares, maintains provider and historical analytics, governs provider cadence and quotas, and pushes alerts when target conditions are met. Large raw provider payloads are archived outside the production fare database so operational history stays compact and usable.

What MyFlightWatcher Does

Continuous MonitoringAutomates repeated flight checks instead of relying on manual browser searches.
Multi-Provider ComparisonBrings Google Flights and Expedia results into a common monitoring model.
Historical Fare IntelligencePreserves normalized fare observations so the user can see lowest, average, trend and provider history over time.
Target-Fare AlertingCompares qualifying fares against the trip target and can notify the user through Pushover.
Provider GovernanceUses provider-specific schedules, request accounting, quota protection, retry rules and health/status visibility.
Raw-Data ArchivalSeparates large raw API payloads from the MySQL fare ledger and transfers them to the Windows archive pipeline.

⚙️System Architecture

The application is intentionally split into operator, acquisition, data and archival responsibilities. This prevents any single provider response, scheduled task or user action from becoming the entire system.

🧭Trip ConfigurationRoute, dates, airports, nonstop preference and target fare
🗓️SchedulerProvider-specific cadence and next-run calculation
🌐Provider AdaptersExternal flight-data requests and response handling
🧹NormalizerConverts differing responses into common fare fields
🗄️MySQL LedgerCompact normalized fare and provider-run history
📊Analytics + AlertsLowest fares, trends, first-observed lows and target checks
💾Windows ArchiveDurable local retention of raw provider payloads

Separation of normalized and raw data

The production database is used for queryable operational facts: fare, provider, airport, time observed, airline, status and related metadata. Large raw provider responses are not stored in each fare row; they are queued for export and collected into the Windows archive. This keeps analytics fast and prevents raw payload volume from dominating database storage.

🌐Provider Layer

MyFlightWatcher uses a provider-adapter model so each source can be queried and normalized independently while the rest of the application works with a common fare representation.

Google FlightsPrimary monitored flight-search source
ExpediaPrimary comparative provider

Provider Request Lifecycle

  1. Confirm the database is writable before spending an external provider request.
  2. Resolve the provider definition, credentials, endpoint and request parameters.
  3. Call the provider through the external API layer.
  4. Classify transport, rate-limit, quota and provider-specific errors.
  5. Normalize valid results into the common fare model.
  6. Apply trip qualification rules before writing fares.
  7. Record provider-run evidence and expose status to the control panel.

⏱️Scheduler, Cadence & Quota Governance

The scheduler is designed to prevent two opposite failures: checking too infrequently to catch a meaningful fare movement, and over-calling a provider until an API quota or rate limit is exhausted. Each active provider operates on its own cadence, with quota-aware request governance and provider-specific health monitoring.

Cadence ControlEach provider has an independent interval and next scheduled run.
Quota ProtectionMonthly request accounting can reserve capacity rather than blindly consuming the full allowance.
Retry / Failure StateTransient API failures remain retryable instead of automatically locking a provider for the remainder of the month.

🗄️Data, Storage & Archive Model

LayerPurposeRepresentative Data
TripsDefines the watched itinerary and alert targetOrigins, destination, dates, target fare, active settings
fare_checksNormalized historical fare ledgerObserved time, provider, origin, fare, airline, flight metadata
provider_runsOperational evidence for provider executionRun status, request count, fares found, failures and timing
alertsAlert event historyFare check linkage and notification evidence
app_settingsRuntime configurationProvider schedules, credentials/settings and application controls
Windows JSON ArchiveDurable raw-response retention outside MySQLFull provider payload envelopes organized by date/provider

📊Analytics, History & Alerting

The analytics layer turns repeated observations into decision support. Rather than showing only the latest fare, it can expose the historical range, provider-specific lows, averages, daily trends, the first time a provider's current low was observed, and the detailed fare ledger behind those summaries.

Historical Low by ProviderCompares provider minimums within the selected history range and identifies when each historical low was first observed.
Historical Fare TableProvides chronological evidence for how fares have changed over the monitored period.
Trend AnalyticsSummarizes daily low, average and high observations for directional context.
CSV ExportAllows selected historical data to be exported for independent analysis or recordkeeping.
Pushover AlertsDelivers actionable notifications when qualifying fares meet configured alert conditions.
Provider Health VisibilitySurfaces successful, failed, no-fare and request-count operating evidence.

🧪90-Day Production Audit

After sustained production operation, MyFlightWatcher accumulated enough real provider traffic and fare history to evaluate reliability at system scale rather than from isolated test runs. The audit focused on execution stability, provider usefulness, alert correctness, analytics integrity and security controls. The result is a bounded remediation plan: preserve the stable acquisition architecture, retire low-value provider calls, correct one alert-state defect, and improve the presentation of data already being collected.

20,596Provider executions observed in the production audit window
19,610Successful provider executions recorded
0Recorded failed provider runs in the supplied production summary
36,130Fare observations returned and persisted
774Clean no-fare outcomes — an expected business result, not an execution failure
95.2%Fare-producing execution rate based on the supplied run summary
3.8%Classified no-fare rate based on the supplied run summary
212Runs requiring status reconciliation before the audit is considered numerically closed

Confirmed defect The “$586 bug” was a stale historical-low alert, not evidence of a continuously available Expedia fare.

Code review found that the alert evaluator selected the lowest qualifying fare across the entire fare history and then re-evaluated that same historical row after the alert cooldown. A JetBlue/Expedia fare first observed on August 22 could therefore continue generating fresh buy alerts even when it was no longer present in a current provider response. This explains the repeated $586 notification and the inability to reproduce the fare on Expedia.

Audit ItemFindingDisposition
Alert freshnessHistorical all-time minimum could be treated as the current actionable fare.Surgical fix required Alert only from a fare observed in the current monitoring cycle / freshness window.
Historical analyticsProvider ranking intentionally uses minimum fare over the selected range.Preserve Keep as historical evidence, but label it explicitly as historical low rather than current fare.
Provider estateGoogle Flights and Expedia produced the most useful continuing price intelligence.Simplify Retain only active Google Flights and Expedia calls; keep retired adapters in source for rollback/history.
Execution stabilityNo failed provider runs were reported in the supplied audit summary.Strong Preserve architecture; no rewrite justified.
Run reconciliation20,596 total − 19,610 successful − 774 no-fare = 212 unclassified runs.Reconcile Classify skipped, quota-paused, not-due or other statuses before publishing a closed audit total.

Root Cause & Regression Boundary

Root cause: the alert evaluator queried fare_checks ordered by price ascending across all history, rather than evaluating a fare created by the current provider run. The cooldown prevented constant duplication, but once the cooldown expired the same historical minimum became eligible again.

Required correction: preserve historical lows for analytics, but gate notification eligibility on current-cycle provenance. A historical row may remain visible in history forever; it must not create a new “buy” alert unless a current provider response reproduces that fare.

Regression boundary: acquisition, normalization, persistence, history, dashboard intelligence, CSV export and archival remain unchanged. Only alert candidate selection/freshness is altered.

Analytics UX — Actual Production View & Repair

The 90-day audit made one UX problem impossible to ignore: the application had accumulated tens of thousands of fare observations, but the analytics presentation still behaved like an early prototype. The issue was not lack of data. It was that the visualization was failing to turn that data into useful decision support.

Production Analytics — Before

Native HTML reconstruction of the actual Analytics & Reporting screen. This preserves the visual logic of the running application without relying on a screenshot.

Before repair
Analytics & Reporting30 Days · saved production history
Lowest Qualified Fare
$586
Aug 22: 1:16pm · Expedia
Date Range
30
Days
Saved Fares
36,130
production fare observations
Target
$800
configured buy target
Provider Runs
20,596
90-day audit population

Fare Trend Over Time

LowestAverageTarget $800
Aug 13: 8:00pmSep 12: 8:00pm

Lowest Fare by Provider

Expedia$586
First observed Aug 22: 12:34pm13,948 fares · avg $1,710
CheapTicketsHistorical
First observed in saved historyretired provider · no longer an active signal
Google FlightsActive
Primary continuing market feedsaved fare history retained
Booking.comHistorical
First observed in saved historyretired provider · no longer an active signal
PricelineHistorical
Saved history retainedretired provider · no longer an active signal

Why this was not good enough

Visualization defectObserved behaviorUser impact
No price scaleThe chart has no visible Y-axis or dollar ticks, so the vertical distance between lines has no interpretable meaning.The user cannot tell whether a movement is $20, $200 or $800.
Only two datesThe X-axis exposes only the beginning and end of the selected range.Price events cannot be tied to a meaningful day or week.
High series omittedThe data query already calculates daily low, average and high, but the legacy chart renders only low and average.Most of the available range information is discarded.
Historical low looks liveThe provider panel presents the $586 Expedia minimum prominently without a freshness distinction.A month-old historical observation appears actionable and contributed directly to the $586 bug confusion.
No current-fare markerThe visualization does not visibly separate the latest verified observation from the historical minimum.The chart answers “what once happened” better than “what should I do now?”
No observation density36,130 saved fares are reduced to two thin lines with no signal of sample volume.The user cannot see where confidence is supported by dense observation history.

Production Analytics — Repaired

Same stored data, but redesigned to separate current truth from history and to expose the price range, trend, target and observation volume already available in the application.

Repair specification
Analytics & Reporting30 Days · 36,130 saved fares · active providers only

Fare Trend

Current Verified FareFresh observationLatest active-provider result — never substituted with an old minimum
Historical Low$586Expedia · first observed Aug 22 · history only until reproduced
30-Day Average$1,710Expedia historical average from audit evidence
Buy Target$800Visible against the same dollar scale as the fare data
Observation Base36,130Saved fares · confidence supported by production volume
Decision rule: “Historical low” is retained as context. “Current verified fare” is the only value allowed to behave like a live buy signal. This visual distinction mirrors the alert-freshness correction for the $586 defect.

Fare Trend Over Time — Repaired

Daily low · average · high · target · current observation · historical low · observation volume
$1,800$1,500$1,200 $900$600 Target $800 $586 historical low · Aug 22 not current unless freshly reproduced Current verified observation freshness-gated active provider Aug 13 Aug 20 Aug 27 Sep 3 Sep 12 observation volume
Daily LowDaily Average Daily HighTarget Current VerifiedHistorical Low

Provider Signal Quality

Google FlightsActive
Primary market feedActive
Current observations may drive live fare analytics and alerts when freshness requirements are met.
Expedia$586
Historical minimumHistory
First observed Aug 22: 12:34pm · retained for history, but excluded from a fresh alert unless reproduced.
Freshness GateRequired
Alert provenanceFresh
Only the current monitoring cycle is actionable. Old minima cannot silently become “live” again.
Provider cleanup: retired Priceline, Booking.com and CheapTickets calls should disappear from the active control panel and active analytics while their historical observations remain available in the audit ledger.

What was repaired in “Fare Trend Over Time”

RepairImplementationResult
Meaningful dollar scaleAdd a visible Y-axis with dollar ticks derived from the selected fare range, with modest padding rather than an empty canvas.Movement becomes quantitatively readable rather than merely decorative.
Use all queried seriesRender daily high in addition to daily low and average; optionally shade the low-to-high band.The user can see volatility and the true daily market range.
Better time contextRender multiple date ticks across the selected period instead of only the first and last timestamp.Spikes and lows can be tied to actual periods in the monitoring window.
Current vs historicalAdd a current verified marker and visually separate it from the historical low marker.The user immediately understands what is bookable now versus what was once observed.
Freshness semanticsHistorical $586 remains on the chart as evidence, but is labeled history-only until a current provider response reproduces it.The analytics UI reinforces the same correctness rule as the alert-engine fix.
Observation volumeAdd a compact observation-density strip from counts already present in the data.The chart communicates the scale and confidence of the production dataset.
Active-provider focusShow Google Flights and Expedia as active signal sources; keep retired-provider history out of current-provider ranking.The reporting surface reflects the simplified production provider estate.
This is not feature expansion. The existing analytics query already computes daily low, average and high. The repair is principally a presentation and freshness-semantics correction: expose the data that is already being calculated, label current versus historical state correctly, and make the 36,130-observation dataset useful to a human decision-maker.

🛡️Security Status & Operational Controls

The production implementation includes a practical defense-in-depth model suited to a privately operated monitoring application. Security is part of the operating architecture, not an afterthought.

Transport & Browser HardeningHTTPS-aware HSTS, X-Content-Type-Options, SAMEORIGIN framing protection, strict referrer policy, permissions restrictions and same-origin opener policy.
Session HardeningStrict-mode sessions, cookie-only transport, HttpOnly cookies, SameSite=Lax, secure cookies under HTTPS and a 30-minute idle timeout.
CSRF ProtectionPer-session random CSRF token with constant-time verification on protected POST actions.
Login Abuse ControlRepeated PIN failures are tracked by client key with a timed lockout after the configured attempt threshold.
Secret BoundaryRuntime secrets are separated from public application code and documented as a private configuration boundary.
Provider IsolationProvider adapters execute independently so one external provider failure, quota condition or malformed response does not require destabilizing the entire system.

Audit conclusion

The evidence supports a precision-maintenance posture. The production architecture is stable enough that the correct engineering action is to isolate and repair the stale-alert defect, simplify the active provider estate, improve observability and reporting, and leave the rest of the working system alone.

🛡️Stability & Operating Controls

  • Database write preflight: external provider calls can be stopped when the database cannot accept the resulting fare data.
  • Non-destructive history behavior: normal monitoring does not require clearing fare history.
  • Compact normalized storage: raw provider payloads are excluded from fare rows.
  • External archival: a Windows collector polls the export endpoint and retains raw JSON independently from the hosted database.
  • Provider isolation: one provider's error or rate limit does not have to invalidate the entire monitoring system.
  • Operator visibility: control-panel tests and provider status make failures observable instead of silent.
Founder / Operator-Builder

About Peter

Peter DeCaro
Peter DeCaroSenior AI & Business Operations Consultant

Peter DeCaro, currently Senior AI & Business Operations Consultant at Vantage Solutions Group, is an operations and technology-focused product builder with more than 25 years of experience improving, automating and scaling complex business operations. Across his career, he has worked for and with eight publicly traded companies and has operated at the intersection of customer operations, revenue operations, process improvement, technology implementation and organizational scale. His experience includes leadership and transformation work associated with companies including Fluent, LLC, IAC Applications, AOL and KIT Digital, as well as consulting and product-development work through Vantage Solutions Group and Vantage Product Labs.

His career has consistently centered on a practical question that now sits at the heart of MyRocket Studio: how can technology remove operational friction, create repeatable decision systems and allow people to produce better outcomes with less manual work? Long before generative AI became a mainstream operating tool, that work included process redesign, workflow automation, KPI governance, CRM and ERP implementation, customer-success operating models, vendor and workforce management, executive reporting and the rapid stabilization and scaling of growing businesses.

Peter has overseen revenue operations in excess of $50 million annually, built programs supporting customer-success and service teams of approximately 50 to 100 people, and led operational improvement initiatives across high-volume, technology-enabled organizations. His broader operating background includes large-scale customer experience environments, offshore and multi-site operations, fulfillment and service transformation, sales and revenue operations, automation, performance management and executive-level operating cadence. He is Six Sigma / Lean Six Sigma trained and has spent much of his career applying continuous-improvement principles to real operating environments rather than treating process design as an academic exercise.

In 2023, Peter was recognized by the Management and Strategy Institute (MSI) for continuous improvement, reflecting a career built around measurable operational change. That discipline has increasingly been applied to software and AI-enabled product development: translating operating problems into modular applications, measurable workflows and repeatable systems.

Most recently, through Vantage Product Labs, Peter has focused on building practical AI-enabled applications and reusable product engines. Those projects include a flight-monitoring application designed to continuously track fare changes across travel providers; ResumeRocketPro, an ATS-oriented resume analysis, scoring and optimization platform; KDP AI Secrets, a structured information-product and publishing asset creation system; and the broader MyRocket Studio / RocketCore architecture described in this document.

These products reflect a consistent operator's perspective: software should not merely generate output—it should organize work, preserve evidence, reduce repetitive decisions, create quality controls and make the next operating cycle better than the one before it. MyRocket Studio is the culmination of that approach, combining Peter's background in operational transformation with hands-on AI-assisted product development to create a modular system for moving from market evidence to commercially testable assets and then back to measurable learning.

Professional Development / AI / Continuous Improvement

Certifications

Peter's certifications reflect the two disciplines that converge in MyRocket Studio: formal continuous-improvement methodology and hands-on development of AI-enabled operating systems. The combination supports an operator-builder approach in which automation, process control, prompt engineering, AI agents and production application design are treated as connected capabilities rather than isolated technologies.

Six Sigma / Lean Process Excellence
Six Sigma Black BeltContinuous Improvement / Process Excellence
Six Sigma Green BeltContinuous Improvement / Process Excellence
Six Sigma Yellow BeltContinuous Improvement / Process Excellence
Lean Six SigmaLean + Six Sigma Process Improvement
AI, Prompt Engineering, Agents & Application Development
Prompt Engineering CertificationQuantum Leap Academy
No-Code AI Prompting: Websites and ApplicationsUdemy
OpenAI Codex Full Course 2026: AI Coding, Automation, AgentsUdemy
OpenAI Codex Masterclass: Build Your AI Operating SystemUdemy
Advanced Master AI Prompt EngineeringUdemy
ChatGPT for Customer SupportGreat Learning
Building AI Voice Agents for ProductionDeepLearning.AI
ChatGPT Prompt Engineering for DevelopersDeepLearning.AI
Academy Accreditation - AI Agent FundamentalsDatabricks Academy
Generative AI FundamentalsDatabricks Academy
🚀
Development / AI / Data / Delivery Stack

Technologies Utilized

MyRocket Studio and its predecessor applications have been developed through a deliberately mixed technology stack: frontier AI models for reasoning and generation; AI-assisted development environments for implementation; structured web, database and hosting technologies for production applications; source-control and workflow systems for disciplined build management; and modular data-acquisition providers for RocketCapture and RocketIQ research workflows.

LLM / AI Models & AI Development
GPT / OpenAIAI reasoning, generation, analysis and multimodal workflows
Claude / AnthropicAI-assisted architecture, coding, review and long-context development
Gemini / GoogleMultimodal AI reasoning and Google-connected development workflows
Grok / xAIAI research, reasoning and comparative model workflows
DeepSeekAI model experimentation, reasoning and technical workflows
MoonlitAI / development experimentation and supporting workflow tooling
CursorAI-assisted software development and codebase implementation
BoltRapid AI-enabled application prototyping
LovableRapid product/UI prototyping and application experimentation
Automation & Orchestration
MakeVisual workflow automation and systems integration
n8nWorkflow orchestration, API automation and agentic process integration
ZapierSaaS workflow automation and event-driven integrations
Research, Data & Provider Layer
Official APIsStructured source access where supported
ApifyModular scraping and web-data acquisition
RapidAPIExternal API marketplace and provider integration
Bright DataCommercial web-data infrastructure and acquisition
OxylabsCommercial proxy and web-intelligence infrastructure
MySQLRelational application and analytics data storage
Application Engineering & Delivery
PythonCore application logic, automation and data processing
StreamlitInteractive Python application interfaces
PHPServer-side web application and hosting workflows
HTML5Standalone interfaces, reports and product experiences
CSSResponsive interface styling and visual systems
JavaScriptBrowser-side behavior and interactive experiences
GitHubSource control, repositories, versioning and deployment workflows
GitLocal and remote source-version management
HostingerWeb hosting, databases and production deployment
Workspace, Campaign & Operating Tools
Google WorkspaceDocs, Sheets, Drive and collaborative operating files
Google DriveShared artifacts, build packages and project continuity
GetResponseEmail marketing and campaign-delivery workflows
TrelloWorkflow/board orchestration and build-task management
MyFlightWatcher Runtime, Monitoring & Operator Environment
Google ChromePrimary browser interface for the hosted control panel, analytics, testing and operator workflows
WindowsLocal collector/controller host for scheduled archive retrieval and durable payload retention
PushoverPush-notification delivery for target-fare and monitoring alerts
cURLServer-side HTTP transport used by PHP provider adapters to call external flight-data APIs
JSONProvider-response interchange, export-queue envelopes, collector manifests and configuration data
Apache / .htaccessWeb-server routing, access hardening and deployment controls on the hosted PHP application

MyFlightWatcher-specific runtime stack: PHP + PDO/MySQL on Hostinger, RapidAPI-backed provider adapters, cURL/JSON transport, a browser-based control panel, Pushover alerts, and a Windows Python collector that archives raw provider payloads outside the production database.

Product and company marks are shown for technology-identification purposes. Availability and use vary by product module and build stage.