Skatteguru CSV Format
Last updated: October 21, 2026
The generic Skatteguru CSV format is for stocks, ETFs, short sales, costs, dividends, and related events. Use it when you want to create your own CSV manually, convert a broker export, or fix rows that a broker-specific parser cannot understand.
Upload native broker exports first
Canonical CSV for connected assistants
Connected assistants can import small CSV datasets directly with the import_csv_document tool. That tool uses the strict skatteguru_csv version 1 contract and stores the exact CSV as a normal source document.
# skatteguru_csv=1 Date,Type,Symbol,Asset Type,Quantity,Price,Price Currency,Total,Total Currency,Fee,Fee Currency,Account Type 2025-04-02,Buy,AAPL,Equity,10,100,USD,1000,USD,15,SEK,AF
Strict version 1 scope
Currency row default). Total is always gross consideration excluding fees. Unknown columns, missing currencies, negative magnitudes, and crypto swaps, transfers, rewards, crypto-denominated fees, and other unsupported multi-leg operations fail visibly.Canonical decimals use a dot with at most 18 decimal places. The service preserves supplied times and uses physical source-row order for unresolved same-day ties. Large inputs should use the normal file upload flow.
Assistants can call preview_csv_import to run the same strict parser without storing a document, then submit the exact unchanged text with import_csv_document. Import validates the content again.
CSV Generator
Use our wizard to quickly generate a CSV file for common scenarios:
Select Use Case
Choose what kind of data you want to import
Transfer Between Brokers
Record a transfer of shares between two brokers
Add Fees and Costs
Add a fee or cost that was incurred (e.g. bank transfer fee)
Sell
You sold shares
Buy
You bought shares
Quick Start
A minimal valid CSV needs a header row and one row per event:
Date,Type,Symbol,Quantity,Currency,Total,Description 2026-01-15,Buy,SPOT,10,USD,1500.00,Bought shares 2026-02-20,Sell,SPOT,4,USD,700.00,Sold shares 2026-03-10,Dividend,SPOT,0,USD,25.50,Cash dividend
For short selling, represent the lifecycle explicitly:
Date,Type,Symbol,Quantity,Currency,Price,Total,Fee,Account,Description 2026-04-30,Sell Short,ABTS,1408,USD,1.39,1966.31,9.19,Cobra,Opened short position 2026-05-01,Borrow Fee,ABTS,0,USD,,3.66,,Cobra,Stock borrow fee 2026-05-02,Dividend Compensation,ABTS,0,USD,,12.50,,Cobra,Payment in lieu of dividend 2026-05-03,Buy to Cover,ABTS,1408,USD,1.47,2065.18,4.58,Cobra,Covered short position
Required Columns
Date
Trade or event date.
Type
Event type, such as Buy, Sell, or Sell Short.
Symbol
Ticker or symbol. The parser may try to infer missing symbols from descriptions, but that is best effort only.
Quantity
Number of shares or units. Use 0 for cash-only rows such as borrow fees.
Currency
Currency for amounts when no more specific currency column is present.
Total or Price
Most rows need a total cash amount or a per-share price. Cash-only rows need Total.
Optional Columns
Event details
Time: event time, useful for same-day ordering.Account: account, broker, or depot name.Description: human-readable explanation. Use this for split ratios if you do not have dedicated ratio columns.ISIN: instrument ISIN for reference.
Amounts
Price: price per share or unit. IfTotalis missing, total can be derived asPrice * Quantity.Total: legacy uploads may retain their historical interpretation. Strict canonical v1 always treats it as gross consideration excluding separately recorded fees.Fee: commission or fee connected to the row. Enter it as a positive number.
Currencies and exchanges
Price Currency,Total Currency, andFee Currency: use these when a value differs fromCurrency.Received QuantityandReceived Symbol: quantity and symbol received in a swap or exchange.
Header aliases are accepted
Datum for Date, Action for Type, Antal or Shares for Quantity, Ticker for Symbol, Amount or Belopp for Total, and Fees & Comm or Commission/Fee for Fee.Event Types
Trades
Buy: positive quantity and positive cost. Creates positive shares and negative cash flow.Sell: positive quantity recommended and positive proceeds. Creates negative shares and positive cash flow.Buy to Cover: same accounting asBuy, but clearer for short-cover rows.Sell Short: positive quantity recommended and positive proceeds. Creates negative shares and positive cash flow.
Income and costs
Dividend: quantity0and positive amount. Creates dividend income.Cost: quantity0and positive cost. Creates a general cost.Borrow Fee: quantity0and positive fee. Prefer this for short-specific borrow or locate fees.Dividend Compensation: quantity0and positive amount. Use it for payment in lieu of dividend on a short position.
Transfers and equity compensation
Transfer: signed quantity, usually with total0. Positive means transfer in, negative means transfer out.ESOP Exercise: positive quantity and positive amount for employee stock option exercise.RSU Vesting: positive quantity and positive fair market value for RSU vesting.
Corporate actions
Stock Split: positive quantity and0total. Include a ratio inDescription, such as2:1 stock split.Reverse Stock Split: positive quantity and0total. Include a ratio inDescription, such as1:10 reverse split.
Do not copy Cobra Type=Short
Type=Short to mean different things. In a manually created generic CSV, write the intent explicitly: Sell Short for opening or increasing a short and Buy to Cover for covering or reducing it.Numbers, Dates, and Signs
Number formats
Decimal points, decimal commas, US thousands separators, European thousands and decimal formatting, currency symbols, negative signs, and parenthesized negatives are accepted. Examples: 1234.56, 1234,56, 1,234.56, 1.234,56, $1234.56, -1234.56, and (1234.56).
Date and time formats
Accepted date examples include 2026-04-30, 20260430, 04/30/2026, 30/04/2026, 30-Apr-2026, Thu Apr 30 2026, 2026-04-30 14:35:00, and 2026-04-30T14:35:00Z. Accepted time examples in the Time column include 14:35 and 14:35:22.
Same-day order
Time column, we assume events in the CSV are already sorted chronologically, either ascending or descending. As long as that row order is trustworthy, you do not need to add event times. We have seen broker exports, including some Cobra CSVs, where same-day events are not always sorted in the expected order. If your results look wrong, manually sorting same-day rows in the CSV to be in the correct order (based on execution time) before uploading may be necessary.Recommended sign convention
Quantity, Total, Price, and Fee as positive numbers for normal rows. The parser applies the correct sign from Type, so Buy becomes negative cash flow and Sell Short becomes negative shares internally.Schwab
Native Schwab CSV exports are supported directly. If the file has the exact Schwab columns Date, Action, Symbol, Description, Quantity, Price, Fees & Comm, and Amount, upload it without converting.
If you create a generic Schwab-like file manually, aliases such as Trade Date, Action, Ticker, Shares, CCY, Amount, and Fees & Comm are accepted.
Trade Date,Action,Ticker,Shares,CCY,Amount,Fees & Comm,Description 07/09/2025,Sold Short,CLDI,6000,USD,$6687.80,$1.00,Short sale 08/15/2025,Short Cover,CLDI,6000,USD,($6120.00),$1.00,Covered short position
Cobra
Native Cobra CSV exports are supported directly. Exact Cobra exports use columns such as Date, Quantity, Symbol, Description, Price, fee columns, Amount, Type, and Commissions.
Native Cobra behavior
Type=Shortwith positive quantity opens or increases a short.Type=Shortwith negative quantity covers or reduces a short.- Margin rows that describe stock borrow, locate, hard-to-borrow, or short-locate fees are treated as borrow fees.
- Short-account mark-to-market and interest-like rows are ignored.
For a manually converted generic CSV, convert the rows explicitly:
Date,Type,Symbol,Quantity,Currency,Price,Total,Fee,Description 2026-04-30,Sell Short,ABTS,1408,USD,1.39,1966.31,9.19,Converted from Cobra open short 2026-04-30,Buy to Cover,ABTS,1408,USD,1.47,2065.18,4.58,Converted from Cobra cover 2026-05-01,Borrow Fee,ABTS,0,USD,,3.66,,Converted from Cobra stock borrow fee 2026-05-01,Borrow Fee,ABTS,0,USD,,12.34,,Converted from Cobra locate fee
Troubleshooting
Common fixes
- Missing symbol: add a
Symbolvalue. Description-based symbol inference can fail. - Unknown type: use one of the documented event types or a common alias.
- Zero quantity error: use
0only forDividend,Cost,Borrow Fee, andDividend Compensationrows. - Wrong sign: prefer positive totals and fees. The parser normalizes direction from
Type. - Unsupported currency: use ISO-like currency codes such as
USD,SEK,EUR, orGBP. - Split error: include a ratio in
Description, for example2:1 splitor1-for-10 reverse split. - Random CSV rejected: the file must contain recognizable generic headers or match a supported broker export.
Need Help?
Our AI assistant Skattevärk1.0 can help you create the correct CSV format.

We're Here to Help
Have questions or feedback? We'd love to hear from you. Get in touch.