You don’t need a Jupyter server or five browser tabs to get good analysis. Code Interpreter (aka Advanced Data Analysis) lets you upload files, run Python in a sandbox, and walk out with clean charts and downloadable artifacts - all inside one chat.
Used well, it feels like a fast teammate. Used poorly, it’s a confused intern. Let’s get you the teammate.
What it actually is
It’s a secure Python runtime bound to your chat. No outbound web calls from code. Your files live in that session’s working directory. You can attach common docs, spreadsheets, images, and PDFs. Google Drive and OneDrive work, too, so you can pull data without a local download.
The practical limits matter. Think in the range of ~10 files per chat, hundreds of MB per file (varies by type), and a token-bound ceiling for text-heavy docs. Keep it lean and you’ll go faster.
The cadence that never fails
Start by telling it the job, not the task. “Goal: find churn drivers and propose a retention test.” Then tell it what it’s working with: “customers.csv (200k rows), events.csv (1.2M rows).” Ask for a plan before it writes a line of code. Approve or edit that plan. Only then, run.
This takes an extra minute up front and saves ten later. It also forces clean, commented code and a breadcrumb trail you can hand to a teammate.
Make the data easy to love
Rename columns to something human. Confirm dtypes and missing values on load. Ask for a one-pass profile: schema, basic stats, three charts with short takeaways. If the files are huge, send a representative slice first. Once the pipeline reads and cleans reliably, swap in the full data.
Document as you go. A running “methods.md” next to your CSV exports is gold when you revisit the project or need to defend a conclusion.
Talk like an analyst, not a genie-wisher
Say: “Draft steps, risks, and checks - then wait.”
Say: “Print shapes and head/tail each time we transform.”
Say: “Catch IO/parse errors; if something breaks, give two fixes.”
Say: “Save every output to /mnt/data with a timestamp and list them at the end.”
You’re not being fussy - you’re building a small QA harness around the model.
Charts that explain themselves
Ask for labeled axes, units, and readable titles that include the date range. Ask for annotations on key points. If you’re running a regression, follow with residuals and a one-paragraph summary. If you’re showing categories, limit to the top 10 and print the table that produced the chart beneath it.
If a chart doesn’t answer a question, say so and ask for a better one. Treat visuals like arguments, not decorations.
Working with messy documents
Long PDF? Mixed tables and prose? Start with structure extraction: headings, tables, figures. If it gets noisy, export a cleaned .txt or .md first, then analyze that file. You’ll lose some formatting, but you gain control. For recurring reports, let it package a summary and the raw pulls side by side.
Privacy, provenance, and control
The sandbox can’t fetch the internet. If you need live data, you’ll either attach it or use a connector in a different workflow. In settings, you can turn off model-improvement training for new chats. Inside the session, ask for a log of every file created and every transformation performed. Future you will thank present you.
When things go sideways
Files disappear? Ask it to list the working directory and re-attach as needed. Big spreadsheets timing out? Split by period or topic; prototype on a sample and scale up once the steps are sound. Google-native formats not loading? Export to .csv, .xlsx, or .pdf - or attach directly via Drive/OneDrive.
A simple, repeatable “day one” flow
- Attach the smallest useful data that represents the shape of your real world.
- Set the goal and constraints. Ask for a plan. Approve it.
- Run. Inspect outputs like you would a junior’s PR.
- Package: charts as PNGs, a clean CSV, and a concise methods file.
- Download the artifacts, or continue in the same chat if you’re iterating.
Beyond analysis

Teach with it. Upload a glossary or a short rulebook; generate flashcards and quick quizzes that check for understanding instead of trivia.
Hire with it. Critique a resume line by line, then produce a tailored rewrite and a checklist for ATS alignment.
Write with it. Pair a dataset with a short narrative and ask for a publishable, figure-backed one-pager.
Remember, clarity first. Plan before code. Keep files light. Force reproducibility. When you do that, Code Interpreter stops being a cute demo and starts behaving like a dependable analyst who ships.
Sources
- OpenAI. (2024, May 16). Improvements to data analysis in ChatGPT. https://openai.com/index/improvements-to-data-analysis-in-chatgpt/
- OpenAI Help Center. (n.d.). Data analysis with ChatGPT. Retrieved December 1, 2024, from https://help.openai.com/en/articles/8437071-data-analysis-with-chatgpt
- OpenAI Help Center. (n.d.). File uploads FAQ. Retrieved December 1, 2024, from https://help.openai.com/en/articles/8555545-file-uploads-faq
- OpenAI Help Center. (n.d.). What types of files are supported? Retrieved December 1, 2024, from https://help.openai.com/en/articles/8983675-what-types-of-files-are-supported
- OpenAI Help Center. (n.d.). Data Controls FAQ. Retrieved December 1, 2024, from https://help.openai.com/en/articles/7730893-data-controls-faq
- OpenAI Help Center. (n.d.). What if I want to keep my history on but disable model training? Retrieved December 1, 2024, from https://help.openai.com/en/articles/8983130-what-if-i-want-to-keep-my-history-on-but-disable-model-training