Skip to content

A refreshed view of competitors’ prices.

Pricing and promotions were spread across individual storefronts. We built a pipeline to collect public menu data and turn it into a consistent dataset.

Project:Kushgroove

The problem

Comparing competing stores meant working through different catalogs, categories, discounts, and bundles. The raw information was publicly visible, but scattered and inconsistent.

A treaded crawler robot collecting storefront price and promotion cards into a comparison notebook.

What we built

We built a pipeline that collected pricing and specials from logged-out Dutchie-powered storefronts, normalized the records, and refreshed them over time.

  • Discovered and collected relevant public storefront data.
  • Handled variations in menus, categories, and promotions.
  • Standardized pricing and specials into a queryable schema.
  • Refreshed the dataset as discounts and offers changed.

What changed

Comparable data for a more informed pricing discussion.

The feed gave the team a way to compare stores and promotions using a shared dataset. It supported competitive analysis without making someone manually check every storefront.

The technical decisions

Public storefront information.

The collection focused on information available to a logged-out visitor, including product prices and active specials. The challenge was organizing a fragmented dataset.

Normalize more than the price.

List prices, discounted prices, bundles, and category-based offers needed a consistent structure. Regular refreshes helped preserve a view of changes over time.

Let’s talk

Have a similar problem?

A rough idea is enough. We’ll work out the next step together.

Tell us what you need