Računovodstvo zaliha u v19
Osnove
Odoo u v19 donosi značajno jednostavniji model računovodstva zaliha sa sljedećim karakteristikama:
- zaprimanje i izdavanje robe se ne knjiži u glavnu knjigu
- knjiže se ulazni računi na konto zaliha (6600 ili 3100 ili ...)
- knjiže se izlazni računi sa konta zaliha na konto troška prodane robe (7100/6600)
I to je to!
- na kraju perioda (mjeseca ili godine) pokreće se (ručno ili automatski, za početak uvijek ručno) Inventory Valuation koji knjiži sve privremene razlike
Inventory Valuation
Inventory Valuation (Accounting → Review → Inventory → Inventory Valuation) usklađuje stanje konta zaliha (6600) i vrijednost zalihe (Inventory → Reporting → Stock, Inventory on Date ako treba), a razliku prebacuje na konto Stock Variation (3090 ili kako se postavi, to bi trebao biti privremeni konto uvijek sa saldom 0). Ako je sve ok onda tog knjiženja ne bi trebalo ni biti.
Ako se neko knjiženje kreira onda je to zbog:
- roba je zaprimljena, a nije fakturirana
- roba je izdana, a nije fakturirana
- ručno su promijenjene nabavne cijene
- roba je prodana prije nego što je ulazni račun postavio nabavnu cijenu odnosno ispravio AVCO
- itd
Ako je roba zaprimljena/izdana, a nije fakturirana onda se pokreću izvješća
- Bill To Receive,
- Billed Not Received,
- Invoices To Be Issued,
- Invoiced Not Delivered
koja privremene razlike (trebaju se selektirati stavke pa se pojavljuje "Create Accrual Entries") prebacuju s konta Stock Variation na konta koja se zadaju te se automatski kreira storno tog knjiženja na datum iza datuma zatvaranja.
Ostale promjene su najčešće posljedica različitih cijena u različitim trenucima odnosno neurednog unosa, izdavanja robe prije nego što je zaprimljena, zaprimanja robe po cijenama iz narudžbe umjesto po cijenama iz računa, ručne promjene nabavne cijene i slično. Analiza tih situacija je niže u ovom tekstu (Sherlock).
Kada se utvrdi zbog čega je došlo do razlike onda se ta razlika treba ručno rasknjižiti s konta Stock Variation na odgovarajući konto. Na primjer:
- 7100 ako je utvrđeno da je COGS premali ili preveliki
- 7133 Porezno nepriznati manjkovi - ako se radi o neznatnim manjkovima
- 7814 Inventurni viškovi ako se radi o prihodu
- itd
Postavke
Za hrvatske korisnike najbolje su postavke, na osnovu toga je sastavljen ovaj tekst:

te u kategorijama:

i virtualnim lokacijama:

Računovodstvo proizvodnje
Osnove
Mehanizam za proizvodnju je istog principa kao i za zalihu - fizički pomaci ne knjiže se u glavnu knjigu; knjiže se samo:
- pri zatvaranju radnog naloga (Mark as Done) — automatski se knjiže komponente, rad i gotov proizvod
- na kraju razdoblja — WIP Accounting za otvorene radne naloge
- Inventory Closing Entry zatvara sve preostale razlike preko konta Stock Variation
Konti za proizvodnju
| Konto | Naziv | Uloga | Mjesto postavljanja u Odoou |
|---|---|---|---|
| 3100 | Sirovine i materijal | Vrijednost zaliha sirovina | Kategorija sirovina → Stock Account |
| 6000 | Nedovršena proizvodnja (Production) | Tranzitni konto radnog naloga | (a) Kategorija gotovog proizvoda → Production Account (skriven, kod Account Properties); (b) Virtualna lokacija Production → Cost of Production (valuation_account_id) |
| 6090 | WIP — nedovršena proizvodnja (privremeni) | WIP Accounting na kraju razdoblja | Accounting → Configuration → Settings → WIP Account (modul mrp_accountant) |
| 6300 | Gotovi proizvodi | Vrijednost gotovih proizvoda | Kategorija gotovog proizvoda → Stock Account |
| 4000 | Troškovi rada i strojeva | Trošak radnih centara | Radni centar (Manufacturing → Configuration → Work Centers) → Expense Account |
Važno: Production Account (6000) mora biti postavljen i na kategoriji gotovog proizvoda i na virtualnoj lokaciji Production — i to na isti konto. Ako te dvije postavke nisu uskladene, saldo konta 6000 neće biti 0 nakon zatvaranja radnog naloga.
Tok knjiženja pri Mark as Done
Kada se radni nalog zatvori (Mark as Done), Odoo automatski knjiži:
Korak 1 — komponente izlaze iz skladišta na lokaciju Production
D: 6000 Nedovršena proizvodnja P: 3100 Sirovine i materijal na zalihama (po AVCO/FIFO cijeni)
Korak 2 — trošak radnih centara (Workcenter)
D: 6000 Nedovršena proizvodnja P: 4000 Troškovi rada i strojeva
Korak 3 — gotov proizvod ulazi u skladište
D: 6300 Gotovi proizvodi
P: 6000 Nedovršena proizvodnja
( = Σ komponenti + Σ rada + Extra Unit Cost )
Rezultat: konto 6000 se poništi na 0 - pod uvjetom da je cijena gotovog proizvoda jednaka zbroju svih troškova. Ako nije, razlika ostaje na 6000 i traži analizu. Razlika bi trebala automatski biti 0 ako je metoda vođenja zaliha AVCO ili FIFO.
Nusproizvodi (byproducts)
Nusproizvodi dobivaju udio vrijednosti prema postotku cost_share definiranom u sastavnici (BoM):
D: 6300 (ili pripadajući stock account nusproizvoda)
P: 6000 Nedovršena proizvodnja
(proporcionalni udio ukupnih troškova)
Zbroj cost_share po svim nusproizvodima ne može biti veći od 100%. Glavni gotov proizvod dobiva ostatak (100% − Σ cost_share).
Kalkulacija cijene gotovog proizvoda
Cijena gotovog proizvoda = Σ(vrijednost komponenti)
+ Σ(trošak radnih centara)
+ Extra Unit Cost
- AVCO / FIFO — izračun je automatski, na temelju stvarnih troškova.
- Standard Price — proizvod ulazi po standardnoj cijeni; razlika između stvarnoga troška i standarda ostaje na kontu 6000 (i traži ručno rasknjiženje na 7100 ili sličan konto za odstupanje).
- Extra Cost — ručno unesen dodatni trošak po jedinici, izravno na radnom nalogu (polje Extra Unit Cost na mrp.production).
WIP Accounting — za otvorene radne naloge na kraju razdoblja
Ako se precizno evidentira izlazak sirovina sa zalihe u proizvodnju u toku onda je potrebno na kraju razdoblja pokrenuti ovu akciju za otvorene radne naloga (radne naloge na kojima je evidentiran utrošak sirovina, ali nisu gotovi). Mehanizam je analogan Inventory Valuation kod zaliha. Pokreće se za radne naloge u tijeku (statusi In Progress, To Close i Confirmed) na kraju obračunskog razdoblja.
WIP Accounting se pokreće kao akcija direktno na listi radnih naloga:
Manufacturing → Manufacturing Orders → (odaberi jedan ili više MO-a) → Action → Post WIP Accounting Entry
Wizard automatski ignorira radne naloge koji nisu u statusu In Progress, To Close ili Confirmed. Na formi pojedinog radnog naloga prikazuje se smart button WIP s brojem dosadašnjih WIP knjiženja.
Knjiženje:
D: 6090 WIP — Nedovršena proizvodnja P: 3100 Sirovine i materijal na zalihama (komponente do sada utrošene) P: 4000 Troškovi rada (rad do sada obavljen)
Automatski se kreira storno s datumom nakon datuma zatvaranja (isti mehanizam kao kod Inventory Closing Entry).
Zašto je to potrebno: komponente su već fizički napustile zalihu (saldo konta 3100 je smanjen), ali gotov proizvod još nije zaprimljen u skladište (saldo konta 6300 nije povećan). Knjiženje WIP-a aktivira tu vrijednost u glavnoj knjizi za razdoblje zatvaranja.
Napomena: uz WIP Account, postavke mrp_accountant modula nude i WIP Overhead Account, koji se koristi kao alternativni credit za radne centre kada radni centar nema vlastiti Expense Account.
Pregled svih konta i toka vrijednosti
NABAVA TRGOVAČKE ROBE: Dobavljač → 2200
↓
6600 Trgovačka roba
↓
PRODAJA ROBE: 6600 → 7100 COGS (pri fakturiranju)
NABAVA SIROVINA: Dobavljač → 2200
↓
3100 Sirovine i materijal
↓
PROIZVODNJA: 3100 Sirovine
↓
6000 Nedovršena proizvodnja ← 4000 Rad
↓
6300 Gotovi proizvodi
↓
PRODAJA GOTOVIH: 6300 → 7100 COGS (pri fakturiranju)
PERIODIČNO ZATVARANJE: 3090 Stock Variation (uvijek = 0 nakon storna)
6090 WIP (uvijek = 0 nakon storna)
6000 Production (uvijek = 0 nakon zatvaranja MO)
Sherlock — analiza razlika - Claude 6.5.2026
0) Obvezni redoslijed zatvaranja
Zatvaranje uvijek provodimo ovim redoslijedom — svaka zamjena koraka generira lažni preostali saldo:
| # | Korak | Putanja | Što radi |
|---|---|---|---|
| 1 | Vremenska razgraničenja | Accounting → Review → Purchases / Sales (Bill To Receive, Billed Not Received, Invoices To Be Issued, Invoiced Not Delivered) | Označiti stavke → Create Accrual Entries → privremeno knjiženje preko 3090, automatski storno na dan + 1 |
| 2 | WIP Accounting | Manufacturing → Manufacturing Orders → (odaberi MO-e) → Action → Post WIP Accounting Entry | Za otvorene MO-e: D: 6090 / P: 3100 + 4000; storno na dan + 1 |
| 3 | Inventory Closing Entry | Accounting → Review → Inventory → Inventory Valuation | Usklađuje saldo konta zaliha s fizičkom vrijednošću; razlika ide na 3090 |
| 4 | Provjera salda | Accounting → Reporting → General Ledger (filtri: 3090, 6090, 6000) | Saldo svakog od ova tri konta mora biti 0 nakon storna; ako nije — kreće lov |
Prag istrage: |preostali saldo| > max(200 €, 0,5 % vrijednosti zalihe). Ispod toga to je obično zaokruživanje. Iznad toga, sustavno se istražuje.
1) Stablo odlučivanja: na kojem je kontu razlika?
Prije bilo kakve detaljne analize, identificirajmo konto na kojem leži razlika — različiti konti znače različite uzroke i različite alate:
Provjeriti salda 3090, 6090, 6000:
3090 ≠ 0 → PREOSTALI SALDO NA STOCK VARIATION
├── §2 Slojevi vrijednosti bez količine (cijena, ne vrijeme)
├── §3 Stariji datum unosa / negativna zaliha
├── §4 Povrat bez para u knjižnom odobrenju
└── §5 Inventurno usklađenje / otpis na pogrešnom kontu
6090 ≠ 0 → PREOSTALI SALDO NA WIP
└── §6 WIP nije proveden ili nije storniran
6000 ≠ 0 → PREOSTALI SALDO NA PRODUCTION
├── §7a Odstupanje Standard Pricea
├── §7b Extra Unit Cost (sustavno; vidi tablicu)
├── §7c Lokacija Production nema postavljen konto
└── §7d Pogrešan cost_share na nusproizvodima
Bilo koji od gore + ručna knjiženja → §8 Onečišćenje glavne knjige
Pravilo: prvi pogodak prekida lanac. Kad za pojedini konto i pojedini proizvod pronađemo uzrok, prelazimo na sljedeći proizvod.
2) Uzrok 1 — Slojevi vrijednosti bez količine (~80 % slučajeva)
Trag: valuation slojevi gdje je količina = 0, ali vrijednost ≠ 0. To su retroaktivne korekcije troška koje pomiču AVCO.
Tipični izvori:
- ulazni račun s drukčijom cijenom od one po kojoj je roba zaprimljena
- raspodjela razlike u cijeni ili landed cost-a
- revaluacija zbog naknadno unesenih primki sa starijim datumom
Kako pronaći:
- Uključiti Developer Mode.
- Otvoriti Inventory → Operations → Stock Valuation Layers.
- Filtri:
- Date <= datum zatvaranja
- Quantity = 0
- Value != 0
- Grupiranje po Product.
- Sortirati po apsolutnoj vrijednosti — i negativni iznosi pridonose preostalom saldu.
Što očekivati: prvih 20 proizvoda obično objašnjava ≥ 80 % ukupne razlike.
Korektivna radnja: za svaki slučaj analizirati razliku (cijena na narudžbi naspram cijene na fakturi) i ručno rasknjižiti s 3090 na:
- 7100 ako je COGS premali ili preveliki (cjenovno odstupanje)
- 7133 ako je riječ o porezno nepriznatim manjkovima
- 7814 ako je riječ o inventurnom višku
Trajna mjera: 3-way matching na ulaznim računima uz definirane tolerancije; standardiziran proces landed cost-a.
3) Uzrok 2 — Negativna zaliha i naknadni unosi sa starijim datumom
AVCO daje pogrešne rezultate kad postoji:
- isporuka prije zaprimanja (čak i na razini sata ili dana ako je dopušten unos sa starijim datumom — backdating)
- negativna zaliha (količina ispod nule)
- naknadno unošenje starijih primki ili inventurnih usklađenja
Kako pronaći:
- Inventory → Reporting → Stock at Date — izdvojiti proizvode s negativnim stanjem u razdoblju.
- Inventory → Operations → Transfers (Stock Moves) — postaviti filtre:
- date u prošlosti (prije datuma zaključavanja)
- a istovremeno create_date nakon datuma zaključavanja
Korektivna radnja:
- Ispraviti datum unosa ili pokrenuti revaloriziranje nakon ispravljenog redoslijeda.
- Ručno rasknjižiti preostalu razliku na 7100 / 7133 / 7814.
Trajne mjere:
- Inventory Lock Date + Accounting Lock Date odmah nakon zatvaranja (Accounting → Configuration → Settings → Lock Dates).
- Zabrana negativne zalihe na razini skladišta (ili barem upozorenje uz tjedno izvješće).
- Zabrana unosa sa starijim datumom u zaključano razdoblje (kontrolira se lock date-om).
4) Uzrok 3 — Povrat bez povezanog knjižnog odobrenja
Povrat robe (od kupca ili dobavljaču) bez ispravno povezanog knjižnog odobrenja — ili u drugom razdoblju, ili po drugoj cijeni — ostavlja razliku kao preostali saldo.
Kako pronaći:
- Lista povrata u razdoblju: Inventory → Operations → Transfers uz filtar Return Picking.
- Za svaki povrat provjeriti postoji li pripadajuće knjižno odobrenje (Accounting → Customers → Credit Notes ili Vendors → Refunds).
- Provjeriti je li u istom razdoblju, na istu količinu i po istoj cijeni.
Korektivna radnja: ispravno povezati povrat s knjižnim odobrenjem; razlika će nestati pri sljedećem Inventory Closing Entry. Ako je povrat proveden po pogrešnoj cijeni (npr. po staroj AVCO cijeni), izdati korektivno knjižno odobrenje.
Trajna mjera: procedura za povrate s obveznim povezivanjem na izvorni dokument.
5) Uzrok 4 — Inventurno usklađenje ili otpis na pogrešnom kontu
Inventurna usklađenja i otpis (scrap) legitimni su izvori razlika i ne smiju završiti na 3090. Problem nastaje kad se "sakriju" kao Stock Variation umjesto da završe na očekivanom Loss Account-u (7130 / 7133 / 7814).
Kako pronaći:
- Inventory → Operations → Physical Inventory — popis svih usklađenja u razdoblju.
- Inventory → Operations → Scrap Orders — popis svih otpisa.
- Za svaki provjeriti je li učinak na uspjeh proknjižen na Loss Account-u koji je definiran na virtualnoj lokaciji (Inventory → Configuration → Locations).
Korektivna radnja: ako učinak završi na 3090 umjesto na 7130 / 7133 / 7814, ručno reklasificirati knjiženje na ispravan konto.
Trajne mjere:
- Provjeriti da virtualne lokacije Inventory adjustment i Scrap imaju ispravno postavljen Loss Account (vidi tablicu u poglavlju Postavke).
- Ograničiti pravo provedbe inventurnih usklađenja preko korisničkih grupa.
6) Uzrok 5 — WIP Accounting nije proveden ili nije storniran
Saldo na 6090 (WIP — Nedovršena proizvodnja) na kraju razdoblja znači da je WIP knjiženje proknjiženo, ali storno nije pokrenut, ili da je WIP zaboravljen za neki podskup MO-a.
Kako pronaći:
- Accounting → Reporting → General Ledger → filtar po kontu 6090 → razdoblje.
- Ako saldo nije nula, provjeriti postoje li storno stavke (datum dan nakon zatvaranja, suprotnih iznosa).
Korektivna radnja:
- Ako je WIP proknjižen, ali storno nedostaje, ručno proknjižiti storno.
- Ako je WIP potpuno zaboravljen za neki MO, pokrenuti Action → Post WIP Accounting Entry za taj MO; storno se kreira automatski.
Trajna mjera: kontrolni popis (checklist) zatvaranja koji izričito nalaže provedbu WIP Accounting-a prije Inventory Closing Entry.
7) Uzrok 6 — Production Account (6000) nije nula
7a) Odstupanje Standard Price-a
Gotov proizvod ulazi po standardnoj cijeni, ali komponente i rad skuplji su ili jeftiniji od standarda. Razlika ostaje na 6000 sustavno (nije pogreška, već cjenovno odstupanje koje treba periodički rasknjižiti).
Provjera: Manufacturing → Manufacturing Orders → otvoriti MO → smart button Valuation → provjeriti saldo po pojedinom MO na kontu 6000.
Korektivna radnja: ručno rasknjižiti na 7100 (COGS) ili na poseban konto za cjenovna odstupanja.
7b) Extra Unit Cost (sustavni preostali saldo)
Kad je extra_cost > 0 na MO-u, Odoo ne knjiži automatski protustavku — na 6000 ostaje saldo −(extra_cost × količina) po samoj matematičkoj konstrukciji.
| AVCO/FIFO + scenarij | Saldo 6000 nakon Mark as Done |
|---|---|
| extra_cost = 0, bez nusproizvoda | 0 (po konstrukciji) |
| extra_cost = 0, s nusproizvodima (Σ cost_share + finished = 100 %) | 0 (po konstrukciji) |
| extra_cost > 0 | −extra_cost × količina (sustavno; treba ručna protustavka) |
Korektivna radnja: ručno proknjižiti protustavku na konto režije, dodatnih troškova ili transporta — ovisno o naravi extra cost-a.
Trajna mjera: ako se extra cost sustavno koristi, definirati pravilo za njegovu protustavku (poslužiteljska radnja ili dokumentirana procedura).
7c) Lokacija Production nema postavljen Cost of Production konto
Ako virtualna lokacija Production nema postavljen Cost of Production konto, knjiženje rada radnih centara neće se provesti, pa će radni centri "visiti" izvan glavne knjige.
Provjera: Inventory → Configuration → Locations → otvoriti Production → polje Cost of Production mora biti popunjeno (i mora odgovarati Production Account-u na kategoriji gotovog proizvoda).
Korektivna radnja: ispraviti postavku; idući MO knjiži se ispravno. Za već zatvorene MO-e ručno proknjižiti rad.
7d) Pogrešan cost_share na nusproizvodima
Ako je u sastavnici (BoM) Σ cost_share nusproizvoda postavljen tako da raspodjela ne odgovara stvarnoj poslovnoj logici, raspodjela troška na nusproizvode i glavni proizvod ne pokriva ukupni total_cost, pa se 6000 ne poništi.
Provjera: Manufacturing → Products → Bills of Materials → otvoriti BoM → provjeriti zbroj cost_share na nusproizvodima (mrp.bom.byproduct.cost_share). Validacija u kodu (mrp/models/mrp_bom.py:208) blokira Σ > 100 %, ali ne nameće Σ = 100 % — moguće je imati npr. Σ = 30 % (uz 70 % na glavni proizvod), što je ispravno.
Korektivna radnja: ako je raspodjela namjerno različita od poslovne stvarnosti, ručno rasknjižiti preostali saldo. Ako je pogrešna nehotice, ispraviti cost_share na BoM-u i zatvoriti sljedeći MO ispravno.
8) Uzrok 7 — Ručna knjiženja na kontima zaliha i proizvodnje
Trivijalan, ali čest uzrok: netko (ili integracija) je ručno proknjižio na 3100, 6600, 6300, 6000, 6090 ili 3090. Takva knjiženja zaobilaze sustav i ne odražavaju se u stock.valuation.layer-u, pa generiraju razliku.
Kako pronaći u glavnoj knjizi:
- Accounting → Reporting → General Ledger → filtrirati po kontima: 3100, 6600, 6300, 6000, 6090, 3090.
- Isključiti sustavna knjiženja:
- Inventory Closing Entry (referenca Stock Closing)
- Manufacturing WIP (referenca s prefiksom MO/...)
- knjiženja iz primki i isporuka (referenca WH/IN/..., WH/OUT/..., MO/...)
- Sve ostalo traži obrazloženje. Najčešći krivci: ručni journal entries, uvoz iz drugog sustava, korektivna knjiženja pri prelasku na novi sustav.
Korektivna radnja: ako je knjiženje suvišno, stornirati. Ako je opravdano (npr. ispravak otvorenog stanja), dokumentirati i pomaknuti učinak s 3090 / 6000 na ispravan konto.
Trajna mjera: zabraniti ručna knjiženja na Stock i Production kontima preko korisničkih ovlasti (ograničenje konta na korisničkim grupama, ili restrict_account_id putem prilagođenog modula).
9) Klasifikacija akcija po uzroku
| Uzrok | Kategorija | Trajna mjera |
|---|---|---|
| Cijena na fakturi ≠ cijena na narudžbi (slojevi vrijednosti bez količine) | Disciplina nabave | 3-way matching + tolerancije; standardiziran landed cost |
| Naknadni unos sa starijim datumom / negativna zaliha | Promjena procesa | Inventory Lock Date + Accounting Lock Date + zabrana negativne zalihe |
| Povrat bez povezanog knjižnog odobrenja | Edukacija | Procedura za povrate s obveznim povezivanjem |
| Inventurno usklađenje na pogrešnom kontu | Promjena procesa + ovlasti | Postavke Loss Account-a; ograničenje tko smije usklađivati |
| WIP nije proveden ili nije storniran | Promjena procesa | Kontrolni popis zatvaranja: WIP prije Inventory Closing Entry |
| Sustavno odstupanje Standard Price-a | Računovodstvena politika | Periodičko rasknjiženje cjenovnog odstupanja na 7100 |
| Extra Unit Cost bez protustavke | Promjena procesa | Poslužiteljska radnja ili dokumentirano pravilo za protustavku |
| Lokacija Production bez konta | Postavke | Pri instalaciji obvezni kontrolni popis postavki |
| Neusklađen cost_share na BoM-u | Edukacija | Pregled BoM-ova uz konkretne primjere |
| Ručna knjiženja po kontima zaliha i proizvodnje | Ovlasti | Zabrana ručnih knjiženja preko korisničkih ovlasti |
10) Mjesečna kontrolna ploča
A) Zatvaranje — provesti redoslijedom:
| ✓ | Korak | Akcija |
|---|---|---|
| ☐ | 1 | Sva razgraničenja na Bill To Receive / Billed Not Received / Invoices To Be Issued / Invoiced Not Delivered — Create Accrual Entries za sve stavke koje su trebale biti zaključene |
| ☐ | 2 | Manufacturing → Manufacturing Orders → odabrati sve otvorene MO-e (In Progress, To Close, Confirmed) → Action → Post WIP Accounting Entry |
| ☐ | 3 | Accounting → Review → Inventory → Inventory Valuation → pokrenuti Inventory Closing Entry |
| ☐ | 4 | Postaviti Inventory Lock Date i Accounting Lock Date na zadnji dan razdoblja |
B) Provjera salda — kriteriji prihvatljivosti:
| ✓ | Konto | Očekivano |
|---|---|---|
| ☐ | 3090 Stock Variation | 0 (nakon storna razgraničenja) |
| ☐ | 6090 WIP | 0 (nakon storna WIP-a) |
| ☐ | 6000 Production | 0 (osim sustavnog odstupanja zbog Standard Price-a ili Extra Cost-a) |
| ☐ | 6600 Stock | usklađen s Inventory → Reporting → Stock (Inventory on Date) |
C) Ako bilo koji konto nije ispravan:
- Pokrenuti postupak iz §1 (stablo odlučivanja) i identificirati uzrok.
- Prvih 20 proizvoda po doprinosu razlici — analiza po §2–§7.
- Klasificirati uzrok i akciju u tablici (§9).
- Provesti akciju → reproknjižiti ako treba → ponovno provjeriti salda.
- Dokumentirati u zatvarajućem zapisniku — to je revizijska podloga.
D) Najučinkovitije preventivne postavke
- Lock dates odmah nakon zatvaranja (Inventory + Accounting).
- Zabrana negativne zalihe ili minimalno upozorenje uz tjedno izvješće.
- 3-way matching s tolerancijama (blokirati velike razlike u cijeni).
- Standardiziran proces landed cost-a (kako se dodatni troškovi ne bi pojavljivali kao nasumične korekcije).
- Standardizacija mjernih jedinica (UoM) radi izbjegavanja razlika zbog zaokruživanja.
- Kontrolni popis zatvaranja: WIP Accounting uvijek prije Inventory Closing Entry.
- Production lock date: zatvarati MO-e koji su stvarno završeni; ne ostavljati ih u statusu In Progress bez razloga.
- Tjedna provjera salda 3090, 6090, 6000 — rano otkrivanje sprječava nakupljanje.
Sherlock - ChatGPT-5.2 Thinking 27.12.2025
1) Cilj: “Residual Stock Variation” nakon accruala
Pravilo: radiš postupak zatvaranja ovim redom:
napravi GRNI/GDNI i srodne accruale (Bills to Receive / Invoiced not Delivered / itd.)tek onda radiInventory Closing Entryiznos koji ostane naStock Variationnakon toga je tvoj “residual” (ono što želiš loviti)
Ako si to odradio i variation nije ~0, kreće lov.
2) Najbrži “filter” za AVCO: pronađi valuation layere koji su “value-only”
Kod AVCO-a, najčešći trag za “nije timing, nego value” su valuation layeri s 0 količine i ≠0 vrijednosti.
Kako to izgleda
“Qty = 0, Value = +/– X”
To su tipično:korekcije troška kad dođe vendor bill s drukčijom cijenom,price difference / landed cost alokacije,revaluacije zbog backdated/out-of-order.
Što radiš
U debug modu otvori listu Stock Valuation Layers i filtriraj:
Datum u periodu zatvaranja (npr. do 31.12.)-
Quantity = 0 -
Value ≠ 0 grupiraj poProduct
To je u 80% slučajeva razlog residual variationa.
3) Drugi killer: negativan stock i out-of-order datumi (AVCO “poludi”)
AVCO je osjetljiv kad imaš:
isporuke prije zaprimanja (čak i na sat/dan razini ako backdate-aš),negativan stock,naknadno ubacivanje starijih receiptova ili inventory adjustmenta.
Kontrola
Izvuci proizvode s negativnim on-hand u periodu (ili barem one koji su ikad pali ispod 0).Provjeri stock moves gdje je:-
Dateu prošlosti (prije zaključavanja), a -
Create Dateposlije (znači naknadno upisano/backdated)
-
Ovo stvara revaluacije i čudne value-only layere.
Operativna mjera: uvedi “no backdating” pravilo + lock date za inventory (i accounting lock) čim zatvoriš mjesec.
4) Treći uzrok: mismatch “return ↔ refund”
Ako radiš:
povrat robe (customer return / vendor return)
a refund (credit note) nije ispravno povezan ili je u drugom periodu / po drugoj cijeni, variation ostane kao residual.
Kontrola
Za top proizvode iz residuala:
listaj sve return transfere u perioduprovjeri da li postoji odgovarajući refund i da li je u istom periodu i na istu količinu / cijenu logikom koju očekuješ.
5) Četvrti uzrok: Inventory Adjustment / Scrap koji ide “krivim putem”
Inventory adjustment i scrap su legitimni “non-timing” izvori razlika. Ono što želiš je da ti budu namjerno vidljivi (na loss konto), a ne da se skrivaju kao “variation”.
Kontrola
pregledaj sveInventory AdjustmentsiScrapu perioduprovjeri da je njihov P&L efekt na očekivanom kontu (Inventory Loss/Shrinkage), a ne da završava kao residual variation
Operativno: jasno definiraj “Inventory Loss” konto i ograniči tko smije raditi adjustment.
6) Peti uzrok: ručna knjiženja po stock računima
Ovo je banalno, ali često: netko (ili integracija) je ručno knjižio na Stock Valuation account ili Variation.
Kontrola
U GL-u:
filtriraj journal items naStock Valuation accountiStock Variationizuzmi (ili označi) one koji su “Inventory Closing Entry”sve ostalo = sumnjivo i treba objasniti
7) Kako to pretvoriti u rutinu (što radi računovodstvo svaki mjesec)
Evo “operativne kontrolne ploče”:
A) Nakon accruala + closing entry:
-
Residual Variation > prag(npr. 200 € ili 0,5% zalihe) → ide analiza
B) Analiza u 4 koraka (brzo, bez filozofije):
-
Top 20 proizvoda po contributionuna residual (group by product) Za te proizvode:pogledajvalue-only valuation layere (qty=0)pogledaj je li bilonegativnog stocka / backdatingpogledajreturns/refundspogledajinventory adjustments/scrap
Ako ništa od toga:provjeriručnu GL aktivnostna stock/variation
Svaki uzrok mapiraš u jednu od kategorija i imaš “action”:process fix (no backdating, lock date)purchase discipline (3-way matching/tolerance)training (returns moraju imati linked refunds)access rights (tko smije adjustments)
8) Najjače postavke/politike koje smanjuju residual (AVCO friendly)
-
Zaključavanje datuma(inventory + accounting) odmah nakon zatvaranja -
Zabrana negativnog stocka(ili barem alert + tjedni report) -
3-way matching + tolerancije(blokiraj velike razlike cijene) -
Landed costs proces(da se dodatni troškovi ne “random” pojave kao korekcije) -
Standardiziraj UoM(izbjegni rounding razlike)
