← backChangelog
1.13.12026-09-10
- Groundwork for a future upgrade. Nothing changes in how you use the journal today.
- Fixed: Sync Trades could fail outright, syncing nothing, when TastyTrade was marked as connected but wasn’t actually set up on this computer — even when your other brokers had trades waiting. Those brokers now sync as normal, and the sync window says TastyTrade was skipped.
- Clearer messages when TastyTrade isn’t connected, and when signing in is refused because of the devices already on your account.
- Fixed: activity your broker posts overnight — assignments, exercises, expirations, dividends — could be missing from the journal until the market opened the next morning. The journal only looked for new activity once trading had resumed, so anything booked after the close sat unseen. It now checks once at the start of each day as well. This also affects a 0DTE you realized by hand: if it finished out of the money at 4pm but was assigned after hours, the journal kept looking for the broker’s record and replaces your entry with it when it arrives.
- Fixed: in Light theme, the sign-in / reconnect screen was hard to read. The title (“Reconnect your journal”) and Diagnostics sat as dark type on a dark panel — nearly invisible — and helper text washed out to pale gold on the card. That screen is now cream in Light theme, with dark readable type on the title, the code and email fields, the helper copy, and Diagnostics. Dark theme is unchanged.
- Fixed: in Light theme, the “Link to position” list on a trade’s details page was unreadable. The list stayed on a dark panel while the type inside it was the dark type Light theme uses everywhere else — so the positions you were choosing between sat as dark text on a dark background, close to invisible. That list is now cream in Light theme, with readable dark type on the strategy names, the dates and the Open marker. Dark theme is unchanged.
- Fixed (Interactive Brokers): if you trade US options from a timezone ahead of New York — Australia, New Zealand, Japan — a close could show as the next calendar day, and a last-day-of-the-month trade could land in the next month’s P&L. IBKR’s Flex report stamps the fill in your account’s local time, and the journal was using that clock’s date instead of the New York trading day. Closes now follow the market session. You don’t need to change your Flex query. If you already have IBKR trades in the journal, you’ll be asked to rebuild them once so the dates catch up.
- Smart Watchlist: searching and filtering no longer stack. With Oversold and IVR > 30 selected, typing “SP” used to search only inside that already-narrowed list — so a name you knew was on the watchlist could come back as “no match,” and the one Clear button wiped the search and the filters together. Now they take turns. Typing a search sets the BXTrender, IV rank, and Earnings filters aside — they dim and read as cleared, but your selection is remembered — and the search runs against the whole list. The × in the search box clears the search and brings those filters straight back. Clicking a filter while a search is typed clears the search and applies the filter. Clear now sits beside the filters and resets only them; the search box has its own ×.
- Fixed: the app could fail to launch — over and over, with nothing on screen to explain why — if an older copy of it was opened after a newer version had already updated your journal. That usually means starting a copy left behind somewhere else: one still sitting on a mounted disk image, one in your Downloads folder, or an older copy left in Applications. An older version can’t read a journal a newer one has already updated, but rather than saying so it simply closed during startup, every single time. It now tells you exactly what happened, points you to open the newest version you have installed, and makes clear your data is untouched and nothing is wrong with it.
- Related: your backups are better protected when that happens. Each of those failed launches was quietly taking up a backup slot, and enough attempts in a row could push out the older backup that was actually worth keeping. Those launches no longer write a backup at all. Repair is safer too — it used to offer the newest backup even when that copy was one the older version still couldn’t open, setting your good data aside to restore it. Repair now skips backups an older version can’t read, and tells you to install the newer version instead of leaving you in the same loop.
1.12.142026-09-03
- Fixed (Robinhood): if you have more than one Robinhood account, they were all being filed into a single account in the journal. A Robinhood activity report doesn’t say which account it came from — nothing in the file identifies it — so every Robinhood import went to the first account the journal had seen, with no prompt and nothing to suggest anything was wrong. Trades could also go missing in the process: the journal skips a trade it has already imported for an account, so the same position opened in two of your accounts on the same day was counted once instead of twice. Every Robinhood import now asks which account it belongs to — pick one you already have, or create a new one and name it there and then. The same question appears for any export that doesn’t name its account, such as a TastyTrade or Fidelity file that was renamed after downloading. Trades you have already imported stay exactly where they are; if your accounts are mixed together, Utilities ▸ Recent imports ▸ Reassign moves a file’s trades to the right account.
- Added: an import you were asked about but never answered — you closed the window, or quit the app before choosing an account — is no longer stranded. Utilities now lists it under “Imports waiting on you,” where you can finish it by choosing an account or discard it outright.
- Utilities ▸ Reassign can now move an import into a brand-new account instead of only one that already exists: choose “New account…”, give it a name, and it is created as part of the move. Reassigned trades also open properly now — previously a moved trade still pointed at the account it came from, so clicking it did nothing.
- Fixed: an automatic update that didn’t finish installing could leave the app opening to a blank screen, with nothing to explain why. This happened if the app was reopened while an update was still installing in the background. The app now waits for an install to finish before reopening, recognizes an update that failed to complete, and tells you — pointing you to the installer download rather than leaving you with a blank window.
- Windows: the app now clears its cached interface files at startup, so a partly-applied update can’t leave it showing a broken or outdated screen.
- thinkorswim import: if your Account Statement is missing columns we need — usually because the Account Trade History columns were customized — the error now names those columns and how to restore them, instead of reporting the whole section as missing when it was there all along.
- thinkorswim export instructions now note that the Account Statement export is desktop-only, with a link to download the thinkorswim desktop app.
1.12.132026-09-01
- New — Add your own open stock positions. Some brokers only export the last year, so stock you bought before that has no purchase on record and never shows as a position. Utilities ▸ Manual open equities lets you enter it yourself — date, shares, price, long or short — and it becomes a real holding: it appears in Open Equities, counts toward covered calls, and closes against later sales with proper P&L. Entries can be edited or removed at any time.
- Market Awareness: the morning brief now lands before the opening bell. It was meant to arrive shortly after the 8:30am ET prints, but its actual arrival drifted — often past 9:15am, by which time the session it was written to prepare you for had already started. It now arrives at 8:45am ET each weekday, with the midday refresh unchanged.
- Market Awareness: an event that runs across several days now appears on every day it covers, instead of only its first. The Jackson Hole symposium sat on the Thursday alone, while a speech given on the Friday of that same symposium showed up beside it as an unrelated Friday event — so one gathering read as two separate things happening on two different days. Multi-day events now carry their full span, and the calendar labels them with it.
- Market Awareness: the brief and the calendar no longer disagree about when something happens. A date named in the written summary now matches the date that same event carries on the calendar below it, and two separate events stay separate instead of being run together as one.
- Market Awareness: the brief now says when it last updated and when the next one is due — “Updated 3h ago · next ~12:00pm ET” — so a brief you open in the afternoon is recognizably this morning’s work rather than something that might have gone stale without saying so.
- Fixed (Smart Watchlist): a wrong earnings date could stick for months with no way to correct it. Once any date was on a name, every later refresh kept that date and skipped the fresh one it had just fetched — so a bad date could only fix itself by passing, and a date set months out meant months of the wrong countdown, on the card and in that name’s IAG Read. Fresh data now corrects a date as soon as it disagrees, and a verified date can be pinned by hand when the source itself is wrong.
- IAG Read now covers ETFs properly. SPY, QQQ, SMH and the rest were getting thin reads — sometimes none at all — because a fund throws off none of the earnings, guidance or management news a single company does. ETF reads are now written for what actually moves a fund.
- Trade Replay: every event card now uses the same contract chips as the Trades page — quantity, expiry, days-to-expiry, strike, call or put — instead of a stack of Strikes / Exp / Underlying text rows. Days-to-expiry is as of that event, not today, so an entry in June on a July contract reads the DTE you actually had then. The stock price sits in the card header next to the title on every card, so you see the level each decision was made at without hunting for a row.
- Trade Replay: a roll card now shows the old contract turning into the new one — the same chips, with a connector between them — and the money for that leg underneath: what it cost to buy the old one back, what that closed leg itself made or lost, and the premium the new one collected. A two-sided roll gets a section per side rather than one blended net. Underneath, Cumulative P&L is the running total of legs you’ve actually closed; it does not count the new premium as already earned, so a roll that bought back at a $30 loss and collected $310 still reads −$30 at that moment, not +$280.
- Trade Replay: closing a trade is now two cards. The first marks the close — the contracts you exited and the stock price at the time. The second does the math: opening credit, credits collected along the way, closing debit or credit, and net P&L as a dollar amount and a percentage of the original premium. Mixing the action and the score on one card made both harder to read.
- Trade Replay: a covered call is named as a covered call. The entry card was using a classifier that couldn’t see the shares sitting underneath, so the same trade the journal already called a Covered Call would read Naked Short Call on replay — and the stock lot didn’t appear at all. Replay now uses the journal’s own strategy name, and the shares show as their own chip.
- Trade Replay: delta on the chart and on the cards starts off. Turn it on from the chart legend when you want it; it used to come on by itself except on verticals and iron condors.
- Fixed (IBKR): a Canadian-dollar account had its net liq taken at face value in U.S. dollars. IBKR reports net liquidation in the account’s base currency, and the journal keeps everything in USD — so a CAD account’s starting capital on the Dashboard was overstated by the exchange rate, and every % of net liq figure computed from it was too low. Net liq is now converted to USD at each day’s rate as it arrives, on AutoSync and on manual Flex imports alike. Your Flex query needs the Account Information section enabled (already part of the setup steps) so the statement says which currency it is in; a day with no exchange rate on file is left blank rather than stored wrong.
1.12.112026-08-31
- Fixed: at the start of a new month, the new month could be missing from the month picker — with no way to select it — until you restarted IAG Journal or a sync brought in new trades. If you leave the app open, as most people do, it worked out which months to offer once at startup and never revisited that: a journal left running overnight on the 31st was still offering last month’s list on the 1st, and your first trades of the new month had nowhere to appear. The month list now keeps up with the calendar by itself — the new month arrives within a minute of the day turning over in New York, or the moment you click back into the app.
- Fixed: if you trade US markets from outside US Eastern time — the UK, Europe, Australia — the journal’s month could turn over early, by as much as half a day. The app took the month from your computer’s clock, but your trades are filed against the New York trading day, so on the last afternoon of the month a journal in London or Sydney would jump ahead and show an empty new month while the month you were actually still trading sat one click away. The journal’s month now follows the New York market calendar — the same calendar your P&L is filed under. Times that are genuinely about you stay in your own local time, as they always have: the “As of” stamp on your last sync, IAG Read times, and Market Awareness event times.
- When the month rolls over while you are sitting in the app: if you were on the current month, the journal moves with you and reloads — open trades and open positions belong to the new month now, and the figures refresh to match instead of quietly staying with the old month until a restart. If you were looking back at an earlier month, nothing moves under you; the new month simply becomes available in the picker.
- Trade Replay: a roll card now shows the two halves of the roll — what it cost to buy the old position back, and the premium the new one collected — in place of a single net credit or debit. The net figure hid the size of what you were handling: a $135 credit reads the same whether you paid $200 to close and took in $335, or paid $2,000 and took in $2,135.
- Trade Replay: the closing card now shows the underlying price at the exit, next to the P&L — the same price the entry and roll cards have always carried, so you can see where the stock finished against the level each decision was made at.
1.12.102026-08-27
- New — Pause AutoSync. Every connected broker on Manage Brokers now has a Pause button that stops automatic syncing without disconnecting: your keys stay saved, the connection stays put, and Sync Trades still works whenever you run it yourself. Until now the only ways to stop a broker syncing were to disconnect it — which clears the keys you’d have to go and fetch again — or to close the app entirely. Resume puts it straight back.
- Fixed (Interactive Brokers): if you trade from outside US market hours — the UK, Europe, Australia — your IBKR trades could be missing from AutoSync for most of the day, every day. Interactive Brokers finalizes the previous day’s statement overnight, hours after the New York close, but the journal only went looking for a new one once the New York market had traded again. So a sync at 8am in London found nothing, and the previous day’s trades didn’t arrive until after 2:30pm your time. The journal now collects a statement as soon as there is a new one to collect, whether or not the market has reopened — still only once a day, and still quiet over a weekend.
- Fixed (Interactive Brokers): a small, fixable problem with your Flex setup could turn into something much worse. If your token expired, or a query was changed or deleted, IAG Journal simply kept asking — every hour on its own, and again on every press of Sync Trades. Interactive Brokers counts failed requests, and enough of them make it stop accepting requests for your whole account: “Too many failed attempts. Please review your configuration.” The journal now stops after the first clear refusal instead of retrying into a wall, pauses IBKR syncing until you reconnect, and tells you what IBKR actually said — including their error code, so a support message can be answered on the first reply rather than the third. It also asks more slowly while IBKR prepares a statement, staying inside the request limits they publish.
- Interactive Brokers: an expired Flex token now says it has expired. Flex tokens don’t last forever — you choose a lifetime when you create one — and when yours ran out the journal showed IBKR’s raw reply with no hint of what to do about it. It now names the expiry as the cause and points you to IBKR Client Portal (Settings ▸ Flex Web Service) to generate a replacement, then Replace keys to enter it.
- Interactive Brokers: if you do run into “Too many failed attempts,” the setup screen now explains what it means — it’s a lock on IBKR’s side, it applies to your account rather than just that token (so generating a new one won’t clear it), and testing again while it’s in place can extend it. Close IAG Journal, leave it a few hours, then test once. The Test button is spaced out for the same reason: each press sends a real request to IBKR, and rapid presses were part of how accounts ended up locked.
- Interactive Brokers: if your optional near-real-time (Trade Confirmation) query stops being valid at IBKR — deleted or changed in Client Portal — the journal now turns that add-on off and tells you, instead of retrying it forever. Your once-daily sync is unaffected, and you can re-add near-real-time trades from Manage Brokers whenever you like.
- Fixed: when a sync skipped Interactive Brokers — because it had run recently, or because its statement only changes once a day — the sync window said nothing at all. It listed your other brokers and left you to work out whether IBKR was broken. Skipped brokers are now named, with the reason.
- Added: the Auto-refresh setting (Settings ▸ Display) only appeared if you had TastyTrade connected, even though it governs how often every connected broker re-syncs while the app is open. If you sync with Interactive Brokers or Schwab only, it was deciding your sync frequency without ever showing you the choice. It’s now there for any connected broker.
1.12.92026-08-26
- Fixed (Mac): IAG Journal could insist it couldn’t reach iagjournal.com — blaming a firewall or antivirus — when nothing was blocking anything. What had actually happened is that your Mac’s Keychain stopped letting the app overwrite its saved sign-in. Reading it still worked, so nothing looked wrong from the outside. But the app renews its session on a schedule, and a renewal it can’t save doesn’t count — so those check-ins quietly stopped landing, and after enough days the app would lock behind the paywall on a subscription that was paid and current. IAG Journal now repairs the Keychain entry itself. If this happened to you, it heals on the next launch: nothing to re-enter, no sign-in code needed, and your journal was never at risk — the problem was only ever about where the app keeps its own sign-in.
- When a check-in does fail for something on your own computer rather than the connection, the app now says so instead of pointing you at your network. The firewall and antivirus message is still there for genuine connection problems, where it belongs.
1.12.82026-08-26
- Fixed: a Wealthsimple activity export downloaded from late August 2026 onward would not import — it stopped with “Unrecognized CSV format” and offered to map the columns by hand, with no way through. Wealthsimple renamed the date column in that export and split the time out beside it; both the CSV and Excel versions are recognized again and import directly. Re-exporting a period you already brought in still won’t duplicate anything.
- Fixed: Total Trades on Period Statistics could disagree with the daily bars on Period Performance and the Calendar. Those three now use the same closed-lot count. Winning and Losing Trades are unchanged — still one outcome per trade.
- Fixed: buying back a short call on the same day you sold the shares could drop that call from win/loss as if it had been assigned. Only an actual assignment close is omitted now. Using Exclude — or turning it off — refreshes the statistics, chart, and calendar right away, and un-excluding a rolled strategy clears every leg of that chain. The Total Trades subtitle only appears for trades you marked Exclude.
1.12.72026-08-24
- Fixed: TastyTrade AutoSync could leave an expired option sitting in Open Trades when TastyTrade posted the expiration a few days late but dated it on the expiration day. The journal only re-fetched about a day of history, so the backdated row was never pulled. Sync now keeps re-checking back to that expiration date until the broker close actually arrives.
- Fixed: on some Intel Macs — especially those still on macOS Monterey — IAG Journal would not open at all, failing at startup with a missing math-library error. The Intel Mac build now starts on Monterey 12 and later, matching the versions we already list as supported. Apple Silicon Macs and Windows were not affected.
- Fixed: a transferred-in position you had already sorted out could come back as a “cost basis pending” holding you no longer own. If you supplied the missing opening details for a transferred position through the unknown-cost-basis prompt, the app recorded that and booked the trade correctly — but the original transfer record stayed unmatched, so the same contract could reappear as an open position still waiting on a cost basis. Resolved transfers now count against the holding, and a partly-resolved one shows only the portion genuinely still outstanding.
- Fixed: when several contracts of the same underlying arrived in one transfer and were all waiting on a cost basis, the trades table could treat them as the same row — so one contract's values could be drawn in place of another's. Each is now identified by its own strike and expiration.
- Open Equities now shows a transferred-in short stock position as a negative share count, rather than as a positive holding of the same size.
- Fixed: Smart Watchlist IVR for names on the shared list could stay on the cloud figure — labeled “via cloud” — even with TastyTrade AutoSync connected. New and recently listed underlyings were the usual case (TastyTrade often has no 52-week rank yet, so the app treated that as missing and kept the cloud number, which could read as a mid-range rank like 49 when the real rank was near 0). With AutoSync on, those names now take TastyTrade’s IVR, including 0, and the source reads “via TastyTrade.” Without AutoSync, the watchlist still uses the shared cloud list.
- Fixed: on a journal connected only to Schwab, the Sync Trades button always failed with “Internal Server Error.” A startup migration wrongly marked TastyTrade as connected on Schwab-only setups, so every manual sync demanded a TastyTrade login that didn't exist — and when Schwab's weekly login had lapsed, that error also hid the “Reconnect Schwab” message you actually needed. The migration is fixed, existing journals repair themselves on the next launch, and a manual sync now runs each connected broker independently, so one broker's problem can't block another's sync.
- Fixed: the app's log file (folioscope.log) had stopped recording the launch header and some server errors since 1.12.5, which made support diagnostics harder. Both are back.
- Schwab AutoSync: when Schwab's required weekly sign-in lapses, the app now tells you up front — a prompt appears with a Reconnect button that takes you straight into the quick re-login, and a failed sync shows the same button instead of asking you to go find the reconnect screen. The app also re-checks for an expired Schwab login periodically during long sessions, not just at launch.
- Schwab AutoSync: if the browser hand-back doesn't reach the app within about 30 seconds during connect or reconnect (some browsers block it), the paste-the-code field now opens by itself instead of hiding behind a small link while the screen appears to wait forever.
1.12.62026-08-22
- Fixed: a short options position transferred in from another brokerage (an ACAT transfer) was invisible to the cost-basis flow. While you still held it, it never appeared in Open Trades at all; once you closed it, the trade showed as an “ACAT Transfer” carrying no P&L, and Enter cost basis failed every time with “no pending ACAT-transferred-in option for that symbol” — so there was no way to record what the position was worth when it arrived, by any route. Transferred-in shorts now show as an open position while you hold them, and the cost-basis dialog accepts them, so the trade books real P&L. Long transfers were never affected.
- For a short, the number to enter is the credit you received per share — not a cost — and the dialog now says so throughout (“Add opening credit”, “Credit per share”). Enter it as a plain positive number exactly like a long position's price; the app applies the correct sign for you.
- Options transferred in from TastyTrade now pick up the cost basis TastyTrade carries across with them, the same way transferred shares already did — so a newly transferred contract books real P&L without you entering anything. This applies to equity options; futures options still need the basis entered by hand, because there is no single contract multiplier we can safely assume. Transfers already in your journal keep whatever basis they have — enter it in the trade if it is still blank.
- Fixed: transferred-in positions awaiting a cost basis were all drawn as short in the contract chip, long ones included, so the quantity read −1 when it should have read +1.
- Fixed: a transferred-in stock position could mislabel unrelated option trades on the same ticker as ACAT transfers — which blanked those trades' P&L and kept them out of the unknown-cost-basis list, so they could be neither seen nor corrected. Transfers are now matched on the instrument as well as the ticker.
- When both sides of a transfer are in your journal, a short position now inherits its cost basis from the source broker's own records, which previously only worked for long positions. Fidelity and Wealthsimple transfer records are read consistently for this, and the two legs of a covered call moving together — the shares and the short call against them — are kept apart rather than matched to each other.
- Fixed: subscribing could send the welcome email twice. Two paths send it — Stripe's confirmation and the page you land on after paying — and if both ran at once, each could check and find it unsent before either had recorded it. The check and the record now happen as one step, so only one send can win. The welcome email also now links our X account, @IAG_Journal.
1.12.52026-08-21
- Fixed: the manual Sync Trades button could fail every time with a bare “Internal Server Error” on Schwab-connected installs — even though the automatic sync at launch was pulling the same trades fine. The sync itself was succeeding; the app crashed while packaging the result for the sync window afterward. That step can no longer take the sync down, and if any broker's leg does fail, the window now names the broker and the actual error instead of a generic message.
- Copy details on a sync error is now actually useful: it captures the current session's log — including the real error behind what used to be “Internal Server Error” — instead of a paste that ends right before the failure. Server-side errors that previously never reached the log file are now written to it, so a support report tells us what happened on the first try.
- Fixed: reopening the app right after quitting could fail with “the application appears to have been moved or deleted” while an update was still installing itself in the background. Launch now notices an install in progress, lets it finish, and opens the new version automatically — one click, not two. An update also no longer starts installing on quit when the app was only open for a few seconds.
- Updates are quieter and more predictable: small patch releases no longer download or install on their own — they're offered only when you use Check for updates. Significant updates (and any release we deliberately push) still download in the background and then offer to restart. Either way, nothing installs without a Restart prompt you've seen — the silent install-on-quit for updates you were never shown is gone.
1.12.42026-08-20
- New — in-app updates on Mac and Windows. When a new version is ready, IAG Journal offers it in a modal (the old top-of-app update strip is gone) and can download, verify, and install it when you quit — no separate trip to the website for a normal update. Dismiss snoozes the offer for this session; a download that’s already staged still installs on quit. On Windows this works for the usual per-user install; if the app lives in Program Files (an elevated / IT install), you’ll still be sent to the browser download. If an update fails to apply, the next launch says so and points you at the installer for your Mac or PC.
- New — Merrill Edge import. Bring in Merrill Edge / Merrill Lynch activity CSVs (pending-and-settled downloads and statement-style All Transactions). Options use Merrill’s OSI symbols, including the month-letter call/put encoding, and both pending and settled rows import — re-exporting after settlement won’t double the same fills. Setup steps are under Broker Record Import.
- Trades: click Covered Call on a group row or on the IAG University strategy badge to treat that short as a naked call and keep the shares unlinked as cover. Click Short Call to cover it again only when enough free shares are still available — if another short already has those lots, or the shares are gone, the name stays plain text.
- Canadian and US listings of the same name are no longer collapsed into one position. A Wealthsimple Canadian Depositary Receipt (for example TSLA.NE) is a different security from the US share (TSLA); they now keep separate lots and Open Equities rows. Converted dollar amounts show a USA or Canada flag so you can see which currency the number started in — including on Windows, where those flags were missing.
- Smart Watchlist: names you’ve recently traded as options can be added automatically from your trade history (capped so a heavy book doesn’t swamp the list). A one-line notice lets you Undo the batch, and declined names aren’t offered again.
- New — Export trade data (Settings ▸ Utilities): write every transaction on this computer to CSV files in TastyTrade’s export format — the same layout IAG Journal imports, so the files load straight back in, or into anything else that reads a TastyTrade export. Trades that came from other brokers are included in the same format, one file per account, saved together in a new folder in Downloads.
- Schwab AutoSync: Reset & re-sync now actually recovers a stuck or incomplete Schwab backfill instead of spinning with nothing new. If a Schwab (or IBKR) leg of a multi-broker sync fails, the overlay says so instead of reporting “up to date.”
- Interactive Brokers AutoSync: Flex statements that still return IBKR’s legacy download URL now sync instead of failing. The app ignores that field (IBKR’s own docs call it legacy) and always fetches the statement from the current host.
- Market Awareness: the economic calendar and morning brief stay in sync with the latest scheduled events instead of showing a stale or skipped slot around the 8:30 ET print.
1.11.72026-08-13
- Strategy view: every row now expands. Click a row (or its chevron) to see every leg of the strategy — from first open, through each roll, to final close — regardless of which month each leg closed in. Legs show the same contract chips, instrument types, dates, and per-leg P&L as the Standard view, with account discs marking each leg's account when viewing All Accounts. The expand/collapse-all button next to the section title works here too, and opening the full trade details moved to the chain icon — exactly like the Standard view's group rows.
- Strategy view: a Configure Table gear, like the Standard view's — toggle and reorder columns, drag the divider lines between headers to resize (widths persist), and set your date format (shared between both views). The first three columns (Underlying, Strategy/Type, Contract) now match the Standard view exactly, the roll count rides inline next to the strategy name instead of occupying its own column, the Account column is gone (account identity lives on the leg rows), and the header now reads “Closed Strategies” for what the rows actually are.
- Strategy view: the P&L column is now labeled Gross P&L — which is what it always was — with Net P&L (after fees and commissions) shown alongside by default, so gross and net are never conflated.
- Trades (Standard View): strategy/group rows no longer show dollar totals by default. When a rolled trade's last leg closed this month, the old group sums covered only this month's visible legs — easy to read as the whole trade's result, and it could disagree with the Strategy view. Turn totals back on in Configure Table (switch off “Hide totals on strategy rows”) and they now cover the whole trade — open, through rolls, to final close — with close-dependent values (Close $, P&L, % P/L) appearing only once the final leg has closed. Because they're whole-trade numbers, they intentionally won't reflect the monthly perspective or add up to the monthly footer.
- Trades (Standard View): the group row's Days Open is now the strategy's full holding period — entry to final close, still counting while open — rather than the longest single leg visible in the month, and group-row dollar and % figures render in the plain money color instead of win/loss green and red.
- The “Hide risk-define P&L” setting is now available from the table settings in both views, and applies to the Strategy view's expanded legs.
- Windows: right-click Cut, Copy, Paste, and Select All now work in text fields. The packaged Windows app had no input context menu at all (the embedded browser turns the native one off), so pasting a license key, sign-in code, or import path meant using the keyboard. The menu now appears on both Windows and Mac, with Ctrl+ shortcuts on Windows and ⌘ on Mac.
- About (Settings ▸ About) now links the Tutorials and Onboarding & Setup YouTube playlists, so those videos are one click away without leaving the app to find them on the site.
- Checkout: paying on a phone, or choosing the annual plan, now continues on Stripe's own page instead of the on-page card form. Card verification (a bank prompt or “I'm not a robot” check) was getting stuck or going blank inside the embedded form — especially in an in-app browser from Mail or Instagram. Same tab, not a popup. Desktop monthly checkout is unchanged. If a verification screen is still blank, open iagjournal.com/account/checkout in Safari or Chrome, or use the “Stripe's secure checkout page” link on the FAQ.
- Windows install help (Edge): the download instructions now walk through Windows Defender SmartScreen with a short clip — hover the file in Downloads → ⋯ → Keep → Show more → Keep anyway — so the “not commonly downloaded” warning is less of a dead end.
1.11.62026-08-12
- Windows: every component inside the app is now digitally signed — not just the installer. On PCs with Smart App Control or a company security policy (WDAC), Windows checks each file the app loads, and one unsigned piece was enough to stop IAG Journal from starting at all, with an error mentioning “an Application Control policy has blocked this file.” Installing 1.11.6 resolves this — the whole app, and its uninstaller, now carry a verified signature.
- Windows: if a security policy does block part of the app (for example on a company-managed PC with its own allow-list), the startup error screen now recognizes that case and says so — leading with the real fixes (install the latest version; ask your IT administrator to allow the app's folder) instead of offering database repairs that can't help. Send report to support stays one click away.
- New — Link to position: fold a separately-opened trade into an existing position's chain. If you sold a call in its own order to balance an open put position (and later managed them as one — your broker's chain shows them together), the Journal built it as its own trade, and a buyback inside a roll left it looking like a finished one-off. Open the trade's details and use Link to position to pick the position it belongs to: it joins that chain in Strategy view, its premium counts in the chain's % P&L basis, and it is never counted as a roll. The link survives re-syncs and rebuilds, and the trade's timeline shows a Linked tag with one-click unlink — the automatic grouping rules haven't changed.
- Canadian listings now work in Search and the Smart Watchlist. Adding a symbol with an exchange suffix — SHOP.TO, ENB.TO (TSX), AAPL.NE or NVDA.NE (Cboe Canada, where Canadian Depositary Receipts of US names trade), plus .V and .CN — used to be accepted and then quietly return no data, because the app was rewriting the dot the same way it does for class shares like BRK.B. Both rules now coexist, so a TSX class share such as CCL.B.TO resolves correctly too. The same fix applies to daily price history, so these names chart and value properly wherever they appear.
- Currency conversion now uses live exchange rates. CAD amounts were being converted with a small built-in rate table that ended on 1 July 2026, so anything after that date quietly used a months-old rate. The app now refreshes daily rates from the Bank of Canada in the background (and when you press Refresh rates under Settings ▸ Utilities ▸ Currency), falling back to the built-in table when it's offline. Any rate you've set yourself still overrides both.
- Market Awareness: the economic & geopolitical calendar now starts on today and shows the next six days instead of a fixed Monday–Sunday week, so Sunday night and late-week sessions still surface next week's catalysts — the first card is always today, already selected when you open the page. Weekend days stay visible for any weekend events, dimmed so they read as secondary.
- Account in the app (Settings ▸ Account) now matches the cloud account layout: a clear header with your email and sign-out, then two side-by-side cards — Subscription (plan, status, renew date, manage billing) and This computer (connection, app version, updates, and sign-in code when you need to reconnect). Diagnostics stay one click away underneath. The lock-screen account panel uses the same structure so a stuck install still shows status and reconnect without hunting.
- Top-of-app notices use three consistent tones on the journal theme: positive (welcome after unlocking Leather Edition), info (update available), and warn (subscription ended, reconnect needed, or Keychain blocked) — including action buttons that match the app’s danger styling instead of default system colors. Soft and hard reconnect share the warn tone; only the wording and actions change. The old demo-data banner is gone (tour synthetic data no longer needs a permanent strip).
- Dialog polish throughout: destructive actions (uninstall, remove account) use a single warm danger button style; cost-basis and override dialogs share a tighter layout (title, short guidance, the record you’re editing, then the form) with cleaner money formatting; long import filenames fit in the reassign dialog; and Rebuild trades is no longer mixed with Reconcile positions — each has its own explanation under Settings ▸ Utilities ▸ Maintenance, with its own confirm step.
- Period performance charts now match the subtitle: bars are daily trade count on a right-hand Trades axis, while cumulative P&L stays on the left. Hover a day to see trade count and that day’s P&L together; double-click still filters the trade list to that day.
1.11.52026-08-10
- Fixed: Wealthsimple Activities exports that use an effective_at date column (and ISO timestamps such as 2026-05-10T19:00:00-05:00) import again instead of “Unrecognized CSV format.” Those shared clock times are treated as date-only so re-importing history no longer doubles trades already journaled from an older export. If you already imported a renamed file and saw duplicates, remove the newer import (or that account’s overlapping range) and re-import once after updating.
1.11.42026-08-10
- Critical fix: after a long session — especially heavy use of Smart Watchlist — IAG Journal could run low on memory, fail to save preferences, and then refuse to reopen (“backend did not become ready” / Repair & Retry looping with no help). A bad or memory-stressed settings file could abort startup before the window opened; Repair only cleared temporary database files, so it never fixed this path. Startup now treats a broken settings load as recoverable (your trades stay put), and Watchlist refreshes no longer rewrite the full settings file on every “still current” check — which was a major source of the memory thrash. If you hit this before updating: fully quit the app, then install 1.11.4; if it still won’t open, rename settings.json in the app’s data folder and relaunch (you may need to sign in again; the trade database is separate).
- Trade details: when a same-day close and open on the same underlying is shown as a roll (common with date-only brokers such as Wealthsimple), you can mark it Not a roll with the broken-chain icon next to the Roll label. That keeps the close and open as separate trades — and survives rebuilds and re-imports. Hover the intact chain icon on the closing or opening side later to see the other contract and link them back as a roll.
- Select menus (month, account, broker pickers, portfolio chart type, and related dropdowns) frost only the area under the open menu so bold section titles no longer read through the glass. The rest of the page stays sharp and scrollable — no full-screen dimming.
- Fixed: Settings ▸ Utilities ▸ Existing accounts (rename, badge, remove) could be missing on first open even when your accounts showed in the account picker — especially with TastyTrade AutoSync. Opening Utilities again often brought the list back. Account load no longer races the imports list, retries once if the local database is briefly busy, and falls back to the same accounts the picker already has so rename stays available.
- Market Awareness: economic calendar dates (including CPI/PPI and similar scheduled releases) update from live calendar data without waiting for the next AI brief generation, so corrected dates show up as soon as the app refreshes the snapshot.
1.11.32026-08-09
- New — sign in with a code, no browser required. Connecting (or reconnecting) IAG Journal is now a short code you type into the app instead of a handoff to your web browser. Get your code from iagjournal.com/account — it's shown right after checkout with a one-click copy button — or have it emailed to you from the app. The old browser handoff was the single biggest source of “the browser said You're done but the app never unlocked” reports: local-network policy, antivirus, and security software could silently block the final step between the browser and the app, with nothing we could show you. Typing a code has no such step. If a code doesn't work, your existing connection is left exactly as it was.
- New — Account page in the app (Settings ▸ Account & connection): your subscription status and renewal date, reconnect, sign out, the update-available button, and connection diagnostics (including the launch log) all in one place. These used to be spread across a modal, the Utilities page, and a file on your computer — which meant hunting at the worst possible moment. The same panel is now what you see on the lock screen, so if the app is locked you can read your status, fetch a code, and copy diagnostics without getting past the lock first.
- The lock screen is simpler and more honest: the code box is the path in, and if we can't verify your subscription because of a connection problem the app no longer asks you to add a payment method for what isn't a billing issue. A rate-limit response from our servers now reads as “too many attempts, wait a moment” instead of “check your connection” — which was inviting exactly the retries that make it worse.
- Fixed: if your computer's credential storage (Keychain on Mac, Credential Manager on Windows) refused to save your session — usually security software — the app blamed your code and sent you back to enter another one, which then reported “already used.” It now tells you credential storage is the problem, and remembers that so it can keep retrying quietly.
- Fixed: AutoSync could look switched off right after you unlocked the app. If IAG Journal started locked, your broker connections were never brought up for that session, so reconnecting left you with no recent data until you walked the AutoSync wizard again (which only ever re-read the keys you already had). Unlocking now brings your broker connections up on the spot.
- Fixed: welcome emails and sign-in codes weren't being delivered. This was a missing mail setting on our side rather than anything in the app — sign-in kept working, which is exactly why it stayed hidden. Delivery is restored, and our deployment now warns us at startup if mail is ever unconfigured again.
- Sign-in codes are more forgiving: more attempts before a code is retired, and accepting the terms no longer counts against them. Requesting a code when we already know your email address sends it straight away instead of asking you to retype an address we filled in.
- On iagjournal.com, the billing section of your account page now starts collapsed, so the sign-in code is the first thing you see on the page you opened to get it.
- Fixed: after installing an update, the app could show the wrong screen — the “connect your account” flow meant for someone who had signed out. Installing an update and signing out now lead where they should.
- The existing browser sign-in path keeps working for versions already installed, and it's been hardened too: a clearer manual-code fallback, and the code page tells you what to do when the handoff doesn't complete.
1.11.22026-08-07
- New — Smart Watchlist (Leather Edition): a Watchlist tab with a curated set of underlyings showing last close, daily BXTrender, IV rank, and days to earnings. Click a row for the detail card — BXTrender gauge with 1-day change, IVR dial, weekly BXTrender, earnings, and an IAG Read when one is available for that name.
- Watchlist filters: narrow the list by BXTrender position (oversold / neutral / overbought), IV rank above or below your threshold, or near-term earnings. Double-click the BXTrender, IV rank, or Earnings filter group to change the oversold/overbought edge, the IVR premium-selling threshold, and the earnings exclusion window.
- Add your own tickers from Search: the Journal looks up live market data before anything is saved, so typos and non-existent symbols are rejected. Custom names compute BXTrender on this machine; IVR uses TastyTrade when AutoSync is connected, otherwise the shared cloud list. Optional anonymous “send underlying to developers” counts popular adds so widely used names can be promoted to the shared list.
- Open positions are marked on the list when you have a trade on that underlying, and you can hide names you don’t care about (with Show hidden in settings). Refresh pulls the latest shared snapshot; timestamps sit under the detail card.
- IAG Read on the watchlist detail card: short shared blurbs for select underlyings (context only — not advice). Use the thumbs up or down when you see a read to mark whether the quality is good — that feedback improves future reads. Votes hide for the rest of the local day after you cast one.
- Market Awareness: the same thumbs up / thumbs down feedback is available on the macro brief, so you can rate those sections the same way.
- Trades (Standard View): multi-leg group headers now show the strategy’s overall opening and closing dates (not just the primary leg after strike sort), and single-leg group % P/L matches the nested leg row so the two never disagree. Table headers also get light column dividers so column edges stay clear when you scan across.
- New-user and What’s New tours cover the Watchlist tab, filters, double-click thresholds, and read feedback so the feature is discoverable without hunting.
1.10.72026-08-07
- Fixed: on a Mac running a VPN or proxy tool that sets a system-wide web proxy (Clash, V2Ray, and similar apps), IAG Journal could show “couldn't start” on every launch — even though the app had actually started fine behind the error screen. macOS was routing the app's own internal startup check through the proxy, which swallowed it. That check now always connects directly on your machine, so the app starts normally whether a proxy is on, off, or misbehaving — no VPN changes needed.
- If something on your Mac still blocks the app's local connection to itself, the error screen now says exactly that — “IAG Journal is running, but can't be reached” — and walks you through the real fix (turn off the VPN/proxy app, or add 127.0.0.1 to its bypass list, then Try Again) instead of offering database repairs that wouldn't have helped.
- The startup log now records the app version on every launch, so a support report immediately tells us which build you're running.
1.10.62026-08-05
- TastyTrade AutoSync is much faster. The sync window's job is getting your new trades — and now that's all it waits for. Everything else a sync collects (account value, current positions, option greeks, price history) updates quietly in the background right after the window closes, and a sync with nothing new finishes almost instantly. A small glass pill by the “As of” time in the footer shows “Updating account data…” while background updates finish, and the dashboard refreshes itself the moment they land — no navigating away and back.
- Scheduled auto-refresh now runs on time even while IAG Journal isn't the focused window. On Mac, the refresh timer used to pause whenever the app was in the background, so an “every 30 minutes” setting only counted down while you were looking at the app. The schedule now runs regardless of focus, and when you return to the app it catches up immediately — picking up a sync still in progress, or refreshing the dashboard with whatever synced while you were away.
- “Continue in background” on the sync window now truly stays in the background — it no longer pops back open on the next periodic check. The footer pill shows “Syncing in background…” until the run finishes.
- Connecting TastyTrade (or re-pulling history) is faster for the same reason: the setup backfill completes as soon as your trade history is in, with account charts filling in moments after you land on the dashboard.
- Starting the app is far more resilient — especially on a brand-new install. The launch screen now shows live progress (“Preparing your database…”, “Checking your subscription…”), and a first launch on a slower machine — where the system's security scan plus initial database setup could previously blow past the app's fixed 30-second limit and wrongly report “the backend didn't come up in time” — now gets the time it actually needs, as long as startup keeps making progress.
- A slow or unreachable network can no longer hold up the window either: the subscription check and broker session setup at launch are now strictly time-boxed and finish in the background instead of delaying startup.
- If startup genuinely fails, the error screen now says what the app was doing when it got stuck and leads with the right fix — a stuck database keeps the one-click Repair & Retry (your data is kept), anything else offers Try Again, and a second failure in a row suggests restarting your computer, which has resolved this for affected users.
- Mac: if IAG Journal is running straight from the downloaded disk image or your Downloads folder, macOS re-verifies it on every launch — slow, and a common cause of startup trouble. The error screen now detects this and walks you through moving the app to Applications.
- New — Send report to support on the startup error screen: one click sends us the startup log with your report, so you don't have to find and email the file yourself.
- Trades page (Standard view): closed trade groups now show % P/L on the group row once the last leg has closed — the same number the Strategy view shows, your P&L as a percentage of the original credit received (or debit paid), so a rolled trade reads the same in both views.
- Trades page (Standard view): the Contract column now keeps a minimum width, so neighboring columns can no longer overlap the contract chip when columns are dragged narrow.
- TastyTrade AutoSync setup: the final step now walks through the Create Grant form — choose Read for read-only access — and notes that TastyTrade may ask for a 6-digit verification code (sent to you, or from your authenticator app) before showing your refresh token.
- Fixed: the IAG University graduation-cap icon on closed trades could look empty after you left Trades and came back — even when notes were already saved. Saving again made it gold until the next visit. Closed positions with study notes now stay gold across navigation, same as open ones.
- Fixed: IAG University study notes could appear on two separate trades when you closed a position and re-opened the same underlying the same day (for example a short put closed for profit, then sold again). Notes now follow the trade itself — layering onto an open position keeps one journal; a true close-and-reopen gets its own. Existing notes are preserved through the update, rebuilds, and re-syncs.
- Monthly performance chart: early in a new month, day bars no longer stretch across the full width. The axis reserves every remaining trading day of the month as placeholders so bar widths stay stable as the month progresses; days after today keep the cumulative line/bar carried forward (what you’d finish at if nothing else closed) without drawing phantom daily bars. Off-market closes (weekend / holiday fills) still insert when you have activity. The chart stays blank until the first closed trade of the month lands or the first trading day has passed, and the default chart type remains Line (Bar is still available from the toggle).
- Fixed: Losing Rolled Legs (and Losing Trades (Rolled)) could count a loss that merely belonged to a strategy that had rolled earlier — for example a multi-leg position that rolled one wing out, then pure-closed the rest at a loss. The metric now counts only losses whose final close was itself a roll (close and open on the same order), not every loss that shares a roll chain.
1.10.52026-08-02
- Connecting your journal is far more reliable. The connect screen no longer flickers between states mid-sign-in, a successful connect can no longer bounce you back to “Connect” moments later, and the app now goes from “Waiting for browser…” straight to unlocked in one clean step. And if your subscription is still settling when you connect (for example right after subscribing), the app says “Confirming your subscription…” while it verifies — instead of wrongly asking you to add a payment method.
- The “Enter code manually” fallback is now always available on the connect screen (and from the reconnect notice) — not just while the app is actively waiting on the browser. If a sign-in times out or fails, the code box opens automatically; after two failed attempts the screen switches to a troubleshooting view with a one-click Copy diagnostics button you can paste into an email to support.
- Clearer answers when verification fails: instead of a generic “couldn't verify your subscription,” the app now tells you the actual cause it detected — an update is needed, a firewall or antivirus is blocking iagjournal.com, your computer's clock is off, or security software is blocking credential storage (which now retries on its own every few minutes).
- Subscription verification is more resilient overall: brief network drops at launch retry automatically instead of showing a warning banner, a clock that's a few minutes off no longer breaks verification, and future security-key rotations on our side can no longer lock out older versions of the app.
- New — Connection health (Settings ▸ Utilities ▸ IAG Journal account): see at a glance whether your app can reach the cloud, when your subscription was last verified, and whether anything on your machine is interfering — with a Check now button and Copy diagnostics for support.
- Server-side: if your subscription ever wrongly shows as inactive (a missed billing event, for example), it now repairs itself automatically the next time your app or browser checks in — and our team is alerted the moment it happens, usually before you'd ever notice.
- The sign-in page at iagjournal.com now double-checks before creating a new account for an email address it doesn't recognize — so a typo can no longer land an existing subscriber in an empty account that asks them to subscribe again.
- Fixed: the new-user tour could start while the connect window was still up, spotlighting an app you couldn't see yet. Tours now wait until you're connected and re-offer themselves then.
- Market Awareness: sharper pre-market briefings. The morning brief now leads with what's actually moving before the open — index futures and the mega-cap tech / semiconductor complex — and once an economic release is out, it reports the actual numbers against expectations instead of still listing the event as “due today.” Minor data points no longer crowd out the day's real drivers, day-to-day repetition has been cut down, and every item remains backed by a cited, current source.
- Fixed: when a stock sale with no matching open was filled in pieces on the same day — for example three IBKR Sell to Close fills of 19, 69, and 12 shares — each fill showed as its own “unknown cost basis” row, and entering basis on one fill could save but leave the others (or even that fill) unmatched. Same-account, same-day equity closes for the same symbol are now grouped into one row with the total quantity (and fill count), so you enter cost basis once for the whole lot and all fills clear together.
1.10.42026-07-30
- New — Market Awareness: a daily AI-generated macro brief for Leather members. Market-moving context, an economic/Fed calendar with dated entries, and calendar-day flags surfaced on 0DTE planning so you know what the market is digesting before you plan the day.
- New — Wealthsimple import: bring in Wealthsimple activity statements, including multi-currency accounts — CAD amounts convert to USD with exchange-rate handling, and same-day option round trips pair correctly.
- New — account icons: give each account its own icon and it follows the account across tables and modals, so multi-account rows are recognizable at a glance.
- New — IAG University: a per-trade study journal, opened from the graduation-cap icon on any trade. Log your entry as a fixed snapshot (per-leg deltas with autosync or Black–Scholes prefill, theta, IVR, sizing, notes, win/loss exit plans); every roll gets its own dated section showing the legs that moved, the credit collected, old and new deltas under each leg, and a reason for the roll; and the Closing section collects legs as they close, then unlocks the full closing review — did you follow your plan, what triggered the exit, key lessons. Notes are keyed to the trade so they survive rebuilds and re-syncs, and are mirrored to a local backup restorable from Utilities.
- Trades page: redesigned for a cleaner look with better grouping — each leg is visible along with how the legs relate, and everything affecting a trade from open to close is in one place regardless of rolls or leg count. Plus more functionality: the closed-trades view pops out into its own window, and the Closed and Open tables sort independently.
- Trade Replay: improved delta and expected-move estimates, and a new layout that shows the playback alongside all activity across the life of the trade. A new P&L meter estimates your P&L at the playhead as the trade plays back, and replay can use your own entered deltas from IAG University entries.
- The Annual view now lives on the Dashboard, and the new-user tour and What's New walkthrough were refreshed to match.
- IBKR autosync: same-day activity is now captured instead of waiting for the next day's report.
- Fixed: closing the orphan or cost basis modal (and other dialogs) no longer jumps the Trades page back to the top — you stay scrolled where you were, including after saving a basis that refreshes the table.
1.8.92026-07-28
- Clearer cost basis for “unknown cost basis” closes: when you double-click an orphan close to add how the position was opened, options now ask for the quoted premium per share (for example 16.43), not the full contract cash amount already shown on the close line (for example $1,643). The form explains that the close net is already premium × 100, and shows an implied per-share premium from that net so you know which number to type.
- Cost basis you enter from that orphan section now shows on the trade’s Open $ cell with the same gold editable border as a basis you correct by double-clicking the cell — so you can spot manual entries at a glance and click them again to adjust.
- IAG University: the Trade Entry legs are now a fixed snapshot of your original entry order — they no longer change after a roll, and entry deltas you saved stay attached.
- IAG University: each roll is now its own dated section with a delta input per newly-opened leg, net delta before/after the roll, and its own Reason for roll. One Roll notes box at the end still covers the whole chain, and the study window is a bit wider.
- Trades table: the chain icon now turns gold once a trade’s final leg has closed, so you can tell finished trades from in-progress ones at a glance (same treatment as the graduation cap when notes are saved).
- Trades table: trade groups now start expanded so leg detail is visible without a click — collapse any group (or use Collapse all) and your choice is remembered.
- Fixed: entering cost basis on the same calendar day as a Fidelity (or other date-only) close could save but leave the red “unknown cost basis” row — the manual open sorted after the close. Same-day opens now pair correctly; re-save the basis once after updating if a row is still stuck.
- Fixed: Fidelity same-day open-and-close of the same option (for example sell a put and buy it back the same day) could show as “unknown cost basis” even when both fills were imported — the day was grouped as one order and the close was applied before the open. Those round trips now pair automatically; use Rebuild trades after updating if an old import still shows the red row.
1.8.72026-07-24
- Critical fix: some Leather Edition installs could stay locked on “Reconnect your journal” / “Waiting for browser…” even after the browser said “You're done,” or after a successful connect that never unlocked the app. The cloud could not sign the subscription proof the desktop needs to stay paid offline. Install this update, then open IAG Journal (connect once if it still asks) — paid access restores without re-importing trades.
- If the app is locked and you can't reach the in-app Download update button, get 1.8.7 from iagjournal.com (or the link in our email) and install over your current version. Your local data and broker connections stay on this machine.
1.8.62026-07-23
- Fixed: when only part of an option position was assigned (or exercised) and the rest closed later — for example four short puts assigned two contracts one day and two the next — the second close could show up as “unknown cost basis” even though the full history was already imported. Partial assignment, exercise, and expiration now close only the contracts that actually left, so those false orphans no longer appear. Rebuild trades (or re-sync) once after updating to pick this up on existing accounts.
- Trade Replay is more accurate on real multi-contract books: adding size at the same strike and closing in pieces tracks each fill separately (partial closes no longer leave a trade stuck “open” or double-count marks); covered-call and assignment stock legs are valued at cost so they no longer cliff the estimated P&L line; and fills that look like bad data (for example a price inflated ~100×) are no longer used to calibrate the path.
- Trade Replay is available for any option trade that lasted more than one calendar day — including single-leg positions such as a naked put held for weeks. Same-day scalps and 0DTE still skip replay. Duration is judged on the whole roll chain (entry through the final leg close), so a leg that opened and rolled the same day still replays as part of a multi-day chain.
- After a Trade Replay finishes (or you skip to the end), hover the chart near an entry, roll, or exit to bring that action card back — useful for reviewing the story without replaying from the start.
- During Trade Replay, the live estimated P&L readout is now a compact % Loss / Profit meter scaled to your opening premium (losses toward 400% of premium, gains toward 100%) instead of a running dollar amount on the chart.
1.8.52026-07-23
- Double-click a monthly Winning Trades, Losing Trades, Avg Win, or Avg Loss card to jump straight to Trades with the list filtered to those outcomes — winners (net P&L above zero) or losers (including breakeven), matching the same rules as the cards themselves. You can also type win or loss in the Trades search box.
- Optional monthly and year-to-date statistics cards: Best / Worst Strategy (by total P&L and by win or loss rate), Best / Worst Underlying, Avg Roll Credit/Debit (average net on roll orders filled in the period), Avg P&L per Trade, and Profit Factor. Multi-leg strategies still count as one trade, not one row per leg. All of these are off by default — turn them on from the statistics gear ▸ Configure Statistics.
- Risk Define P&L masking is now a table preference: in Standard View, planned-loss protective wings and covered-call assignment legs can still show as “Risk Define” instead of the dollar amount, or you can show the real P&L. Toggle it from the trades table gear ▸ Configure Table ▸ Hide risk-define P&L (on by default).
- Smarter trade types from your entry legs: short calls against long stock in the same account now label as Covered Call (including when you buy the shares after the call, or when closing one covered call frees shares for another short on the same underlying); same-strike different-expiry packages label as Calendar Spread; and unequal-size same-expiry packages label as Ratio Spread. Verticals still require equal size and the same expiration. Existing trades pick this up on the next rebuild or sync.
- Windows uninstall now asks whether to keep or remove your journal data — matching the Mac flow. Choose “Keep my journal data” so a reinstall picks up where you left off (still connected), or “Remove all my data” to delete the local database, imports, backups, broker logins, and settings. Fixed: “Remove all my data” could leave files behind when the app was still running; the uninstaller now closes the app first and actually clears credentials and data.
- thinkorswim export instructions now spell out that Account Trade History columns must stay at defaults (including Net Price) and that you should upload the CSV as-is — opening it in Excel first can scramble dates and drop columns.
- About ▸ Email support now has a one-click copy control next to the address, so you can grab support@iagjournal.com even when the mail client doesn’t open from the app.
- Fixed: the Windows (and some Mac) build could fail to start with a missing “websockets.legacy” module after a dependency change. Startup no longer depends on that path.
1.8.42026-07-21
- Trade (realized P&L setting) can now keep related option legs together: multi-leg strategies (verticals, iron condors, and the like) and rolled positions sit next to each other with a left-side bracket, a small chain mark in the middle of the group, and light top and bottom edges so you can scan across columns without losing the set. Turn it on from the table gear ▸ Configure Table ▸ Group related legs — it's off by default, and sorting still keeps a group intact when the option is on.
1.8.32026-07-19
- Fixed: a Robinhood options trade opened and closed on the same day — for example, selling a call to open and buying it back the same afternoon — could show as still open with a separate “unknown cost basis” close, or its profit or loss could read as $0 in the calendar and trade list. Same-day round trips now build as a single closed trade with the correct realized P&L.
- Shares transferred into your Robinhood account from another broker (an ACAT transfer) now appear in Open Equities as “cost basis pending” — matching your broker's share count — with an inline button to add your cost per share, instead of being left out of your positions.
- The “Rebuild trades from raw data” tool (Settings ▸ Utilities) now also re-runs the latest import engine on trades that were brought in by an older version of the app, so import fixes reach your existing trades in one click — no deleting and re-importing. If you imported Robinhood trades before this update, use Rebuild trades to pick up the corrections above.
1.8.22026-07-18
- Setting up Interactive Brokers AutoSync is clearer: the connection is now broken into a few labeled steps with a progress map, so you can see exactly where you are, and the instructions have been tidied up throughout. Once you connect, the app brings you back to the journal so you can watch your first sync run instead of waiting in the setup window.
- Replacing your IBKR Flex keys now pre-fills your existing keys, so you can update one value without re-typing everything.
- The first-run welcome screen now lists which brokers each setup path supports, so you can tell at a glance whether to use AutoSync or a file import for your broker.
- Fixed: an AutoSync account you'd deleted could reappear on the next sync. Deleted accounts now stay deleted.
- Your app version now shows next to the Leather Edition badge, making it easy to tell at a glance which version you're on.
1.8.12026-07-17
- Cut Copy or paste keys with right click on mac.
1.8.02026-07-17
- Near-real-time Interactive Brokers sync: an optional add-on now refreshes your IBKR trades as often as every 15 minutes during market hours, instead of only once a day, so recent fills show up while the session is still going. Turn it on from the Interactive Brokers row in Manage AutoSync — your daily IBKR statement stays the source of record and reconciles everything automatically.
- Fixed: in rare cases the app could get stuck on a “couldn't start” screen — usually when its local database was left in a bad state after an unexpected shutdown. That screen now fixes itself: a one-click Repair & Retry button clears the stuck file and reopens the app, with a Restore Last Backup option as a fallback. Both keep all of your trades — nothing is deleted, and TastyTrade re-syncs anything recent automatically.
- If the app ever can't start, that screen can now open its log folder or copy the log to your desktop in one click, so sending it to us no longer means hunting through hidden system folders.
- More reliable sign-in: some Chrome installs silently blocked the final handoff between the browser and the desktop app — the browser said “You're done” but the journal never unlocked. The app now completes that handshake even on the strictest browser settings, and if it still can't get through (a firewall, a future browser policy), the browser page offers a one-time code you can paste straight into the journal to finish connecting manually.
- Clearer sign-in errors: if connecting fails — an expired or already-used code, for example — both the browser page and the app now explain what happened in plain language instead of showing a technical error.
- Privacy mode now blurs your account numbers and email address as well, so nothing sensitive is exposed when you share your screen or send a screenshot.
- You can now sign out of your IAG Journal account from Settings ▸ Utilities — useful on a shared computer. Your accounts, imports, and trade history stay on this machine, and signing back in picks up right where you left off.
- Your subscription status now refreshes whenever you return to the app window, so a renewal or billing change shows up right away instead of waiting for a restart or a periodic check.
- Fixed: the “Leather Edition is unlocked” welcome and the “can't verify your subscription” notice could appear at the same time. The welcome now waits until your subscription is verified.
1.7.42026-07-16
- Fixed: Interactive Brokers sync failed with a red database error (“UNIQUE constraint failed”) on every pull after the first, both for the daily automatic sync and the new on-demand sync button. IBKR statements re-report your whole recent history on every pull, and the sync engine now recognizes those records as ones it already has instead of refusing the whole statement. No re-import needed — updating and syncing once brings in everything since your last successful sync.
- If an IBKR sync does fail unexpectedly, the sync overlay now closes on its own with a short readable message instead of technical details — and can no longer be left spinning until restart.
1.7.32026-07-15
- Trade Replay is substantially more accurate: the estimated P&L line is now anchored to your actual fills, so it lands exactly on your realized P&L at exit; each leg is tracked by its full identity, so spreads with multiple legs on the same side — verticals legged in, ratios — replay correctly; minute-level price data is used around your entries, rolls, and exits when available; and the flat stretch after a trade closes is trimmed so short trades aren't dominated by empty space.
- AutoSync now records a daily snapshot of every open option trade's greeks, implied volatility, and price marks. Trade Replay uses these snapshots as calibration anchors, so open and long-running trades replay with far less drift — accuracy keeps improving the longer you run the app.
- Sync Interactive Brokers on demand: the sync button and the clickable “As of” date now work for IBKR-connected accounts, so you can pull your latest statement whenever you want instead of waiting for the once-daily automatic sync. (IBKR posts a fresh statement about once a day, and repeat pulls are spaced a few minutes apart to respect IBKR's strict rate limits.)
- Fixed: after connecting a broker in the pop-out AutoSync window, the main journal window now shows the connection immediately — previously it could keep saying “not connected” until a restart, even while your trades were already syncing in the background.
- When an import log shows a broker record IAG Journal couldn't read, you can now report it to us in one click — account numbers and personal details are redacted before anything is sent, and you can review exactly what goes out.
1.7.22026-07-15
- Futures are now tracked as their own instrument type across every broker — thinkorswim, TastyTrade, Interactive Brokers, Fidelity, Robinhood, and custom CSV — so futures activity is classified correctly instead of being mistaken for stock. Existing imports are upgraded in place, no re-import needed.
- Realized P&L now includes the full trade lifecycle: the Order Chain view and Trade Replay — a trade's entry, every roll, and its close — are available whether you're looking at Realized or Strategy P&L, instead of being limited to Strategy mode. The trades table follows your P&L attribution choice automatically.
- Hide a trade or position you don't want counted: right-click any trade — or a held-share or pending-ACAT row in Open Equities — and choose Suppress to remove it from the trade list, Open Equities, and your P&L. It's fully reversible from Settings.
- Pop-out windows for a dual-monitor setup: the 0DTE scratchpad, broker export instructions, and AutoSync setup can each open in their own window and move to a second monitor, with the window controls and Windows behavior reworked to keep them reliable.
- Print your broker export instructions: a new Print option turns the step-by-step guide for getting trades out of your broker into a clean printable sheet.
- Clearer, tidied-up broker export and AutoSync setup instructions throughout, with tooltips on the Begin buttons so you know what each step does before you start.
- When you send feedback, IAG Journal can now attach recent diagnostic logs — with account numbers and personal details redacted — so problems are far easier to reproduce and fix.
- The Windows build now carries proper version and product details, making it less likely to be flagged by antivirus on download.
1.7.12026-07-11
- Guided tours inside the app: a short walkthrough the first time you open IAG Journal, and a “what's new” tour after an update that ships something worth pointing at. Both can be skipped with Esc, and neither replays once you've seen it.
- The Settings drawer has been reorganized and restyled to match the rest of the Journal — Display, Setup & help, and Subscription each have their own section, so import instructions, AutoSync setup, and billing are where you'd expect them.
- New FAQ on iagjournal.com, reachable from Settings and linked directly from the import screen: if a broker file can't be read, the error now points you at the answer instead of leaving you guessing.
- Clearer import results: activity your broker reports that IAG Journal doesn't recognize is now listed with its raw record rather than quietly skipped, and ticker renames the importer spotted but couldn't apply are called out too.
- IAG Journal now keeps working when you're offline: trade replay degrades gracefully instead of erroring, and AutoSync pauses and resumes on its own when your connection comes back.
- A smoother path back from a lapsed subscription, and a checkout fix for mobile — some card issuers' verification step could appear blank on a phone, which could leave a payment stuck.
1.7.0unreleased
- Foundation work, shipped to users as part of 1.7.1.
- Every record from an import or a sync is now kept exactly as your broker sent it. That means an import can be re-run through the latest version of the engine in place — from the Reprocess button on Recent Imports — so corrections and new broker support reach your existing trades without deleting and re-importing.
- Cost basis you enter yourself is now stored as a layer on top of your broker's records rather than overwriting them, so re-importing or reprocessing never clobbers it.
- Fixed: transfers into an IRA from another broker could be dropped on a Fidelity import, leaving shares missing from your positions. These records now import, and reprocessing an existing import heals them.
1.4.152026-07-10
- More accurate thinkorswim imports for index options (SPX, and other cash-settled indexes like RUT and NDX): weekly and end-of-quarter contracts — including 0DTE SPX spreads — now match their opening and closing trades correctly, so they show your entry cost and real P&L instead of appearing as a closed trade with “unknown cost basis.” Commissions on multi-leg spreads (verticals, calendars, diagonals, and strangles) now import too, and an expired option is dated to its actual expiration day, so a month-end expiration lands in the right month.
- thinkorswim option assignments now import correctly: an assignment is no longer mislabeled as an expiration, and the shares delivered to — or called away from — your account by an assignment are tracked as real positions with cost basis, so later sales of those shares reconcile instead of showing as unknown.
- Cleaner thinkorswim cash activity: a money-market sweep (like SWVXX) no longer shows up as a stock position, account interest is recorded as interest rather than a dividend, and bank transfers in and out are recognized.
- If you imported thinkorswim trades before this update, re-import your Account Statement to pick up these corrections.
1.4.142026-07-10
- Added Robinhood to the manual import options: from Robinhood on the web, generate an Account activity report as CSV (Account → Reports and statements) and drop it in. Your option and stock trades — including multi-leg spreads — import automatically; because Robinhood doesn't label each option trade as an open or a close, IAG Journal reconstructs that from your position history. Dividends, dividend reinvestments, transfers, interest, and fees are kept out of your trade P&L. Step-by-step export instructions are included under “Need help getting trades from your broker?”, and the same file works for a first full-history import or quick weekly updates.
- Enter cost basis yourself when your broker doesn't provide it: options and shares that arrived by ACAT transfer now show as open positions right away — matching your broker's position count — with an inline button to add the missing basis and turn them into fully tracked positions with P&L. Positions that were already sold before the basis was known can be filled in the same way, so those closed trades stop showing a distorted gain.
- Ticker changes are handled automatically: when a company renames its symbol (or an option's underlying is renamed), your existing trades and holdings carry over to the new ticker instead of splitting into two positions or duplicating on the next import — for both CSV imports and live sync.
- Clearer navigation: each tab now carries an icon, and hover tooltips appear faster and read more clearly across the app.
- More dependable imports: if a broker export can't be read — most often after it's been opened and re-saved in a spreadsheet, which can quietly change how the dates are written — the import now flags it clearly instead of appearing to succeed while bringing in zero trades.
- In-app messages now follow your verified account: a notice meant for you still reaches you even if your session has briefly expired, targeted messages are never shown on the wrong account, and dismissing one lets the next appear instead of holding it back.
1.3.182026-07-08
- Added thinkorswim to the manual import options: export your Account Statement as CSV from the thinkorswim desktop app and drop it in. Your option and stock trades — including multi-leg spreads and rolls — import with their fees, while dividends, dividend reinvestments, and cash transfers are kept out of your trade P&L. Step-by-step export instructions are included under “Need help getting trades from your broker?”, and the same file works for daily or weekly updates.
- The Help window's “Check for updates” now shows a button right in the modal, so you can check on demand without leaving the dialog.
- Journal's IAG Logo links to iagjournal.com
- Removed a leftover “Unlock Leather Tier” promotional popup that could appear on first launch — Leather Edition is already included with your subscription.
1.3.152026-07-07
- build pipeline support for an Intel based mac Journal build
- Removed account number from UI, and improved wording on sync/import modal
1.3.132026-07-06
- Rare bug where assigned options + ACAT transfered shares were 'leaked' and the equity qty was not correct.
1.3.122026-07-05
- A recent change caused performance chart's X-Axis to display incorrect values in place of the date.
1.3.102026-07-05
- Your preferences — theme, privacy mode, dashboard layout, and more — now carry across every app update, so you never have to set them again.
- Quieter updates: small patch updates no longer raise a banner on their own, while significant updates still notify you right away.
- New native menus in the macOS and Windows menu bar, mirroring the in-app Settings drawer — reach import, AutoSync, display and privacy settings, and your account straight from the OS menus.
- New optional statistics cards (add them from the gear icon on the Statistics panel): “Winning/Losing Trades”, “Losing Rolled Legs”, and “Losing Trades (Rolled)” — total losses with the rolled share in parentheses, e.g. 15 (4). Off by default; roll-based cards show in Realized P&L mode.
- Cleaner performance chart: a fresh month no longer draws a flat $0 line — the line starts once you have activity, and off-market trades (weekend, holiday, or overnight) now show on their actual day.
- Fixed: setting up TastyTrade AutoSync could fail with a “Connection failed” error for accounts held by a trust, business, or other legal entity — and for some customers outside the US. These accounts now connect and sync normally.
- Your accounts and imports now live in one place: the new Accounts & Import screen shows your accounts and import history together, with step-by-step broker export instructions tucked behind a “Need help getting trades from your broker?” link.
- Added Interactive Brokers to the manual export instructions — follow the guided steps to build and run a Flex Query, then drop the exported statement straight into IAG Journal (no query ID or token needed).
1.3.82026-07
- Fixed: importing a Fidelity history file could bring in nothing on accounts that Fidelity has configured for international trading (or margin) — these accounts export a slightly different file layout, with extra currency columns and money columns labeled a little differently, which the importer didn't recognize. IAG Journal now reads both Fidelity layouts, so these files import correctly. Activity is imported in US dollars; if a file contains genuinely foreign-currency trades, those amounts come in without conversion for now.
- More resilient Fidelity imports: files saved in a different text encoding by your computer are now read correctly instead of failing.
1.3.72026-07
- A clearer way to get started: new step-by-step onboarding walks you through subscribing, installing IAG Journal, and connecting your broker — with the right instructions for your Mac or Windows machine — both on the web and inside the app.
- Fixed: renaming an account didn't always take — the new name now saves reliably and shows consistently across your dashboard, account selectors, and import history.
- Clearer wording on the import history page, making it easier to see where each set of trades came from and what happened during every import.
1.3.62026-07
- Fixed: importing a Fidelity history file could bring in nothing — showing “added 0” even when the file was full of trades. This happened when your computer wrote the dates with dashes (07-02-2026) instead of slashes (07/02/2026), which differs from one machine to the next. Fidelity files now import correctly no matter how your computer formats dates, and the same fix applies to custom-mapped CSV imports.
1.3.52026-07
- Fixed: transfers OUT of Fidelity (ACAT) were being dropped during import, so shares you moved to another broker kept showing as open. Fidelity transfer records now import correctly, so a transferred-out account reconciles instead of leaving phantom open positions.
- Shares transferred INTO your account by an ACAT transfer now show up in Open Equities right away — even when they came from a broker you don't track here — so your share counts match your broker instead of coming up short. Each transferred position is marked “cost basis pending” until you enter your cost per share; do that in one click and it becomes a full position with P&L tracking.
- Open Equities now labels each position by your account name (like “Traditional IRA”) instead of a raw broker number when an account spans more than one broker.
- Fixed: a “mark closed” shortcut could record a $0 close and show a large, incorrect loss dated today. It has been removed — positions you've closed at another broker are resolved by importing that broker's history — and any leftover $0 placeholder no longer affects your P&L. If you dismissed a cost-basis review by mistake, you can still bring it back.
1.3.32026-07
- A smoother way to get started: subscribe first, then install IAG Journal and connect your broker, with clear step-by-step install instructions matched to your Mac or Windows machine.
- More reliable, secure checkout that unlocks the app the moment your subscription is active — and your accounts and trade history stay safe and waiting, exactly as you left them.
- Fixed: an issue that could occasionally prompt you to reconnect your account even though your session was still valid.
1.2.02026-07
- IAG Journal is now a single, fully-unlocked product — Leather Edition, $9.99/month — with every feature included: multi-account tracking, live sync, trade replay, 0DTE planning, and scoring.
- Streamlined, more reliable checkout. Your accounts and trade history stay safe and waiting, and reappear the moment your subscription is active.
1.1.02026-06
- New “Long-held equities” setting: choose to exclude stock positions held longer than 6 or 12 months from your P&L totals, so buy-and-hold sales don’t skew your active-trading numbers. Set it once and every dashboard, calendar, and summary respects it; your options trades are never affected.
- Stay on the latest version more easily: the app now checks for updates more often, and you can check on demand with a new “Check for updates” button in the About panel.
- Fixed: you’re no longer asked to reconnect while your session is still valid — the app now quietly re-verifies your subscription in the background instead of showing a reconnect banner by mistake.
- Fixed: leaving the app open for a long time with Interactive Brokers auto-sync could leave the import window stuck open with no way to close it — auto-sync now recovers on its own instead of wedging.
1.0.52026-06
- Fixed: unlocking tools with an access code now sticks — the unlock is saved with the rest of your settings, so these tools stay unlocked every time you reopen the app instead of re-locking on restart.
- Jump straight into Trade Replay from the Order Chain view: each eligible chain row now has a Trade Replay button, so you can open the visual playback without first opening the trade.
- Clearer per-trade breakdown: the numbers now read as a top-to-bottom P&L waterfall (opening → rolls → closing → fees → net), with leg columns aligned down the chain, a Credit/Debit tag on each roll, and the number of days the trade was held.
- Fixed: the account and period selectors no longer overlap at the smallest window size.
1.0.42026-06
- Reset & re-sync a connected broker: if an automatic sync ever imports something wrong, you can now clear that broker's auto-synced trades and re-download your history from scratch in one click — from Manage AutoSync. Your login, your CSV/Fidelity imports, and any manual entries are kept.
- Clearer auto-sync setup: simpler, broker-neutral wording in the connect flow, setup instructions, and dialogs.
1.0.32026-06
- Open positions are no longer closed automatically during reconciliation — a trade closes only when your broker actually reports it closed — and you can reopen a trade that was closed by mistake from its trade detail page.
- Fixed: the 0DTE planner now reads the current VIX value instead of the previous day's close.
- Fixed: the trade count carried over from a previous sync now shows the correct total.
1.0.22026-06
- Fixed: scrolling while a dialog or modal is open no longer bleeds through to the page behind it — the dashboard underneath now stays put until you close the dialog.
- Fixed: dropdowns and selectors now close when you click anywhere outside them, instead of staying stuck open.
1.0.12026-06
- Interactive Brokers auto-sync is more reliable: a clearer setup flow, fewer requests against IBKR's strict rate limit, and a friendly message — with an automatic retry — if IBKR temporarily limits your token during setup. Sync now refreshes about once per day, matching how often IBKR updates your activity records.
- Import an Interactive Brokers Flex Query XML export directly — drop the file in just like a CSV and your trades come in. Now validated against real IBKR statements.
- Fixed: when you have both TastyTrade and Interactive Brokers connected, your IBKR accounts now appear in the account selector (previously they showed only under Accounts & Import History).
1.0.02026-06
- Dashboard & P&L: a monthly dashboard with the KPIs that matter and a stats card you arrange yourself; year-to-date and annual performance with win rates and a cumulative-P&L trend; a daily and monthly Calendar P/L filterable by 0DTE, non-0DTE, or combined; choose Realized or Strategy P/L and switch any time; and Privacy mode to mask sensitive values for screen sharing.
- Accounts & Sync: track multiple accounts in one place; automatic background sync for TastyTrade and Interactive Brokers with no manual exports; CSV/Flex import for TastyTrade, Fidelity, and Interactive Brokers with duplicate detection; and cross-broker account linking so your history and cost basis follow you through transfers.
- Trades & Replay: a searchable trade list with a configurable Standard View; Strategy View showing a trade's full lifecycle — entry, every roll, and final close; a per-trade breakdown with every fill and running net (Beta); and Trade Replay visual playback of entry, management, and exit (Beta).
- Platform: a signed and notarized macOS build and a code-signed Windows build; your settings and preferences carry across updates; and a clean install and uninstall.