Skip to content
Extends the CreditKarma interface to allow CSV file imports of 1099-B infomation
Branch: master
Clone or download
Pull request Compare This branch is 1 commit ahead of mattotodd:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

CreditKarma Tax 1099-B Import Extension

Chrome Extension that adds features to the CreditKarma Tax Capital Gains interface to allow CSV file imports.


Install the Extension

After installation, when you visit the Credit Karma Cap Gains form, you will see an "Import from CSV file" section.



CSV files can be imported by choosing a format in the dropdown, and then "Choose File" and selecting the csv file from your computer.

Your file data is only accessed in-browser (it is not sent, saved or processed outside your computer).

The import will not overwrite any rows on CreditKarma that already have a description, sale price or cost.

If Gain/Loss does not update, clicking "Next" will save/refresh those numbers.

You can clear the whole table by selecting "Clear all entries" and then click the green "Next" button.

This extension and software is not developed or affiliated with

It it the users responsibility to review all imports to make sure they are correct.

Known Issues

Does not import Adjustments

Import Sources/Formatting

Current Support For:

Default CSV Formatting

The default importer is looking for the following headers in row 1.

Header Name Values
reportingCategory short: 1 = 1099 was reported, 2 = 1099 not reported, 3 = no 1099 long: 4 = 1099 was reported, 5 = 1099 not reported, 6 = no 1099
description description of sale
dateAcquired mm/dd/yyyy
dateSold mm/dd/yyyy
salesPrice 0.00
costBasis 0.00
adjustmentCode code
adjustmentAmount 0.00

Example default csv:

long,1,Some Stock,12/02/2007,03/04/2017,1234.50,325.55
short,2,Some Fund,10/15/2016,03/04/2017,5500.55,5000.00


MIT License


Pull Requests are encouraged.

Importers are modules with the following properties:

textToLines(csvText) - (optional) - function that takes the text of the csv file as a param, and returns an array of the rows. If this function is not provided, the default behavior is the first row of the csv is used as header properties, and returns an array of objects with named properties. see importers/default.js

parseCsvRow(csvRow) - (required) - function that takes a row of the array returned from textToLines as a param, and returns an object with the following properties: see importers/fidelity.js

    holdingType: "2",  // 1 for short, 2 for long
    reportingCategory: "3", // 1 for 1099 was reported, 2 for 1099 was not reported, 3 for no 1099
    description: "Sold this security",
    dateAcquired: "5/25/2016", // format mm/dd/yyyy
    dateSold: "5/25/2017", // format mm/dd/yyyy
    salesPrice: 5500.50,
    costBasis: 2500.00

Example Importer:

var CKI = CKI || {};
CKI.Importers = CKI.Importers || {};

CKI.Importers.exampleImporter = {
	constants: {
		TYPE_COLUMN: "Gains Type",
		DESCRIPTION: "Description",
		ACQUIRED_COLUMN: "Date Acquired",
		SOLD_COLUMN: "Date Sold",
		COST_BASIS_COLUMN: "Cost Basis",

	parseCsvRow: function(sourceObj) {
		var obj = {
			holdingType: (sourceObj[this.constants.TYPE_COLUMN] == 'long')  ? "2" : "1",
			reportingCategory: "3",
			description: "Sold " + sourceObj[this.constants.DESCRIPTION],
			dateAcquired: (sourceObj[this.constants.ACQUIRED_COLUMN]) ? sourceObj[this.constants.ACQUIRED_COLUMN] : 'Various',
			dateSold: (sourceObj[this.constants.SOLD_COLUMN]) ? sourceObj[this.constants.SOLD_COLUMN] : 'Various',
			salesPrice: parseFloat(sourceObj[this.constants.PROCEEDS_COLUMN]),
			costBasis: parseFloat(sourceObj[this.constants.COST_BASIS_COLUMN])
		return obj;
You can’t perform that action at this time.