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:

multiple-item-cogs

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:

inventory-before-products

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

multiple-product-cogs

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].

Pay eCommerce estimated taxes – accurately and on time

In time for 2023 third quarter estimated taxes, Seller Ledger has released a new feature to make calculating your tax obligation easy.

New “Quarterly” taxes tab

Under the Taxes section, you will see a new tab labeled “Quarterly”. Clicking on it will bring you to a screen like this:

Quarterly Estimated Taxes

Seller Ledger now estimates your quarterly tax payments based on your year-to-date business results and shows you the correct payment deadlines for the selected year. We take care of the rates for Social Security and Medicare, and let you choose the federal income tax rate that applies to your situation (see the new “Business” tab under Settings:)

Set your income tax rate

If you under- or over-pay for one quarter, Seller Ledger will remember that for future quarters. To record payments, just use the new “Estimated tax” category that has been added to your account, so Seller Ledger knows to apply the payment correctly.

Click here to get a copy of the latest IRS form 1040-ES.

As always, feedback is very much appreciated, so let us know how we can improve things at [email protected].

Tracking cost of goods sold with eBay

eBay cost of goods sold tracking has been a challenge for years (as we have heard from both customers and members of the eBay management team.)

Not too long ago, Seller Ledger rolled out inventory tracking, complete with some nifty automated cost of goods sold calculations. But for eBay sellers, that functionality depends on the use of an optional listing field called “Custom label (SKU).” And it turns out, that field is not shown by default when creating listing templates. So, we thought we’d help folks learn how to find and use that field, and what magic it can potentially unlock.

When you start to create a listing, one of the first things you’ll do is create a title for your item. By default, you will see two fields: Item title and Subtitle. However, if you click on the link to the upper right, called “See title options“, you will see a few more options pop up. One of those options is “Custom label (SKU)”.

Click on the selector to turn that field on, and you should see an updated form that looks like this:

Now, you have the ability to enter information about this item in the Custom label (SKU) field. But what should you put there, and why is it important?

You can choose to put anything you’d like in there, but, if you follow this guidance in conjunction with Seller Ledger, you will see two major benefits:

  1. Have your inventory reduced and your cost of goods sold automatically calculated when an item sells
  2. See how much money you make on each sale

The key concept here is to have a unique identifier (SKU) for each item you sell on eBay. How you create that identifier is up to you. Some people put a combination of letters and numbers, with some parts relating to the product name, or the bin number in which they are are currently stored. Others simply choose ever-increasing numbers. What matters most is that each SKU value is unique to that eBay item.

In Seller Ledger, when you purchase items for resale, you now have the ability to create a product/item, complete with a Product SKU field.

add-product-sku-cogs

If you enter the same value in your eBay listing under “Custom label (SKU)” that you enter in Selller Ledger under “Product SKU”, you can sit back and watch the magic happen. When one of those items sells on eBay, Seller Ledger will match the order to your inventory, reduce the number of “in stock” units in inventory, and automatically calculate the cost of goods sold for that item, and show you the gross profit for that sale, as seen below.

Feel free to dig in for a more in-depth look at how Seller Ledger helps automate inventory and cost of goods tracking.

Interested in giving this a try? Seller Ledger offers a 30-day free trial, no credit card required.

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.

Update: April 2024

In the time since we launched this feature, we’ve updated some elements of the user interface. See below for a more current description.

When you click in from the dashboard, you’ll still see “uncategorized” transactions grouped by merchant/transaction name. But you may notice that we have some additional filters in the account views. You can always reproduce this option by clicking the “Type” filter and choosing “uncategorized”.

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]

Categorize eBay transactions the way you want… plus more

Now that we have officially launched, it is time to get back to making the product better and easier to use. To do that, we’ve focused on a number of enhancements that came directly from our customers.

Customize how eBay transactions are categorized

First up, we heard from a number of people that they would like to be able to change how eBay data gets categorized when it comes in. As a refresher, here is how Seller Ledger handles eBay transactions by default.

But, we’ve heard some great reasons to change the default settings. Some examples include:

  • Putting eBay fees under the “Advertising” category rather than “Commissions and fees.”
  • Putting Shipping costs under “Cost of Goods Sold” instead of “Office Expense.” There’s an interesting debate here, which we plan to tackle in a future blog post.

However, one of the coolest ideas was to let customers have eBay order amounts go under a subcategory of Product Sales, so that, if you are a multi-channel seller, you could have a profit and loss that starts with something like this:

Categorize eBay transactions
Custom eBay sales categories

To make this possible, just go to our new “Customize” page under the Settings tab, and edit the transaction types you’d like to change:

Remember, if you want to use any sub-categories for eBay data, you’ll want to create those sub-categories first.

See your profit or loss by month, quarter or year

This one is pretty self explanatory:

Profit and Loss by quarter

On a related note, we also added totals to top right of the Income and Expense tabs, so when you drill down or filter for a specific date range and/or category, you can see the totals. This will also match the numbers your click from the profit and loss report.

Total of filtered expenses

Ability to delete sub-categories

A small enhancement, but for those of you who add a sub-category but then decide you don’t need it, or made a mistake, you can easily delete them. Of course, if you have categorized any transactions using that sub-category, you will need to re-categorize them. We won’t give you the option to delete a sub-category if there are any transactions using it.

That’s it for now. We’ve got a few other improvements coming soon, so stay tuned.

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: https://app.sellerledger.com/settings/billing

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:

link-banks-credit-cards-paypal

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.