www.happen.software · sales@happen.softwareCase study · Retail & eCommerce · Platforms & portals
Every advertised deal, ready to drill into
A retail data company captures the deals retailers advertise and gives brands and retailers the insight. An earlier attempt at the reporting portal didn't deliver, so we built it from scratch. Clients see prices, trends, and share of voice for their categories, and can drill down to the deals behind them.
- Since 2024 · 2 years
370,000+
Deals clients can explore, across 36,000+ products and 6,500+ brands
270+
Retailers covered, in 140 retailer groups across 16 regions
7 weeks
From the first commit in June 2024 to the portal live for clients in August
2,000+
Exports a quarter, as clients take the data into their own analysis
At a glance
- Client
- Retail data and insights company
- Reports
- Built-in reports, plus custom Power BI reports set up per client
- Engagement
- Full build in 2024, then run and evolve since
- Users
- 400+ brand and retailer client accounts, and the client's admin team
- Platforms
- A client-facing reporting site and an admin portal
- Data source
- The deal capture system we also built, synced three times a day, with 140,000+ deal records a month
- Access
- Each client limited to its own categories, with permissions per section
01The situation
Our client captures the deals retailers advertise in their catalogues and turns them into insight for brands and retailers. We also built the system their team uses to capture those deals. This is the other side: the portal their clients log in to.
An earlier attempt at the portal didn't deliver. We started again in June 2024 and had it in production in August. The data is large, so the work since has been about keeping reports fast, keeping both systems in step, and adding new ways to explore it.
- 01
A fresh start
An earlier attempt didn't deliver, so the portal had to be built and in clients' hands quickly.
- 02
A lot of data, fast
Every client queries large volumes of deals, so reports have to come back quickly without overloading the database.
- 03
Each client's own view
Clients subscribe to different categories, and must only ever see the data they pay for.
02What changes
- Getting the dataWithout it: Captured deals sitting in the capture system.With the portal: New deals sent across three times a day, then flattened and ready to report on.
- Finding a dealWithout it: Deals looked up one at a time.With the portal: Deal and simple search across the client's categories, with the catalogue image a click away.
- Price trendsWithout it: Prices compared by hand over time.With the portal: Scatter plots and trend graphs of advertised prices.
- Share of voiceWithout it: Share worked out in spreadsheets.With the portal: Share of voice with a breakdown, exports, and charts saved to a personal dashboard.
- AccessWithout it: No way to limit each client to its own data.With the portal: Queries limited to the client's subscribed categories, with permissions per section and action.
- AccuracyWithout it: No check that both systems hold the same deals.With the portal: An evening comparison of both systems and a nightly repair of the reporting table.
03How it works
From capture to client, end to end
- 1
Capture
The client's team captures the deals from each catalogue in the capture system we also built.
- 2
Send
At 06:00, 12:00, and 17:30, new and changed deals are sent across in compressed chunks. Each chunk is saved and queued, then applied in the background within 30 seconds.
- 3
Prepare
Once a sync is complete, deals are flattened into one wide reporting table, the category tree is updated, and cached results are cleared.
- 4
Explore
Clients open their dashboard, price trends, share of voice, searches, catalogues, or the insights hub, each limited to the categories they subscribe to.
- 5
Drill down
From a chart they open the deals behind it, and from a deal the catalogue image at full size. Grids can be sorted, paged, and exported to Excel.
- 6
Check
At 20:00 the capture system checks that both sides hold the same deals. At 22:00 the portal removes orphaned rows from the reporting table and flattens any that are missing.
04What we built
Price trending
Scatter plots and trend graphs of advertised prices over time, filtered to the client's categories.
Share of voice
Share of voice across the client's categories, with a breakdown, exports of both, and the option to save a chart to a personal dashboard.
Search & catalogues
Deal search opens each deal with its catalogue image at full size, simple search gives a paged, sortable grid with Excel export, and each catalogue can be opened to see the deals it carried.
Custom Power BI reports
Custom Power BI reports built for individual clients are embedded in the portal's Reports menu, set up per client and shared only with the users chosen.
Insights hub
A beta workspace of charts for clients who subscribe to it, with a focus mode and a view of the underlying deals behind the chart.
Access by category
Each client is assigned categories across four levels, and its reports and searches are limited to them. Permissions are set per section and action, and personal dashboards belong to their user.
Sync from capture
Deals arrive in compressed chunks three times a day, are applied by a background queue with retries, and are checked against the capture system every evening.
Admin portal
Clients, their brands and categories, users, and permissions in one place, with usage and export reports, and inactive users deactivated automatically after 90 days by default, unless overridden.
05What each team gets
Clients
- Prices, trends, and share of voice for their categories
- The deals and catalogue images behind the charts
- Custom Power BI reports inside the portal
Admin team
- Clients assigned their brands and categories
- Permissions set per section and action
- Usage and export reports across clients
Capture team
- Their deals in front of clients three times a day
- An evening check that both systems match
- An email if a sync batch keeps failing
Management
- A log of every search clients run
- A category clients report emailed at 08:00
- Inactive users deactivated automatically
06How we delivered
- 2024
Build & launch
Started in late June, with price trending, share of voice, simple search, and client categories, published to production in mid-August, and deal search added in September.
- 2024–2025
Faster at scale
Server-side caching from August 2024, then indexes tuned for the reporting queries as the data grew.
- Early 2026
Insights hub
The insights hub in January, a faster sync in February, and drill-down to the underlying deals in March.
- Mid 2026
Reliable sync
Batch sync in compressed chunks with a background queue, retries, and a watermark, plus checks that both systems match.
07Built to last
- Sync files are saved and queued as they arrive, not processed on the request. A background task applies each chunk in a single transaction, retries on failure, and emails once if a batch still fails.
- A forward-only watermark moves on only after a whole sync succeeds, so a failed run is picked up again next time instead of leaving a gap.
- Verification by bucket: deal IDs are split into 2,048 buckets and compared by count and checksum, so only the buckets that differ need their IDs compared.
- Reports read from one flattened deal table with covering indexes, rather than joining many tables each time. A nightly job keeps it in step with the source tables.
- Results are cached on the server for 6 hours per client and filter, and the cache is cleared after each sync, so repeat queries come back quickly and new deals show once a sync completes.
- Every search is logged, even when served from the cache, so usage reports show what clients actually use.
- Kept current with regular technology, library, and framework updates, along with ongoing performance and security improvements.
- .NET
- ASP.NET Core
- SQL Server
- Entity Framework Core
- Angular
- Power BI
- Brotli compression
- GitHub Actions
Lots of data your clients need to explore?
We'll talk through how a reporting portal could give each client fast access to its own slice, with a way to drill down to the deals behind the numbers. Book a free 30-minute call with one of our engineers.
sales@happen.software · www.happen.software/contact
Keep reading
Related case studies
Retail & eCommerce · AI & automation
Productify.ai Product Data Platform
Happen Software (our own product)
- Since 2023 · 3 years
Productify.ai is our own AI product data platform. Teams send it product names, spreadsheets, or photos of packaging, and it returns e-commerce copy, taxonomy categories, translations, and structured pack data through a web portal, an API, or Zapier and Make. Clients in Europe, Singapore, and South Africa each run more than 8,000 operations a month.
8,000+AI operations a month for each client, with larger batches before peaks such as Easter and Christmas
Read the Productify.ai Product Data Platform case studyRetail & eCommerce · Rescue & rebuild
Broadsheet Deal Capture
Retail data and insights company
- Since 2020 · 6 years
A rewrite of an old Windows capture tool into a system that has captured 40,500+ retailers' broadsheet adverts and more than 3.8 million standardised, checked deals, with AI to find and read each deal and a capturer reviewing every result before it reaches the client-facing reports.
3.8 million+Deals captured, each in the same standard shape whatever the retailer or region
Read the Broadsheet Deal Capture case studyLogistics · Rescue & rebuild
On-Demand Courier Platform
1Fetch
- Since 2017 · 9 years
After a first attempt at their platform didn't work out, 1Fetch asked us to build it properly. We rebuilt ordering, payments, and accounts, and connected partners whose orders 1Fetch now pulls in, delivers, and reports back on automatically. More than 380,000 deliveries have been completed on it since 2017.
380,000+Deliveries completed on the platform since 2017
Read the On-Demand Courier Platform case study
