One item to count within a cycle count, generated per item lot or per InventoryStock row: OnHandQuantity is the system expectation seeded at generation per the header's CountQuantityType, RecordedQuantity is the physical count, and the calculated variance DiscrepencyQuantity (misspelled in C# and metadata; the JSON and API name is discrepancyQuantity) is RecordedQuantity minus OnHandQuantity. The companion DiscrepencyCostValue multiplies that variance by the line's UnitCost, but generation never populates UnitCost, so the valued variance is zero unless someone types a cost in. RecordedDamagedQuantity and RecordedExpiredQuantity are separate counts that become their own adjustment lines. Lines with a non-zero variance cannot be deleted, and inserting an item already on another started-but-unfinished count for the same partner, branch and storage location is rejected.
Fields
| Field | Label | Type | Required | What it does |
ConversionRatio | Conversion Ratio | Number | | |
ConversionRatio1 | Conversion Ratio 1 | Number | | |
CountedByResourceId | Counted By | Lookup → Resource | | Intended to name who performed the physical count, but no code path writes it - neither line generation nor the start and finish actions populate it, so it is only ever set by manual entry or an integration. |
CountedDateTime | Counted Date Time | DateAndTime | | Intended to timestamp the physical count, but no code path writes it; finishing a count stamps IsApproved on the lines and leaves this untouched, so it is only ever set by manual entry or an integration. |
CreatedById | Created By | Lookup → UserAccount | Yes | |
CreatedDateTime | Created Date | DateAndTime | Yes | |
CycleCountId | Cycle Count | Lookup → CycleCount | | |
DiscrepencyCostValue | Discrepency Cost Value | Calculated (calculated) | | Calculated as the variance quantity times the line's unit cost. Because line generation never populates UnitCost, it evaluates to zero on generated lines unless someone types a cost in, so it should not be read as a valued shrinkage figure by default. |
DiscrepencyQuantity | Discrepency Quantity | Calculated (calculated) | | |
ExternalId | External | Text, unique | | |
Id | Id | Guid | Yes | |
InventoryStockId | Stock | Lookup → InventoryStock | | The stock bucket this line counts. Generation creates one line per item lot for lot-tracked items and one per stock bucket otherwise, and the count's inventory lock is applied to exactly these rows. |
IsApproved | Is Approved | Boolean | Yes | |
ItemId | Item | Lookup → Item | | |
ItemLotId | Item Lot | Lookup → ItemLot | | The specific lot being counted on lot-tracked items; locking the count sets the transaction lock on these lots for the duration. |
ItemLotTypeId | Item Lot Type | Lookup → ItemLotType | | |
LineNumber | LineNumber | Number | | |
ModifiedById | Modified By | Lookup → UserAccount | Yes | |
Name | Line Number | Text | Yes | |
OnHandQuantity | On Hand Quantity | Number | | |
OwnerId | Owner | Lookup → UserAccount | Yes | |
RecordedDamagedQuantity | Recorded Damaged Quantity | Number | | Damage observed while counting. On adjustment release it becomes its own adjustment line typed Damaged, separate from the net discrepancy line. |
RecordedExpiredQuantity | Recorded Expired Quantity | Number | | Expired stock observed while counting; released as a separate adjustment line typed Expired, alongside the net discrepancy line. |
RecordedQuantity | Recorded Quantity | Number | | |
RecordTypeId | Record Type | Guid, hidden | | |
Remarks | Remarks | Text | | |
SKUId | Item SKU | Lookup → SKU | | |
StorageLocationId | Storage Location | Lookup → StorageLocation | | |
UIProps | UI Props | Text | | |
UnitCost | Unit Cost | Currency | | Left unset when lines are generated from stock rows or item lots - the generator copies quantities only. It is nevertheless copied onto the adjustment lines that Release For Adjustment creates, so a blank here means the resulting stock adjustment also carries a zero cost. |
UOM | UOM | PickList | | Values: Box. |
UOM1 | UOM1 | PickList | | |
UOMQuantity | UOM Quantity | Number | | |
UOMQuantity1 | UOM Quantity 1 | Number | | |
UpdatedDateTime | Modified Date | DateAndTime | Yes | |
Actions
| Action | Label | Type | What it does |
BulkDelete | Delete | Delete | Delete |
Clone | Clone | ServerAction (Clone) | Create a copy of this record |
Delete | Delete | Delete | Delete |
DeleteInList | Delete | Delete | Delete |
Edit | Edit | Edit | Edit |
EditInLine | Edit | Edit | Edit |
EditInLineEntity | Edit | EditInline | Edit |
New | New | New | New |
NewInLine | New | NewInline | New |
Validations
| Validation | Applies to | Error message | Notes |
| Quantity Recorded Rule Validation | RecordedQuantity, Error | Recorded Quantity can't be negative. | Recorded Quantity can't be negative. |
| Quantity Rule Validation | Error | Expected Quantity can't be negative. | Expected Quantity can't be negative. |
| Unit Price Validation | UnitCost, Error, inactive | Unit Cost can't be negative | Unit Cost can't be negative |
Lookup filters
| Filter | Lookup field | Notes |
| Sku For Item | SKUId | |