Nahuel Cabral
ES
← All projects

/ Case study · Public-sector tool

Radio Provincia — Advertising budget calculator

A public tool for Radio Provincia (AM 1270 and FM 97.UNE) where advertisers build their own campaign and see the budget instantly, with the official tariff and its discount rules applied automatically. Behind it, an internal panel lets the commercial team evaluate each request and issue the internal advertising order.

Visit live site (opens in a new tab)

Role
Full-stack development of the calculator and the commercial panel, as part of a two-person team.
Duration
Since May 2026
Client
Radio Provincia (Government of Buenos Aires Province)
Year
2026
  • Budget built live: campaign data, advertiser category and the AM and FM time slots
    Budget built live: campaign data, advertiser category and the AM and FM time slots
  • Benefits and discounts applied automatically, with the cap for the advertiser category
    Benefits and discounts applied automatically, with the cap for the advertiser category
  • Budget summary on mobile
    Budget summary on mobile

The problem

An advertising tariff with several time slots, discount categories and caps is hard to apply by hand: every quote depends on the combination of slot, seconds, advertiser type and campaign length.

The solution

A guided calculator in five steps: campaign data, advertiser category (which defines the special discount and its cap), any number of time slots whose seconds accumulate toward the discounts, optional digital ads on the website and the app, and the benefits computed automatically, with the budget updating live. Advertisers can print it, download it as a PDF or request a commercial evaluation. Behind it, an internal panel with roles and permissions follows each request until the order is issued, and records every action in an audit log.

Technical details

Front end

  • Next.js 16 (App Router)
  • React 19
  • TypeScript
  • Tailwind CSS 4

Back end / data

  • Next.js route handlers
  • Prisma ORM with MySQL
  • Read-only references to the external programming database of the station, by code and without foreign keys
  • PDF generation with Puppeteer

Features

  • Five-step guided flow with a live budget summary
  • Automatic discounts by advertiser category, AM + FM simultaneity and volume scales, with the cap per category
  • Rotating schedule and programme-specific slots, with their surcharge
  • Digital ad positions on the website and the app, with a long-campaign discount
  • Print, PDF download and request for commercial evaluation
  • Internal panel with login, roles and permissions, and an audit log
  • Request lifecycle until the internal advertising order is issued, with versioned templates

Design decisions

  • The official tariff lives in code as a pure, testable calculation, and each version is also stored in the database
  • A saved budget freezes its result, so a quote never changes if the tariff is later updated
  • The order PDF is generated on download from that frozen result

Result

  • Advertisers simulate their campaign and request an evaluation on their own
  • The official tariff and its discount rules are applied consistently
  • The commercial team receives structured requests, with every action traceable
Next projectStock control system →