Guides

Contracts, whole.

Writing, buying, rolling, expiry, assignment and exercise — what each one does to your book, and what an options export brings in.

Import guides  /  Options

Most trackers treat an option as a stock with a strange ticker. FolioBright treats it as a contract: it knows you can be short one, it knows a premium is a hundred shares’ worth of price, and it knows the difference between a contract that expired and one you bought back.

What a contract is here

Priced per share, valued per contract. You type the premium the way your broker quotes it — 6.15 — and FolioBright multiplies by 100 for the money. Every premium box on the screen says so under it.

Writing is a negative position. A contract you wrote sits in your holdings at a negative quantity, because that is what it is: an obligation, not an asset. Sell ten shares of something else and it stays there — short lots are not collateral damage of an unrelated trade.

It carries its own price from the moment it exists. A contract is worth what you paid for it, not what the underlying happens to be doing. That is the fill you entered, held on the contract’s own lots.

Six things you can do, in one place

Every contract action lives on the Options tab of + Add Transaction. There is no separate short screen, no cover mode to find, and nothing that asks you to retype a strike and an expiration you already own.

What you pickWhat it records
Opening a contractBuying one or writing one. It asks which BEFORE it asks for the contract, because the side decides what the rest of the form means.
Closing a contractBuying back something you wrote, or selling something you hold. Closing at a gain and closing at a loss are the same action — enter what you actually paid or received.
Rolling itOne action, two records: the contract you are closing and the one you are opening in its place, with the new strike and expiration on the same screen.
Expired worthlessThe contract ends at zero. A contract you WROTE and let expire was never bought, so no purchase is missing and nothing asks you for a cost basis.
AssignedYou were on the receiving end. FolioBright closes the contract and prefills the share leg — delivering or taking delivery, whichever the contract points at.
ExercisedThe same event from the other side of the contract. Same rule, same prefilled share leg.
  1. In FolioBright, click + Add Transaction and choose the Options tab.
  2. Pick the account and the date.
  3. Choose what you are doing: Opening, Closing, Rolling, Expired worthless, Assigned or Exercised.
  4. If you are opening, say whether you are writing the contract and collecting the premium, or buying it and paying one.
  5. Give the underlying, call or put, strike and expiration — or, for anything but a new contract, pick it from the list of contracts the account already holds.
  6. Enter the number of contracts and the premium per share. 6.15 means $615 for one contract.
  7. Save. The contract appears in your holdings, and the cash moves in the direction the side implies.

A spread is one action

Tick This is a spread when you open, and a second leg appears. Each leg carries its own quantity, so a ratio spread is not a special case. Both legs are recorded in one action and share a spread id — and each keeps its own tax lots, because they are still two contracts and the taxman knows it.

Before you save, the preview names the net credit or debit. For a vertical — same expiry, same type, opposite sides — it also gives you max profit, max loss and the breakeven. For other shapes it says plainly that those three figures are not defined by strikes and premium alone, and shows nothing rather than a number it would have had to guess.

In your holdings the spread is one row with a Spread badge, collapsed, with the legs underneath. Click its name and FolioBright draws the payoff at expiry.

The payoff needs no market data

The curve, the exact max profit, the exact max loss and every breakeven come from two things you already have: the strikes, and the premiums you actually paid or received. No feed, no subscription, no delay. It is the position at expiry, solved rather than sampled, so the corners are where they really are.

Where a side is genuinely unbounded — a naked short call, say — it is named as unbounded rather than cut off at the edge of the chart, which is the one thing a payoff diagram must never soften.

The one marker that is not from your own data is the underlying’s last known price, and it only appears if your book already holds the shares. An account that does not hold them gets no marker — drawing this chart never fetches anything.

Pricing, with no live option quotes

FolioBright does not have a live options feed, and says so on the screen rather than quietly showing you a stale number. You have two honest choices, and the app preselects the first for a new contract:

Set the price manually. Enter the current premium per share and update it when you feel like it. This is the closest thing to the truth and it is yours to keep current.

Or leave it, and let it mark at intrinsic value from the underlying’s live price. That is honest arithmetic with a known bias: a contract that is out of the money marks at $0 until it is not, because intrinsic value is all that can be computed without a quote. Time value is real and this deliberately does not pretend to know it.

Assignment and exercise: where the premium goes

This is the part most trackers get wrong, and it is worth a minute. When a written call is assigned, the premium you kept is not a separate option gain. IRS Publication 550 puts it into the sale proceeds of the stock you delivered. A written put’s premium comes off the basis of the stock you were put. Exercise mirrors it.

Four cases, one rule: the premium attaches to the side of the strike the contract points at, not the side of the trade you were on.

What happenedThe share legEffective per-share price
Written call assignedYou sell at the strike, and you kept the premiumstrike + premium
Long call exercisedYou buy at the strike, and you paid the premiumstrike + premium
Written put assignedYou buy at the strike, and you kept the premiumstrike − premium
Long put exercisedYou sell at the strike, and you paid the premiumstrike − premium

The premium used is read from the contract’s own lots — what you actually paid or received, averaged across them — never from a box you retype from memory. The contract itself closes at its own cost, so it books no gain of its own and the money is not counted twice. Your total profit is the same either way; what changes is that the split now matches the way your broker’s 1099-B reads it.

FolioBright records what happened and shows you the arithmetic. It is not tax advice, and where your broker’s reporting differs from what you see here, your broker’s 1099-B is the document the IRS gets a copy of.

Importing options from a brokerage CSV

You do not have to do anything special. The contract is read out of the row itself, wherever your broker happens to put it, so BTO, STC, assignments, exercises and expiries all come in without any wording from you. Every format below is tested against the importer, not described from memory.

What your broker writesIn the fileWhat FolioBright reads
Robinhood’s phrase formNVDA 12/18/2026 Call $150.00NVDA $150 call, 18 Dec 2026
…with a two-digit yearNVDA 12/18/26 Put $150.00NVDA $150 put, 18 Dec 2026
…with a thousands comma in the strikeNVDA 12/18/2026 Call $1,500.00NVDA $1500 call, 18 Dec 2026
…in any case at allnvda 12/18/2026 call $150.00NVDA $150 call, 18 Dec 2026
Fidelity’s formCALL (NVDA) NVIDIA CORP DEC 18 26 $150 (100 SHS)NVDA $150 call, 18 Dec 2026
Merrill’s slash-dated variantPUT (NVDA) NVIDIA CORP 12/18/2026 $150NVDA $150 put, 18 Dec 2026
an OCC symbol, compactNVDA261218C00150000NVDA $150 call, 18 Dec 2026
…or space-padded to 21 characters, as E*TRADE, Tastytrade and IBKR write itNVDA 261218C00150000NVDA $150 call, 18 Dec 2026
Schwab’s form, which lives in the ticker columnNVDA 12/18/2026 150.00 CNVDA $150 call, 18 Dec 2026
…with no space before the CNVDA 12/18/2026 150.00CNVDA $150 call, 18 Dec 2026
an OCC symbol with dashes or spacesNVDA-261218C00150000NVDA $150 call, 18 Dec 2026
The column matters. Schwab’s form is read from the ticker column because that is where Schwab puts it; the same string sitting in a description column is not assumed to be a contract. Guessing across columns is how a fund name becomes an option.

And prose stays prose

A covered-call ETF has the word CALL in its name, a number beside it and a dollar figure nearby. It is a stock. The detector is anchored to the exact shape of a contract symbol rather than sniffing for keywords, so these come in as what they are:

Looks like a contractTickerRead as
GLOBAL X S&P 500 COVERED CALL ETFXYLDa covered-call ETF is a stock
PUT WRITE STRATEGY FUNDPUTWso is a put-write fund

A contract you wrote and let expire raises no missing-purchase warning. There is no purchase to be missing — writing an option is the trade where the money arrives first — and the import preview knows that, so it does not offer to let you invent a cost basis to make a warning go away.

When a spread arrives as loose legs

A broker export has no idea that four rows were one order. FolioBright looks for the fingerprint — several contracts on the same underlying, the same expiration, opened on the same day — and offers to join them: a small SPREAD? chip on the holdings row, and the same offer in the attention panel.

One click. It records no transaction and changes no number: the legs were already right, the lots were already right, the gain was already right. All it adds is the thing the export could not carry — that they belong together — which is what turns four rows back into one position with a payoff you can draw.

What is not here yet

Said plainly, because a guide that only lists what works is an advertisement.

No live option quotes, and no Greeks. Delta, theta and implied volatility need a market data feed FolioBright does not have. Manual pricing and intrinsic value are what is on offer instead, and both say which one you are looking at.

The payoff chart is at expiry, not a live profit-and-loss curve at today’s prices — that is the same feed problem in a different shape.

Max profit, max loss and breakeven in the entry preview are shown for verticals only. More complex spreads are recorded correctly and draw a correct payoff; the three summary figures are left blank there rather than approximated.

Related

Nothing to install

FolioBright reads the file in your browser and stores the result in your own account. There is no brokerage login to hand over, no read-only credential, and no third-party aggregator sitting between you and your holdings.

Start free — 14 days, no card   Read the FAQ

Printed from https://foliobright.com/guides/options.html — the page is kept current with the app; this sheet is not.