Finance Study Path Restructure — Implementation Plan
Design: 2026-04-14-finance-study-path-restructure-design.md
Date: 2026-04-15
Batch 1: Note Splits (mechanical extraction)
Task 1.1 — Split order-books-and-venues.md into order-books.md + trading-venues.md
Source file:
2 - Areas/Finance/market-microstructure/order-books-and-venues.md (348 lines)
Steps:
- Read the full file (already done during design).
- Create
2 - Areas/Finance/market-microstructure/order-books.md:- Copy lines 1–164 (frontmatter through “Order Arrival as Queuing Theory”).
- Update the frontmatter title to
"Order Books"and tags to[market-microstructure, order-books, clob, matching-engine]. - Add a
## See alsofooter with links to[[trading-venues]],[[matching-engine-system-design]],[[trading-fundamentals]]. - Add a
> [!tip]callout: “For dark pools, PFOF, RFQ, and the venue landscape, see trading-venues.”
- Create
2 - Areas/Finance/market-microstructure/trading-venues.md:- Copy lines 165–348 (from ”## Dark Pools” through end).
- Add new frontmatter: title
"Trading Venues", date2026-04-15, tags[market-microstructure, dark-pools, pfof, rfq, venues],draft: false. - Add a
> [!info] Prerequisitescallout: “This note assumes familiarity with order-books — the CLOB structure, order types, and price-time priority.” - Keep the existing
## See also/ companion notebook links, updating any self-references.
- Do NOT delete
order-books-and-venues.mdyet (that’s Batch 7).
Verification: Both new files exist, each ~175 lines, no content lost.
Task 1.2 — Create the-greeks.md from options-payoffs.md Greeks section
Source file:
2 - Areas/Finance/derivatives-pricing/options-payoffs.md (338 lines)
options-basics.md (162 lines) already exists at
2 - Areas/Finance/derivatives-pricing/options-basics.md and covers
lines 1–199 of the old monolith (What Is an Option, Payoff Diagrams,
Buying vs Selling, The Straddle, Short Straddle). Verify it is complete.
Steps:
- Read
options-payoffs.mdlines 200–338 (Greeks section through end). - Create
2 - Areas/Finance/derivatives-pricing/the-greeks.md:- Frontmatter: title
"The Greeks: Delta, Gamma, and the LP Connection", date2026-04-15, tags[derivatives, options, greeks, gamma, delta],draft: false. > [!info] Prerequisitescallout linking to[[options-basics]].- Copy the Greeks content from
options-payoffs.mdlines 200–338: Delta, Gamma, Other Greeks table, “Putting It Together” comparison table. - Replace the ASCII art payoff diagrams (if any remain) with
![[diagram-name.svg]]placeholders for now (diagrams are Batch 5). - Add
## See alsolinking to[[options-basics]],[[impermanent-loss]],[[lp-profitability]],[[volatility]],[[lp-as-short-vol]]. - Add companion notebook reference:
[[code/the-greeks/notebook]](notebook to be created later or as a separate task).
- Frontmatter: title
- Verify
options-basics.mdhas correct See Also links pointing to[[the-greeks]]instead of internal sections. - Do NOT delete
options-payoffs.mdyet (Batch 7).
Verification: the-greeks.md exists, ~175 lines, covers delta/gamma/
comparison table. options-basics.md links to it.
Task 1.3 — Split volatility.md → trim to concept + create lp-as-short-vol.md
Source file:
2 - Areas/Finance/derivatives-pricing/volatility.md (266 lines)
Steps:
- Read the full file (already done).
- Edit
volatility.mdin place:- Keep lines 1–239 (frontmatter through “Measuring Volatility: Practical Considerations” and its subsections).
- Remove ”## The Connection to Impermanent Loss” section (lines 181–204)
and replace with a 2-sentence pointer:
The connection between volatility and LP profitability — how $\sigma_{\text{break-even}}$ acts as the LP's implied volatility — is developed in [[lp-as-short-vol]]. - Update
## See alsoto include[[lp-as-short-vol]]and remove the now-redundant[[options-payoffs]]link (replace with[[options-basics]]and[[the-greeks]]). - Result: ~150 lines.
- Create
2 - Areas/Finance/defi-markets/lp-as-short-vol.md:- Frontmatter: title
"The LP as Short Volatility", date2026-04-15, tags[defi, amm, options, volatility, impermanent-loss],draft: false. > [!info] Prerequisitescallout:[[volatility]](what vol is),[[options-basics]]and[[the-greeks]](straddles and gamma),[[impermanent-loss]](the IL formula),[[lp-profitability]](break-even condition).- Content assembled from three sources:
volatility.md“Connection to Impermanent Loss” section (lines 181–204)impermanent-loss.md“Connection to Options” section (lines 307–334)options-payoffs.md“Putting It Together” comparison table (lines 290–312)
- Structure:
- Brief intro: “This note ties together the three threads…”
- The IL↔σ² connection (from volatility.md)
- Break-even vol as the LP’s implied vol (from volatility.md)
- Short straddle vs LP comparison table (from options-payoffs.md)
- Where the analogy breaks (tails — from options-payoffs.md)
![[il-vs-straddle-overlay.svg]]placeholder (chart is Batch 5)- See also:
[[volatility]],[[the-greeks]],[[impermanent-loss]],[[lp-profitability]]
- Result: ~100 lines.
- Frontmatter: title
Verification: volatility.md is ~150 lines with no LP connection
detail. lp-as-short-vol.md exists, ~100 lines, all three source
sections migrated.
Batch 2: Note Trims (remove duplicates, add wikilinks)
Task 2.1 — Trim blockchain-transaction-lifecycle.md: move MEV bot pseudocode
Files:
2 - Areas/Finance/defi-markets/blockchain-transaction-lifecycle.md(348 lines)2 - Areas/Finance/mev/mev-fundamentals.md(192 lines)
Steps:
- Read
blockchain-transaction-lifecycle.md. - Cut the ”### What a MEV Bot Actually Does (Pseudocode)” section (lines 171–248, including the pseudocode block and “Key points” list).
- Replace with a 3-line summary + wikilink:
> [!tip] MEV bot mechanics > For the full pseudocode of a sandwich bot's core loop — mempool > scanning, profit simulation, bundle submission — see > [[mev-fundamentals#what-a-mev-bot-actually-does|What a MEV Bot Actually Does]]. - Read
mev-fundamentals.md. - Insert the cut pseudocode section before
## The MEV Supply Chain(line 117), under a new heading## What a MEV Bot Actually Does. Add a brief intro sentence: “The following pseudocode shows the core loop of a sandwich bot (simplified — a production bot handles many more edge cases).” - Result: lifecycle note ~270 lines, mev-fundamentals ~270 lines.
Verification: Lifecycle note no longer has pseudocode. mev-fundamentals has the pseudocode section. Both notes cross-link correctly.
Task 2.2 — Trim impermanent-loss.md: shorten options/adverse-selection connections
File: 2 - Areas/Finance/defi-markets/impermanent-loss.md (378 lines)
Steps:
- Read the file.
- Replace ”## Connection to Options: The LP as Short Volatility” section
(lines 307–334) with a short pointer:
## Connection to Options The quadratic dependence on $|\ln r|$ and the log-price symmetry are not coincidental — an LP position is economically similar to a **short straddle**. The full mapping (gamma exposure, break-even as implied vol, where the analogy breaks in the tails) is in [[lp-as-short-vol]]. - Replace ”## IL Is an Adverse Selection Cost” section (lines 336–361)
with a short pointer:
## IL as Adverse Selection IL can also be understood as the LP's adverse selection cost — the DeFi equivalent of a market maker losing to informed flow. The connection to [[kyle-lambda|Kyle's model]] is developed in [[kyle-lambda#connection-to-amms|Connection to AMMs]] (for multi-venue tokens) and applies equally to single-venue tokens where directional trading flow moves the price. See [[trading-fundamentals]] for the TradFi parallel. - Result: ~300 lines.
Verification: The core derivation (intuition → setup → formula → properties → reference table → “why can’t the contract avoid IL?”) is intact. The connection sections are now pointers.
Task 2.3 — Trim pump-fun-economy.md: remove duplicate AMM/LP sections
File: 2 - Areas/Finance/case-studies/pump-fun-economy.md (448 lines)
Steps:
- Read the file.
- Replace ”### What Is an AMM and Why Does It Need Liquidity Providers?”
section (lines 74–103) with:
### What Is an AMM? An AMM replaces the traditional order book with a mathematical formula that determines exchange rates from token reserves. See [[constant-product-amm]] for the full derivation. LPs deposit paired tokens to fund the pool and earn trading fees; the risk is [[impermanent-loss]]. - Shorten ”### Liquidity Providers as Passive Market Makers” section
(lines 200–245). Keep the first paragraph and the LP return formula.
Replace the IL explanation paragraphs with:
The catch is **[[impermanent-loss]]**: when a memecoin's price collapses, the pool accumulates worthless tokens and loses SOL. For the full derivation see [[impermanent-loss]]; for break-even analysis see [[lp-profitability]]. - Result: ~350 lines.
Verification: The microstructure analysis, revenue model, net flow analysis, and structural insights are unchanged. The duplicate explanatory material is replaced with wikilinks.
Batch 3: New Content
Task 3.1 — Generate research prompts for market-fundamentals and settlement-and-clearing
Per the vault’s CLAUDE.md research-first process, these two notes require verified research before writing.
Steps:
- Generate a research prompt for
market-fundamentals:- What is a financial market (function, not just definition)
- Asset classes: equity, fixed income, derivatives, crypto — what makes each distinct
- Market participants: buy-side vs sell-side, exchanges, clearinghouses, custodians, regulators
- Why markets exist: price discovery, risk transfer, capital allocation
- Ask the chatbot to cite sources and ask the user questions
- Generate a research prompt for
settlement-and-clearing:- Trade lifecycle: execution → clearing → settlement
- T+1 (US equities as of May 2024), T+2 (most other markets)
- DvP (Delivery vs Payment): what it prevents
- CCP (Central Counterparty): novation, netting, margin
- Settlement fails: what happens, how common
- Connection to DeFi: atomic settlement, no CCP needed, no netting
- Ask the chatbot to cite DTCC documentation, BIS standards
- Present both prompts to user and wait for verified research.
- After research returns, write both notes following vault conventions.
Verification: Research prompts generated and presented. Notes written only after user returns with verified content.
Task 3.2 — Write the-greeks.md content (from Task 1.2 extraction + enrich)
This task completes the note created in Task 1.2 by ensuring it reads as a standalone note, not a fragment.
Steps:
- Read the extracted
the-greeks.mdfrom Task 1.2. - Ensure the note has:
- Proper
> [!tip] Why this note existscallout connecting to IL/LP > [!info] Notationcallout for , , , ,- Clean transitions between Delta → Gamma → Other Greeks → LP mapping
- The IL-gamma connection callout ()
- Comparison table: short straddle vs LP position
- SVG placeholders for delta curve, gamma curve
- Questions to sit with
- Proper
- Result: ~175 lines, reads as complete standalone note.
Verification: Note reads top-to-bottom without needing options-payoffs.md.
Task 3.3 — Write lp-as-short-vol.md content (from Task 1.3 extraction + enrich)
Completes the note created in Task 1.3.
Steps:
- Read the extracted
lp-as-short-vol.mdfrom Task 1.3. - Ensure the note has:
> [!tip] Why this note existscallout: ties together volatility, options, and LP profitability- The IL ≈ -σ²/8 derivation pointer (link to impermanent-loss)
- Break-even vol formula with interpretation: “this is the LP’s implied volatility”
- Comparison table (from options-payoffs.md)
- “Where the analogy breaks” section (tails: straddle linear, LP bounded by sech)
- SVG placeholder for IL-vs-straddle overlay
- Questions to sit with
- Result: ~100 lines.
Verification: Note reads as the capstone connecting the options and DeFi threads.
Batch 4: Architecture Diagrams (8 SVGs)
Task 4.1 — Matching engine architecture diagrams (6 SVGs)
Output directory: 2 - Areas/Finance/market-microstructure/diagrams/
Render scripts: docs/diagrams/matching-engine-*.py
Follow existing conventions from docs/diagrams/gpg-*.py:
# /// scriptheader withdependencies = ["graphviz"]- Output to area-specific
diagrams/subdirectory - Vault color palette:
#5C6BC0(blue),#66BB6A(green),#E57373(red),#E3F2FD/#E8F5E9/#F5F5F5(light fills) - Helvetica font, 12px+ node labels, 16px titles
Steps:
- Create
docs/diagrams/matching-engine-hla.py:- Graphviz diagram: Traders → Gateway → Sequencer → Matching Engine → (Market Data, Drop Copy, Risk Engine)
- Output:
matching-engine-hla.svg
- Create
docs/diagrams/matching-engine-dataflow.py:- Ring buffers between stages, journal write, consumer cursors
- Output:
matching-engine-dataflow.svg
- Create
docs/diagrams/matching-engine-orderbook.py:- svgwrite diagram: SortedDict with price levels, deque per level, orders dict for O(1) cancel
- Output:
matching-engine-orderbook.svg
- Create
docs/diagrams/matching-engine-partitioning.py:- Sequencer → Partitioner → N engine instances (AAPL, TSLA, GOOG)
- Output:
matching-engine-partitioning.svg
- Create
docs/diagrams/matching-engine-failover.py:- Journal → Primary Engine + Standby Engine, promotion arrow
- Output:
matching-engine-failover.svg
- Create
docs/diagrams/matching-engine-marketdata.py:- L1 (NBBO) and L2/L3 (depth) feeds, snapshot + delta pattern
- Output:
matching-engine-marketdata.svg
- Run all 6 scripts:
uv run docs/diagrams/matching-engine-*.py - Edit
matching-engine-system-design.md:- Replace ASCII art at lines 71-89 with
![[matching-engine-hla.svg]] - Replace ASCII art at lines 343-347 with
![[matching-engine-partitioning.svg]] - Replace ASCII art at lines 382-391 with
![[matching-engine-failover.svg]] - Add
![[matching-engine-dataflow.svg]]in “How data flows between stages” section - Add
![[matching-engine-orderbook.svg]]in “Data structure: the order book” section - Add
![[matching-engine-marketdata.svg]]in “Step 8: Market data” section
- Replace ASCII art at lines 71-89 with
Verification: Run scripts, verify SVGs render. Open note and confirm embeds display correctly.
Task 4.2 — Transaction lifecycle diagram (1 SVG)
Output directory: 2 - Areas/Finance/defi-markets/diagrams/
Render script: docs/diagrams/transaction-lifecycle.py
Steps:
- Create
docs/diagrams/transaction-lifecycle.py:- Graphviz TB layout: Wallet → P2P Network → Mempool → (Searchers branch) → Builder → Block Producer → Execution → Confirmation
- Color-code: user actions (blue), public visibility (red warning), MEV actors (purple)
- Output:
transaction-lifecycle.svg
- Run the script.
- Edit
blockchain-transaction-lifecycle.md:- Replace ASCII art at lines 267-290 with
![[transaction-lifecycle.svg]]
- Replace ASCII art at lines 267-290 with
Verification: SVG renders. Embedded in note correctly.
Task 4.3 — Sandwich attack pool state diagram (1 SVG)
Output directory: 2 - Areas/Finance/mev/diagrams/
Render script: docs/diagrams/sandwich-attack-states.py
Steps:
- Create
docs/diagrams/sandwich-attack-states.py:- svgwrite diagram showing 4 pool states side by side: (1) Initial , (2) After front-run , (3) After victim , (4) After back-run — with arrows showing SOL/token flows and price at each state
- Output:
sandwich-attack-states.svg
- Run the script.
- Embed in
sandwich-attacks.mdafter the “Step by Step” section.
Verification: SVG renders. Pool states are visually clear.
Batch 5: Function Shape Charts (10 SVGs)
Task 5.1 — Options charts (4 SVGs)
Render script: docs/diagrams/options-charts.py
(single matplotlib script rendering multiple SVGs)
Steps:
- Create
docs/diagrams/options-charts.py:- Uses
matplotlibwith vault color palette # /// scriptheader withdependencies = ["matplotlib", "numpy"]- Renders 4 SVGs to
2 - Areas/Finance/derivatives-pricing/diagrams/: a.call-put-payoffs.svg— hockey stick payoffs for long call and long put on same axes. Strike K marked. Premium line (dashed) showing profit. b.short-straddle-pnl.svg— inverted V with premium collected, break-even points marked, loss zones shaded. c.delta-curve.svg— S vs Δ for long call (0→1 sigmoid) and long put (-1→0). ATM marked at Δ≈0.5. d.gamma-curve.svg— S vs Γ, peaked at ATM, decaying to zero both sides. Annotation: “highest curvature = fastest delta change.”
- Uses
- Run:
uv run docs/diagrams/options-charts.py - Embed in notes:
options-basics.md:![[call-put-payoffs.svg]]in Payoff Diagrams section,![[short-straddle-pnl.svg]]in Straddle section.the-greeks.md:![[delta-curve.svg]]in Delta section,![[gamma-curve.svg]]in Gamma section.
Verification: Run script, open SVGs, verify shapes are correct and colors match vault palette.
Task 5.2 — DeFi charts (5 SVGs)
Render script: docs/diagrams/defi-charts.py
Steps:
- Create
docs/diagrams/defi-charts.py:- Renders 5 SVGs:
a.
il-curve.svg→2 - Areas/Finance/defi-markets/diagrams/IL(r) = 2√r/(r+1) - 1 plotted for r from 0.1 to 10 (log scale x-axis). Symmetric shape visible. Key points labeled (r=2: -5.7%, r=0.5: -5.7%). b.amm-hyperbola.svg→2 - Areas/Finance/defi-markets/diagrams/xy=k curve with a trade marked: tangent line at pre-trade point (marginal price) and secant line to post-trade point (execution price). Gap between them = price impact. c.price-impact-comparison.svg→2 - Areas/Finance/defi-markets/diagrams/α/(1+α) (AMM) vs α (Kyle linear) plotted together. Concavity visible at large α. d.bonding-curve-shapes.svg→2 - Areas/Finance/defi-markets/diagrams/Linear, quadratic, exponential, and virtual-AMM curves overlaid on same axes. Supply on x-axis, price on y-axis. e.break-even-frontier.svg→2 - Areas/Finance/defi-markets/diagrams/σ on y-axis, V_d/L on x-axis. The break-even curve divides the plane into “LP profitable” (green, below) and “LP unprofitable” (red, above). Typical pool positions annotated (stablecoin pair, ETH/USDC, memecoin).
- Renders 5 SVGs:
a.
- Run:
uv run docs/diagrams/defi-charts.py - Embed in notes:
impermanent-loss.md:![[il-curve.svg]]before Reference Tableconstant-product-amm.md:![[amm-hyperbola.svg]]in Geometric Interpretation,![[price-impact-comparison.svg]]in Price Impactbonding-curves.md:![[bonding-curve-shapes.svg]]in Common Curve Shapeslp-profitability.md:![[break-even-frontier.svg]]in Break-Even Condition
Verification: Run script, open SVGs, verify math is correct (spot check: IL at r=2 should be -5.72%).
Task 5.3 — IL vs short straddle overlay (1 SVG)
Render script: docs/diagrams/il-straddle-overlay.py
Steps:
- Create
docs/diagrams/il-straddle-overlay.py:- Overlay two curves on same axes:
- IL: sech(s/2) - 1 (bounded, flattens toward -100%)
- Short straddle P&L: premium - |s| (linear tails)
- x-axis: log-price change s = ln(r)
- Annotations: “match here” (near s=0), “diverge here” (tails), “IL bounded” vs “straddle linear”
- Output:
2 - Areas/Finance/defi-markets/diagrams/il-straddle-overlay.svg
- Overlay two curves on same axes:
- Run the script.
- Embed in
lp-as-short-vol.md.
Verification: The two curves agree near s=0 and diverge in tails.
Batch 6: Manim Animations (6 animations)
Task 6.1 — Market order walking the book
Script: animations/order-book-walk.py
Animate a large buy order consuming ask-side depth levels one by one. Show the order book depth chart updating in real time: bars shrinking, price markers moving, effective spread widening.
Task 6.2 — Reserve rebalancing (IL mechanism)
Script: animations/il-rebalancing.py
Start with balanced pool (50/50 visual). External price indicator moves. Arbitrageurs trade: token X leaves, token Y enters. Bars rebalance. LP value vs HODL value shown as two counters diverging.
Task 6.3 — Delta shifting with price
Script: animations/delta-gamma.py
Show payoff curve of a call option. Tangent line at current price = delta. As price slides left/right, tangent line rotates. A separate delta gauge or curve updates in sync. The speed of rotation IS gamma — label it.
Task 6.4 — Sandwich attack sequence
Script: animations/sandwich-attack.py
4-beat animation: (1) Pool at initial state with pending victim tx visible, (2) Bot front-runs → pool shifts → price rises (annotated), (3) Victim tx executes at worse price (annotated with loss), (4) Bot back-runs → profit extracted (annotated).
Task 6.5 — Bonding curve lifecycle
Script: animations/bonding-curve-lifecycle.py
Animate: empty curve → tokens minting along it → SOL accumulating in reserve bar → threshold reached → “GRADUATION” flash → reserves flow into AMM pool representation → secondary trading begins.
Task 6.6 — Fee vs IL race
Script: animations/fee-vs-il-race.py
Price path (GBM) on top. Two cumulative counters below: green (fees, climbing steadily) and red (IL, spiking on big moves). When red crosses green, the LP is underwater. Run multiple paths to show the variance.
Batch 7: Study Guide Rewrite + Wikilink Cleanup + Deletions
Task 7.1 — Rewrite study-guide.md
File: 2 - Areas/Finance/study-guide.md
Rewrite completely to reflect the new two-track structure:
- Track A: 18 steps, 6 phases (1a, 1b, 2, 3, 4, 5, 6)
- Track B: 6 steps (B1–B6)
- Per step:
[[note]]link,[[code/topic/notebook]]link (if any), ~time estimate, “Focus on” bullets, “You’re ready when” checkpoint - Tips section at the bottom
Use the tables from the design document as the source of truth for step numbering and note assignments.
Task 7.2 — Wikilink cleanup
Update all references to split/renamed notes across the vault:
[[order-books-and-venues]] → [[order-books]] or [[trading-venues]]:
market-microstructure/_index.mdline 36 →[[order-books]]market-microstructure/spread-decomposition.mdline 129 →[[order-books]]study-guide.mdline 266 →[[order-books]]matching-engine-system-design.mdline 11 →[[order-books]]matching-engine-system-design.mdline 52 →[[order-books#price-time-vs-pro-rata-matching|price-time vs pro-rata]]matching-engine-system-design.mdline 550 →[[order-books]]+[[trading-venues]]
[[options-payoffs]] → [[options-basics]] or [[the-greeks]]:
derivatives-pricing/_index.mdline 23 →[[options-basics]]+[[the-greeks]]study-guide.mdline 132 →[[options-basics]]defi-markets/lp-profitability.mdline 39 →[[options-basics]]defi-markets/impermanent-loss.mdline 312 →[[the-greeks]]defi-markets/constant-product-amm.mdline 20 → split into two lines:[[options-basics]]+[[the-greeks]]derivatives-pricing/volatility.mdlines 173, 204, 263 →[[the-greeks]]or[[options-basics]]as appropriate
Reading order callout in constant-product-amm.md:
- Rewrite the
> [!tip] Recommended reading ordercallout (lines 13-25) to match the new 18-step Track A path.
code/index.md:
- Update notebook listings for any new notebooks (
code/the-greeks/,code/options-basics/).
derivatives-pricing/_index.md:
- Update row for options-payoffs to list
options-basics+the-greeks.
Task 7.3 — Delete old files
After verifying all content has been migrated and all wikilinks updated:
- Delete
2 - Areas/Finance/market-microstructure/order-books-and-venues.md - Delete
2 - Areas/Finance/derivatives-pricing/options-payoffs.md
Batch Summary
| Batch | Tasks | Depends on | Can parallelize? |
|---|---|---|---|
| 1 | Note splits (1.1, 1.2, 1.3) | Nothing | Yes — all 3 are independent |
| 2 | Note trims (2.1, 2.2, 2.3) | Nothing | Yes — all 3 are independent |
| 3 | New content (3.1, 3.2, 3.3) | Batch 1 (for extracted content) | 3.1 blocks on user; 3.2 and 3.3 after Batch 1 |
| 4 | Architecture diagrams (4.1, 4.2, 4.3) | Nothing | Yes — all independent |
| 5 | Function charts (5.1, 5.2, 5.3) | Batches 1-3 (notes must exist for embedding) | Yes — all independent |
| 6 | Manim animations (6.1–6.6) | Nothing (animations are standalone) | Yes — all independent |
| 7 | Study guide + wikilinks + deletions | All previous batches | Sequential (7.1 → 7.2 → 7.3) |
Batches 1, 2, 4, and 6 can all start in parallel. Batch 3 starts after Batch 1. Batch 5 starts after Batches 1-3. Batch 7 is the final pass after everything else is done.