Day 1 · 14:00 · 90 min

AI as your analyst copilot

bongo.ai in the room

Day 1 · 14:00

A language model will draft dplyr you do not yet know how to type. That is a superpower and a hazard. This session is the operating protocol for the rest of the week — and for Monday at the office.

You will leave able to

  • Write a prompt that returns runnable R rather than a hallucinated statistic.
  • Review AI-generated code with a five-point checklist before it touches a slide.
  • Keep confidential commercial data out of consumer models.

On the desk

  • bongo.ai panel — gold button, every page
  • Your firm’s approved AI endpoint (if any)

The original version of this workshop asked PhD students to type every verb from memory. That was 2019. You are not a graduate student. You are a commercial leader with a full diary. AI is in the room so that syntax is no longer the bottleneck — judgement is.

What the model is good at

  • Translating *‘top 10 SKU descriptors, lower case, drop fragments’* into a dplyr pipeline.
  • Remembering ggplot2 argument names you will forget by Thursday.
  • Explaining an error message in English.
  • Drafting the YAML header of a Quarto brief.
  • Proposing three chart types for a given table shape — with the reasons to reject two of them.

What it will do to you if you let it

  • Invent a package that does not exist (ggboardroom).
  • Use gather() in 2026 without telling you it is superseded.
  • Assume US dollars, US weeks, and US fiscal years.
  • Average an NPS the way it averages a temperature.
  • Apologise confidently while being wrong about a join key.

The prompt that works

Do not paste the workbook. Paste the schema and the decision.

R
You are writing R (tidyverse, ggplot2) for a Lagos Business School
executive brief. Currency is NGN. Do not invent numbers.
Schema of nps_by_channel.csv:
customer_id, channel (branch/mobile/ussd/agent),
tenure_months (int), nps (-100 to 100), complaints_90d, region
Task: draft a ggplot that compares the DISTRIBUTION of NPS
by channelnot the mean. Prefer violin + box. Title and
subtitle fit a board pack. Return only the code.
Schema + decision + constraints. No customer rows.

The five-point review

  1. Does it run? Paste into a chunk. If it errors, send the *error* back, not a new essay.
  2. Does it use the join key you meant? region is not branch_id. sku is not barcode.
  3. Does it leak? Any filter that drops a segment EXCO cares about (a region, a brand, a channel) must be named in the subtitle.
  4. Would you sign the chart title? Titles are claims. ‘Digital is winning’ is a claim. ‘Mobile NPS, last 90 days’ is a description.
  5. Can you explain the geom? If you cannot say why it is a violin and not a bar, you are presenting someone else’s thinking.

A worked failure

A delegate asked, *‘Does mobile NPS cause lower complaints?’* The model returned a regression and a slide title: *Mobile app reduces complaints by 18%*. The data were observational. High-tenure customers use mobile and complain less. Tenure is the lurking variable. The correct title is *Complaints and channel, not yet causal*. We will labour this on Day 4.

Exercise 1.3

Interrogate the copilot

Open bongo.ai and paste the SKU schema (sku_id, category, region, description). Ask it to tidy packed descriptions. Then ask a second question: *What could this pipeline silently drop?* Bring both answers to the clinic.

  • Good second prompts: empty strings, bilingual tags, ‘n/a’, SKUs with no description.
  • The point is not the code. The point is the failure mode.