Work / 03 Leading marketing services group

A leading marketing services group priced campaigns by hand, with every estimate depending on who built it. We built a price-estimation platform that returns consistent, explainable numbers, and an assistant that answers pricing questions in plain language.

Client
Leading marketing services group
Engagement
5 months
Delivered
2024

ServicesApplied AI ApplicationsData engineering

outcomesummaryClient name withheld
  • Time to produce an estimate−80%
  • Spread between two estimates of the same campaign±18% to ±3%
  • Pricing records tagged100%

The brief

What they came to us with.

Pricing a campaign meant weighing geography, industry, campaign ambition and the kind of agency involved. Estimates lived in spreadsheets and in people’s heads, so two teams could quote the same campaign differently.

The group wanted one place to estimate prices, built on its own data, available to many users at once and ready to grow with the business.

Constraints

  • Every estimate explainable, line by line
  • Many users estimating at the same time
  • Pricing data kept separate for each user group
  • New markets and campaign types added without a rebuild

Before and after

What actually changed.

The same pricing knowledge, moved out of spreadsheets and into a platform.

what changedbefore
Data
Pricing data in separate spreadsheets
Tagged by whoever built them
Estimating
Estimates built by hand
Hours per campaign
Consistency
Two teams, two different quotes
Reasoning kept in people’s heads
Scale
Tied to a few experienced people
Hard to add a new market
Each estimate was only as good as the person who built it.

What we did

How an estimate is made.

  1. 01

    Tag the data before touching the model

    We collected pricing datasets, cleaned them, and tagged every record by geography, industry, campaign ambition and agency type. The tags are what make a price comparable and an estimate explainable.

    SourcesPrepareStoreCampaign briefsRate cardsAgency datasetsClean and taggeography, industry, ambition, agency typeTagged pricing datasetevery record comparable
    Fig. 1  From raw pricing sheets to a tagged datasetDiagram
  2. 02

    Make the estimate a chain you can read

    The calculation engine starts from a base price and applies one adjustment at a time: geography, industry, campaign ambition and agency type. Each step is shown to the user, so an estimate can be defended and changed.

    StartResultBase pricefrom the tagged dataset× Geography× Industry× Ambition× Agency typeEstimatewith every factor listed
    Fig. 2  How one estimate is built, step by stepDiagram
  3. 03

    Build it to grow

    The platform is a set of microservices behind one gateway, with load balancing, central logging and user management. A conversational assistant sits on top, so a planner can ask for a price instead of filling in a form.

    Calculation enginePricing data serviceLogging and monitoringConversational assistantUser managementAPI gatewayload balanced
    Fig. 3  The platform’s services around one gatewayDiagram

How it ran

How the work was paced.

Data and rules first, then the engine, then the assistant and the scale work.

Data collection and tagging

Gather, clean and tag the pricing history.

Data

Calculation engine

Encode the pricing rules and check them against past quotes.

Engine

Platform and assistant

Microservices, user management, conversational interface.

Platform

Scale and handover

Load balancing, logging, documentation, training.

Hand-over
Durations are in weeks
Wk 06121824

Outcome

What it changed.

Measured on campaigns estimated before and after the platform went live.

Time to produce an estimate

−80%

Before2 hrsAfter24 min

How measured: Average time from brief to a complete estimate, sampled before and after launch.

Spread between two estimates of the same campaign

±18% to ±3%

Before±18%After±3%

How measured: Difference between estimates of the same brief made independently by two teams.

Pricing records tagged

100%

BeforePartialAfter100%

How measured: Share of pricing records carrying all four tags in the production dataset.

Built with

  • PythonEverything glued together
  • Node.jsServices and APIs
  • ReactWeb interfaces

What we would tell the next team

  • Getting the tags right was most of the work, and it is what made the estimates trustworthy.
  • Showing every factor in the result turned the engine from a black box into a tool people defended in meetings.
  • Services behind one gateway meant new markets arrived as data, not as code.


Contact

Book a free 15-minute call to talk through what you are working on.

How we connect

  1. 01Book a short call

    Choose a time that works for you on our calendar.

  2. 02Discovery call

    A short call to understand the problem, the people and the constraints.

  3. 03Final scope and kickoff

    We send a clear scope and cost. Once you agree, we start.

Office

393, WeWork Vijohn Tower, 3rd FloorUdhyog Vihar Phase-4, GurugramHaryana 122016

Follow

LinkedIn