Are Sales Tax, Shipping and other fees part of Cost of Goods Sold?

We recently received a question about whether sales tax should be included when calculating cost of goods sold. Because this is a very common scenario, we decided that this would make an interesting blog topic.

There are actually a couple of key questions here:

  1. When you buy items for resale, what gets included in Cost of Goods?
  2. If you buy multiple different items in a single transaction, how do you allocate any sales tax, shipping or other extra costs across those items?

What is included in Cost of Goods?

When you purchase items for resale, all of the direct costs you incur should be included in Cost of Goods. This can include the following:

  • Sales tax
  • Shipping costs (to deliver the items to you)
  • Extra fees (e.g. extra charges for paying by credit card)
  • Handling fees

So, if you buy an item for $100 and get charged $7.75 in sales tax, your Cost of Goods for that item should be $107.75.

How do I handle extra costs for purchases of multiple items?

The same rules apply in terms of including sales tax, shipping and other fees. However, when these extra costs apply to multiple different products, you need to allocate them based on the relative values.

Let’s take a look at an example. Imagine you have a receipt that looks something like this:


You spent $309.60 to acquire 600 items (500 of Widget 1 and 100 of Widget 2.) But the items themselves only cost $250. So what do you do with the other $59.60? Here, a little math is involved. Take the amount spent on the first item (Widget 1: $200) and divide it by the total spent on all items ($250.) Widget 1 represents 80% of your item costs. As such, Widget 1 should have 80% of the sales tax and shipping costs allocated to it. So, multiply the $59.60 in extra costs by 80%, and you’ll get $47.68 in extra costs that should apply to Widget 1. The remaining $11.92 in extra costs should be allocated to Widget 2.

The net result of these allocations gives you total Cost of Goods of:

  • Widget 1: $247.68 (for 500 items) or a per-item cost of $0.50
  • Widget 2: $61.92 (for 100 items) or a per-item cost of $0.62

You may notice there’s a potential rounding issue here, which we’ll address in a future blog post. Stay tuned:)

In Seller Ledger, once you categorize the purchase of $309.60 as “Inventory”, you might see a screen like this:


Just click “Add Details” and enter your newly allocated cost information like this:


Please note: this is only possible if you’re choosing to use item-level tracking in Seller Ledger. You can learn more about it by reading our support article.

We also have it on our list to automatically allocate costs based on the underlying receipt, so stay tuned for that too.

In summary – yes, sales tax, shipping and other fees should be included in Cost of Goods Sold. Hopefully this makes the subject a bit easier to understand.

As always, we’d love to hear any feedback you might have on the product, as well as any other critical questions you have about eCommerce accounting, bookkeeping, inventory and Cost of Goods Sold. Please reach out to us at [email protected].

Seller Ledger adds easy inventory tracking for eCommerce sellers

eCommerce sellers, large and small, now have the ability to track inventory with Seller Ledger. Until now, customers could only write off inventory as “cost of goods sold” when purchased. But no longer!

Why track inventory in Seller Ledger?

There are a number of reasons to track inventory:

  1. For most eCommerce sellers, the IRS requires that you do so.
  2. It better aligns costs with your sale.
  3. If done properly at the item level, it can help automate accurate stock levels (avoid stockouts,) as well as tell you how much money you make on individual orders and items.

So what does Seller Ledger offer in terms of eCommerce inventory tracking?

There are now 2 main ways to track inventory in Seller Ledger: what we call “balance-level” and “item-level” tracking.

Option 1: Balance level tracking (a.k.a. “periodic inventory”)

For those sellers who don’t want to track every item of inventory, the IRS uses a simple formula to help you calculate “cost of goods sold”:

Cost of Goods Sold = Beginning balance + Purchases – Ending balance

We’ve modeled our new inventory view after this simple formula:

Using this approach is pretty straightforward – you only have to do a few things:

  1. Count/estimate the cost of all of your unsold inventory once per year (or quarter, or month – you choose)
  2. Track purchased goods/materials for resale throughout the year
  3. Do some simple math (or let Seller Ledger do it for you)

Read a more detailed explanation of exactly how this works in practice.

Option 2: Item level tracking (a.k.a. “continuous inventory”)

Do you already keep a spreadsheet of all of your inventory, including how much you paid for each item? When an item sells, do you have to go back and update it? Have you tried to figure out how much money you make on each sale? If you can answer “yes” to any of these questions, then this option is for you.

While a bit more effort is required, the steps are quite simple:

  1. When you purchase goods for resale, categorize them as Inventory purchases
  2. Within each purchase, enter each item, including a unique SKU value, and the item’s cost. This process works very similar to splitting transactions.
  3. Alternatively, you can start from your list of sold items (the order history we’ve already imported for you) and just tell us which purchase transaction included the item sold.

If you provide Seller Ledger with this level of detail, we do a few things for you automatically when an item sells (matching first based on SKU first, then by name):

  1. We reduce the stock level for that item in your inventory
  2. We calculate and generate the cost of goods for that item
  3. We show you your gross profit for that order

Learn more about how to use “item level” inventory tracking.

Do I have to track inventory in Seller Ledger?

You do not. If you would prefer to just categorize inventory purchases as “cost of goods sold,” you are free to do so. But, you might want to make sure you understand the risks with that approach. We’ll be writing another post about that option soon.

How do I try this out?

Just discovering Seller Ledger? Start a 30 day free trial right now – no credit card required.

For existing customers, just log into Seller Ledger, and you will see two new changes to the website. First, on the left of your Dashboard, we have added and made visible a new “Inventory” asset account. Second, there is a new top-level navigation link for Inventory. For those who previously categorized inventory purchases as “cost of goods sold,” you can elect to switch to properly tracking inventory. We explain more about how that works here.

Is there an additional charge for tracking inventory in Seller Ledger?

No – this feature is available to all customers at no additional charge. Unlike other accounting/bookkeeping platforms, we think even the smallest sellers should be able to see how much money they make on each item and keep on top of their inventory stock levels.

Please tell us what you think

This is a pretty big release, and represents weeks of work and planning. It’s also something we never got to tackle with Outright/GoDaddy Bookkeeping. As such, we’d love to hear from you as you try this new functionality – the good, the bad and the ugly.

Thanks from the Seller Ledger Team

Split a transaction into multiple categories

Another one of the most frequently requested enhancements has arrived: the ability to split transactions into multiple categories.

Do you have charges on your credit card for multiple items that belong in different categories? Do you have deposits in your bank account from marketplace payouts that represent net amounts, after combining sales, shipping and subtracting fees. Well, you no longer need to choose a single category for each of those. Now, when you click the button to “Categorize” a transaction, you will see a new option to “Split” that transaction:

Now, click on the “Split Transaction” to break that transaction into multiple categories:

Notice that as you enter an amount in each row, the remaining difference is updated, to let you know how much of the original transaction you still need to account for. As you can see, you also have the ability to “Add Splits” to provide more detail.

For those of you selling on platforms like Poshmark, Mercari and others, who don’t provide APIs, this feature should help you get your numbers more accurate (in order to better match any 1099-k’s you may received.) Though feel free to contact those platforms and tell them to “get with the times”:)

As always, please let us know what you think of this change by emailing us at [email protected].

Categorize many transactions at once

One of the biggest remaining tasks that we’ve been working on simplifying is the ability to categorize all of your “uncategorized” transactions as quickly as possible. Well, today we took a big step forward by announcing 3 changes:

First, we’ve added some logic to shorten the descriptions we receive from banks and credit cards to shorter, more recognizable merchant and customer names.

Second, when you click on a dashboard button for “uncategorized” transactions (or if you click the “Uncategorized” filter button in your account view,) you will now be presented with a page that shows all of your uncategorized transactions grouped by merchant name or description, sorted by transaction count. This allows you to knock off the biggest grouping of uncategorized transactions as quickly as possible.

Categorize many transactions at once

Three, we have added the ability to select multiple merchant names/descriptions so you can categorize multiple groups of transactions at once. Do you see multiple vendors where you buy items for resale? Select them all, click “Categorize”, choose “Cost of Goods Sold” and boom!

Please let us know what you think of this change by emailing us at [email protected] or commenting on this post.

Connect your Etsy store to Seller Ledger

We are now officially multi-channel!

Seller Ledger now supports a direct integration with Etsy to bring in your product sales, expenses and fee information.

How to link Etsy

From your Dashboard, below your current connected account(s), simply click the “Add Connected Account” button and you will see an updated screen with a new option:

Connect to Etsy
Connect your Etsy store to Seller Ledger

Click on the button with the Etsy logo and follow the steps to give Seller Ledger permission to import your information. If you have more than one Etsy store, just repeat the process for each store.

By default, Seller Ledger will import 90 days worth of transaction history when you connect Etsy. We will then categorize them as follows:

Etsy valueSeller Ledger Category
Order valueProduct Sales
ShippingShipping Collected
Discount amountDiscounts
Refund amountRefunds
Shipping LabelOffice expense
Etsy feesCommissions & Fees

If you’d prefer, Seller Ledger also allows you to customize how you’d like to see your Etsy information to be categorized. Just go to the Settings tab and click the Customize button:

We posted earlier about ways you might want to consider using this feature.

Help spread the word to other Etsy sellers

We have seen a number of posts on the Etsy Community about GoDaddy Bookkeeping going away. If you have a chance, we’d love your help in letting folks there know that a new solution is available.

Let us know what you think

We’re always looking for constructive feedback, so please let us know what we can do to make Etsy bookkeeping easier and better. Email us at [email protected]

It’s Official: We’ve launched

Launch day! Seller Ledger has officially exited its “Beta” period and now offers automated bookkeeping software that’s specifically designed for online sellers.

Seller Ledger launches

First, a “thank you” to our Beta customers

There is no way we could have pulled this off without the help of more than 300 online sellers who took the time to bang on our software to find the bugs, the data discrepancies, and the things that just weren’t easy enough to use. Your commitment to helping, your patience with the flaws, and your continuous communication made this possible.

What does it mean to “launch?”

No, we’re not throwing some big event (though we can’t rule that out for future milestones:) Launching simply means we are at the point where we’re asking folks to pay to continue using Seller Ledger. It also means we’re committing to supporting the product going forward. We still have big plans for improving the product. In addition to adding new marketplaces like Etsy, Amazon and others, we will also continue to prioritize smaller improvements to make the product easier to use.

Do I have to pay now?

While we’d certainly appreciate it, we are giving all of our Beta customers the same 30-day trial period they would receive if they just signed up today. But they have the benefit of keeping all of the data already in their account (including transactions for the full 2022 year where available.)

Beta customers can see their paid plan options here:

What does this mean for brand new users?

If you’re new to Seller Ledger, you can sign up for a free 30-day trial, import up to 90 days worth of sales and expense history from eBay, PayPal, banks and credit cards, and see for yourself how well the product eases your bookkeeping burden. We don’t ask for a credit card or any form of payment up-front. At the end of your trial, decide for yourself whether we’re providing enough value to pay for continued use. If the answer is no, that’s ok. We’ll just do our best to earn your business in the future.

Thanks again to all of our Beta and future customers. Stay tuned for more improvements!

The Seller Ledger Team

Banks, credit cards and PayPal, oh my!

In one of our biggest steps toward building a great product (and filling the void left by GoDaddy Bookkeeping,) we are pleased to announce that Seller Ledger now lets you link most banks, credit cards, and even PayPal.

How to link banks, credit cards and PayPal

From your Dashboard, below your current connected account(s), simply click the “Add Connected Account” button and you will see an updated screen with a new option:


Click the button on the right side of the screen and follow the steps. Choose from the top banks listed, or search by name (which you will want to do for PayPal.) Once linked, we will pull in 90 days worth of transaction history for each linked account.

On a related note, we have also added some new categorization features. You will initially see a lot of transactions marked as “uncategorized.” We now make it super simple to choose a category and apply it to every other transaction like it – both in the past and future.

More than 90 days of history

Based on a handful of banks so far, it appears that we will be able to import the full prior year’s data in many cases. Not only that, but our cracker-jack development team has figured out a way to do the same for eBay data. We now have the ability to go back and get your prior year’s sales and expense history from connected accounts.

Updated pricing and a way of saying “thanks”

For those who may have noticed on our home page, we have updated our pricing section to reflect a couple of changes:

First, we plan to offer annual billing plans where customers pay for 10 months and get 2 free (we like round numbers and offering incentives.)

Second, every free trial will start with 90 days of transaction history. To receive more than 90 days, we will ask customers to commit to an annual plan. The reasons are twofold: one, that much data does increase our costs materially, and two, we’re excited to be able to deliver the full 2022 tax year, but it wouldn’t be fair if we allowed customers to receive this while only paying for a single month.

For those of you who have been with us on this journey to date, we decided that one way to say “thanks” was by going ahead and importing all of your 2022 data for you. Feel free to log in and view your 2022 sales and expenses. Thanks again for your support and wonderful feedback.

Help other sellers with 2022 taxes

Having read multiple discussions online (e.g. the eBay and Etsy community boards, and even Reddit,) there appear to be a lot of sellers who were left in the lurch when GoDaddy Bookkeeping shut down in mid-2022. While we can’t make this offer indefinitely, we wanted to let folks know that we’ll keep the free 2022 data imports going through the end of this month, until March 31. If you know anyone or have seen any calls for help in different communities, feel free to send them our way before the end of the month, and we’ll get their data back to Jan 1, 2022. Please let them know that we’re still in Beta, and we continue to work on improvements, but hopefully, we can help some of them out.

Again, please keep the feedback coming. And stay tuned for the next update.

Bookkeeping for Multiple eBay accounts

Seller Ledger now supports bookkeeping for sellers with multiple eBay accounts.

Based once again on feedback from our wonderful Beta customers, we have added the ability to link multiple eBay accounts to Seller Ledger. This is especially important if you are looking to match the 1099-K that eBay sends. If you have multiple eBay accounts under a single Tax ID, eBay combines the totals for all accounts under that Tax ID.

Learn more about 1099-Ks and why bookkeeping helps you avoid unwanted discrepancies.

Bookkeeping for multiple eBay accounts
Bookkeeping for multiple eBay accounts

Connect multiple eBay accounts in Seller Ledger

If you have multiple individual eBay accounts, it’s simple to link them with Seller Ledger.

Just add each account, one at a time, and watch them show up on your dashboard.

You can see each account, the net sales amount, and how many transactions have been imported. Click through to view the transactions within each account.

To make tax time much easier, we roll up your sales and expenses across all of your eBay accounts into a single Schedule C tax report.

Automated bookkeeping for eBay sellers just got a lot easier for sellers with multiple accounts.

As always, keep the feedback coming. We’ll see you at the next feature announcement.