“I want to analyze this” → “Then launch Codex or Work again.” Convenient, yes. But for long-running research or a content factory, making that the default can force work to stop halfway through.
The saving trick is not to avoid Codex or Work. It is to use them for the heavy setup once, then move repeated analysis back into Chat.
Why move work back into Chat at all?
Because Work and Codex have explicit usage limits.
OpenAI’s current documentation says Codex, ChatGPT Work, ChatGPT for Excel and Workspace Agents draw from the same agentic usage and credit pool when available on a plan. Codex also has 5-hour and weekly usage windows. Once the allowance is exhausted, the next work may have to wait for reset or use additional credits if available.
Long coding sessions, large repositories, bulk file work and extended agent runs can burn through that shared pool quickly. A research workflow can therefore hit the very annoying state of “the experiment is still running, but this week’s agent allowance is not.”
Standard Chat uses a different usage structure. Chat still has model- and feature-specific limits, and even Pro should not be described as literally unlimited. But moving iterative work out of the shared Work/Codex agentic pool can greatly reduce forced interruptions caused by exhausting that pool.
The goal is not to save “AI.” It is to save the expensive execution surface.
Do not rent an excavator for every trip. Build the road once, then drive on it.
The simple split: construction versus laboratory
- Fetch, connect and convert external data: Codex / Work / local tools
- Freeze it into reusable formats: Parquet / CSV / JSON / manifests
- Repeat hypotheses, analysis and reporting: Chat
Layer 2 is the key. Once Chat receives reusable material, changing one condition no longer requires another Codex session.
Article-factory example
Keep Codex for repository-wide refactors, new import scripts, deployment repair and first-time bulk conversions.
Move recurring production to Chat:
- conversation-to-article drafting
- source-language editing
- 12-language generation
- privacy and duplication checks
- title and heading improvement
- additional research
- GitHub source drafts
- revisions of existing articles
If every article requires “summon Codex,” you have built a Codex-summoning factory instead of an article factory.
Market-analysis example
The heavy part is usually initial data preparation.
Let Codex perform API connectivity, bulk downloads, DBN or binary decoding, timestamp alignment, hashes, time splits and canonical Parquet conversion once.
Then use Chat repeatedly for ES / NQ / 6E / 6J, BTC / ETH, and all JPY pairs on bitbank.
Analyze queue behavior, cancellations, partial fills, adverse selection, spread capture, inventory cost, maker rebates, latency stress, placebo tests, parameter neighborhoods and long-term stability.
The primary question is not “will the next tick rise?” It is who urgently needs to trade, where liquidity disappears, which queue positions are worth holding and how to handle inventory after only one side fills.
Build a Chat bundle, not a raw-data mountain
research-bundle/
DATA_MANIFEST.json
CHECKSUMS.sha256
DATA_QUALITY.csv
SPLITS.json
discovery/*.parquet
validation/*.parquet
final_sealed/*.parquet
RESEARCH_STATE.json
CHECKPOINT.md
Use consistent order-book fields where possible:
ts_event, ts_recv, venue, symbol, event_type,
side, price, size, order_id, sequence, action
If an L2 market has no order ID, use null. Inventing missing fields turns research into fan fiction with excellent column names.
Keep Final sealed
Split Discovery, Validation and Final before performance tuning.
- Discovery: build hypotheses
- Validation: try to break them
- Final: open once after rules are frozen
Cheap analysis is still bad analysis if the holdout leaks into tuning.
What should stay in Work or Codex?
| Job | Best place |
|---|---|
| Signed-in website operations | Work |
| Large binary download/conversion | Codex / local |
| Repository-wide implementation/testing | Codex |
| 24/7 WebSocket collection | local persistent collector |
| Analysis of prepared data | Chat |
| Hypothesis generation and falsification | Chat |
| Python analysis and simulation | Chat |
| Writing, translation and editing | Chat |
This is not “Chat can do everything.” It is separating one-time construction from research you repeat dozens of times.
Expensive habits
- redownloading the same data every session
- returning to Codex for every parameter change
- uploading the same huge ZIP repeatedly
- using Work for ordinary search with no login workflow
- keeping project state only in conversation memory
Hashes, manifests, partitions, RESEARCH_STATE.json and CHECKPOINT.md prevent much of this waste.
Target architecture
External sites / APIs / GitHub / market data
↓
Codex / Work when necessary
↓
canonical Parquet + manifest
↓
Chat
hypothesis → analysis → falsification
↓
Validation → Final
↓
article / report / GitHub
Reaching outside is occasional. Thinking repeatedly about material you already have is continuous.
The saving trick is not “never use Codex.” It is making Codex build enough infrastructure that you no longer need it for every iteration.
References (4)
- OpenAI Help Center: https://help.openai.com/en/articles/11369540
- GPT-5.6 in ChatGPT: https://help.openai.com/en/articles/20001354-gpt-56-in-chatgpt
- ChatGPT Work and Codex: https://help.openai.com/en/articles/20001275-chatgpt-work-and-codex
- Databento Pricing: https://databento.com/pricing


