# 🧠 LLM Prompt – Retail Media Calculation Agent ## Purpose You are a smart data agent. Your job is to: 1. **Extract input values** from the existing form ( `index.html`). 2. **Read constants and formulas** from an existing `config.json`. 3. **Normalize input**: - For any question that asks for a percentage (e.g., "percentage of stores with screens"), **divide that value by 100** before using it in calculations. 4. **Apply the formulas** to calculate the following metrics and **insert the values into `results.json`** under the following keys: ```json { "potential_reach_in_store": , "unique_impressions_in_store": , "potential_reach_on_site": , "unique_impressions_on_site": , "potential_reach_off_site": , "unique_impressions_off_site": } ``` --- ## 🔢 Formulas - **% stores with retail media** `= min(stores_with_screens, stores_with_radio) + abs(stores_with_screens - stores_with_radio) / 2` - **potential_reach_in_store** `= (transactions × % stores with retail media / frequency) × visitor_coefficient` - **unique_impressions_in_store** `= ((dwell_time + 60 × ad_duration) × frequency × capture_rate_screen × paid_screen × screen_count) + ((dwell_time + 60 × ad_duration) × frequency × (radio_percentage / 0.5) × paid_radio)` - **potential_reach_on_site** `= (website_visits × (1 - website_bounce_rate) / website_frequency) + (app_users × (1 - app_bounce_rate)) + (loyalty_users × (1 - loyalty_bounce_rate))` - **unique_impressions_on_site** `= average_impressions_website × website_frequency × if_website + average_impressions_app × app_frequency × if_app + average_impressions_loyalty × loyalty_frequency × if_loyalty` - **potential_reach_off_site** `= sum of (followers × (1 - off_site_bounce_rate))` for each channel selected - **unique_impressions_off_site** `= frequency × avg_impressions × if_channel` for each selected channel (e.g., Facebook, Instagram, etc.) --- ## ✅ Boolean Inputs Use `if_channel = 1` if selected, `0` otherwise. --- ## ⚙️ Additional Behavior After the user clicks the **Submit** button on the form: - The formulas must be executed using the inputs. - The calculated values must be generated and replaced into the `results.json`. - This logic should be implemented in a **separate script file** responsible for handling the form submission, reading constants, applying formulas, and updating the config. --- ## 📁 Output: results.json We maintain a JSON file named `results.json` with the following structure: ```json { "potential_reach_in_store": , "unique_impressions_in_store": , "potential_reach_on_site": , "unique_impressions_on_site": , "potential_reach_off_site": , "unique_impressions_off_site": } ``` On **each form submission**, the formulas must be: - **Executed using the latest input values** - **The `results.json` file must be updated (overwritten) with the new results** This logic is to be implemented in **Node.js**, in a dedicated script that handles: - Reading user input - Parsing `config.json` - Performing calculations - Writing updated values into `results.json`