---
title: "Cara stok & HPP dihitung"
summary: "Stok di Lensiro POS tidak pernah diketik. Stok dihitung dari riwayat keluar-masuk, dan setiap barang yang masuk menjadi lapisan dengan harga modalnya sendiri, sehingga HPP setiap nota bisa ditelusuri."
chapter: "Stok & uang"
updated: 2026-09-25
source: https://lensiro.com/pos/dokumentasi/cara-stok-dihitung
---

# Cara stok & HPP dihitung

> Stok di Lensiro POS tidak pernah diketik. Stok dihitung dari riwayat keluar-masuk, dan setiap barang yang masuk menjadi lapisan dengan harga modalnya sendiri, sehingga HPP setiap nota bisa ditelusuri.

Di banyak aplikasi kasir, stok adalah satu angka yang bisa diubah siapa saja. Kalau angkanya salah, tidak ada yang tahu kenapa. Di Lensiro POS, **tidak ada angka stok yang disimpan**. Yang disimpan adalah setiap **gerakan**: barang masuk dari pembelian, keluar karena dijual, dikoreksi, rusak, atau dihitung ulang saat opname. Stok adalah jumlah semua gerakan itu.

Karena itu, setiap angka stok selalu bisa dijelaskan. Buka riwayat pergerakan sebuah barang, dan Anda akan melihat persis dari mana angka itu berasal.

## Lapisan dan FIFO

Setiap barang yang **masuk**, baik lewat pembelian, stok awal, maupun koreksi tambah, menjadi satu **lapisan** dengan harga modalnya sendiri. Setiap barang yang **keluar** mengambil dari lapisan yang **paling lama masuk** lebih dulu. Cara ini disebut FIFO (*first in, first out*).

```diagram fifo-lapisan
Tiga kedatangan dengan harga beli berbeda menjadi tiga lapisan. Penjualan 7 pcs mengambil 5 dari lapisan tertua dan 2 dari lapisan berikutnya, sehingga HPP-nya Rp 580.000. Harga modal sisa adalah rata-rata tertimbang lapisan yang masih terbuka, dan penjualan yang melebihi catatan tetap tersimpan dengan stok minus dan HPP perkiraan.
```

Dari lapisan-lapisan itu, Lensiro POS menghitung:

| Angka | Cara menghitung |
|---|---|
| **Stok** | Jumlah semua gerakan barang itu. |
| **HPP satu baris nota** | Harga modal unit-unit yang benar-benar diambil baris itu. |
| **Harga modal** (di Barang) | Rata-rata tertimbang lapisan yang masih terbuka. Kosong kalau tidak ada lapisan terbuka, dan tidak pernah nol. |
| **Nilai stok** | Jumlah sisa setiap lapisan × harga modalnya. |

Tidak ada kolom HPP atau nilai stok yang bisa diedit, sehingga laporan tidak bisa berbeda dari catatan stoknya sendiri.

## Jenis gerakan

| Gerakan | Arah | Dicatat oleh |
|---|---|---|
| **PEMBELIAN** | Masuk | Posting [catat pembelian](https://lensiro.com/pos/dokumentasi/catat-pembelian) |
| **KOREKSI** | Masuk atau keluar | Stok awal, **Koreksi Stok**, dan lembar ukuran lensa |
| **PENJUALAN** | Keluar | Penyerahan barang: saat nota langsung disimpan, atau saat pesanan diserahkan |
| **BATAL** | Masuk | Pengambilan yang diurungkan, retur dengan kondisi layak |
| **RUSAK** | Keluar | **Catat Barang Rusak** |
| **OPNAME** | Masuk atau keluar | Posting [stok opname](https://lensiro.com/pos/dokumentasi/stok-opname), sebesar selisihnya |

Setiap gerakan menyebut penyebabnya: baris nota, baris pembelian, baris opname, atau orang dan alasannya untuk koreksi dan barang rusak.

## Kapan stok berkurang

- **Nota langsung** mengurangi stok saat disimpan.
- **Pesanan** tidak mengurangi stok. Barangnya **ditahan** dan tampil sebagai **Dipesan** di samping stok. Stok baru berkurang saat pesanan diserahkan, dengan HPP dari lapisan pada saat itu.
- **Pesanan yang dibatalkan** sebelum diserahkan tidak menggerakkan stok sama sekali.
- **Faset, QC, pesanan lab, dan servis** tidak pernah menggerakkan stok.
- **Retur layak** mengembalikan barang ke lapisan dengan harga modal yang sama seperti saat keluar, dimulai dari pengambilan yang paling baru.

## Stok boleh minus

Stok tidak pernah menghalangi penjualan. Kalau kasir menjual lebih dari catatan, misalnya karena dua kasir offline menjual barang terakhir yang sama, atau karena stok fisik lebih banyak dari catatan, nota tetap tersimpan.

Bagian yang tidak punya lapisan membuat stok minus, dan HPP-nya dihitung sebagai **perkiraan**. Laporan menandai HPP perkiraan itu, misalnya *13 baris perkiraan* di kartu laba kotor dasbor, sampai stoknya dibereskan lewat [stok opname](https://lensiro.com/pos/dokumentasi/stok-opname) atau pembelian.

## Lensa RX: HPP dari biaya lab

Lensa RX tidak punya stok, jadi HPP-nya diambil dari **biaya lab** di pesanan labnya, dijumlahkan dengan pesan ulang kalau ada. HPP-nya perkiraan sampai biaya lab diisi. Lihat [Pesanan lab](https://lensiro.com/pos/dokumentasi/pesanan-lab).

## Riwayat pergerakan

Di halaman **Barang**, rincian setiap barang menampilkan riwayat pergerakannya: tanggal, jenis gerakan, jumlah, harga modal, penyebabnya, dan sisa stok setelahnya.

### Memperbaiki harga modal yang salah ketik

Lapisan **KOREKSI** yang belum terpakai sama sekali punya ikon pensil di riwayat pergerakan untuk mengubah harga modalnya. Setelah ada unit yang terjual dari lapisan itu, harganya terkunci, karena HPP nota yang sudah terjadi tidak boleh berubah diam-diam.

### Membatalkan posting

Pembelian atau opname yang sudah diposting bisa dibatalkan selama tidak ada satu pun unit dari lapisannya yang sudah terpakai. Untuk pembelian, syarat tambahannya adalah belum ada pembayaran. Pembatalan tidak menghapus apa pun. Lensiro POS menulis gerakan balik yang meniadakannya, sehingga riwayatnya tetap utuh.

## Siapa yang boleh melihat harga modal

Harga modal, HPP, margin, laba, dan nilai stok hanya tampil untuk peran dengan izin **Lihat Harga Modal & HPP**, di semua layar dan laporan. Peran tanpa izin itu bahkan tidak menerima angkanya dari server. Pengecualian: harga beli tetap terlihat di halaman Pembelian bagi yang boleh mencatat pembelian.

Peran **Kasir** dan **Admin Toko** bawaan tidak memegang izin ini.

---

Panduan Lensiro POS · https://lensiro.com/pos/dokumentasi/cara-stok-dihitung
