Harga pokok penjualan adalah biaya barang yang benar-benar laku di satu periode, bukan biaya seluruh barang yang dibeli. Toko yang membeli banyak di akhir bulan tidak otomatis mengeluarkan biaya sebesar itu: barang yang belum laku masih tersimpan sebagai persediaan dan baru dihitung ketika terjual.
Karena itu urutannya melewati persediaan. Persediaan awal ditambah pembelian menghasilkan barang tersedia untuk dijual; barang tersedia dikurangi persediaan akhir menghasilkan harga pokok penjualan. Cara ini yang dipakai OpenStax untuk usaha dagang dengan pencatatan berkala, dan ongkos angkut masuk ikut menempel pada pembelian karena biaya itu bagian dari mendatangkan barangnya.
Contoh langkah demi langkah sebuah toko kelontong. Langkah pertama, persediaan awal Rp12.400.000 ditambah pembelian Rp38.600.000 sama dengan barang tersedia Rp51.000.000. Langkah kedua, kurangi persediaan akhir yang dihitung saat opname, Rp9.900.000, sehingga harga pokok penjualan Rp41.100.000. Langkah ketiga, laba kotor adalah penjualan dikurangi harga pokok penjualan; dengan penjualan Rp56.000.000, laba kotornya Rp14.900.000.
12.400.000 + 38.600.000 = 51.000.000 (barang tersedia untuk dijual)
51.000.000 − 9.900.000 = 41.100.000 (harga pokok penjualan)
56.000.000 − 41.100.000 = 14.900.000 (laba kotor)Persediaan akhir satu bulan menjadi persediaan awal bulan berikutnya, sehingga rangkaian ini bisa disambung terus tanpa menghitung ulang dari nol. Di lembar kerja, penjumlahan beberapa baris pembelian dikerjakan dengan SUM, sedangkan pengurangannya memakai tanda minus biasa.