Chrome Extension that adds features to the CreditKarma Tax Capital Gains interface to allow CSV file imports.
After installation, when you visit the Credit Karma Cap Gains form, you will see an "Import from CSV file" section.
https://tax.creditkarma.com/taxes/CapitalGainsFullListSummary.action
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 CreditKarma.com.
It it the users responsibility to review all imports to make sure they are correct.
Does not import Adjustments
- Fidelity - Consolidated 1099 CSV
- CoinTracking.info - Tax CSV Export
- Bitcoin.tax - Tax CSV Export
The default importer is looking for the following headers in row 1.
Header Name | Values |
---|---|
holdingType | long or short |
reportingCategory | 1 = 1099 was reported, 2 = 1099 not reported, 3 = no 1099 |
description | description of sale |
dateAcquired | mm/dd/yyyy |
dateSold | mm/dd/yyyy |
salesPrice | 0.00 |
costBasis | 0.00 |
Example default csv:
holdingType,reportingCategory,description,dateAcquired,dateSold,salesPrice,costBasis
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
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",
PROCEEDS_COLUMN: "Proceeds"
},
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;
}
};