xMatix
Sign in Request demo
xMatix
PRODUCTS
SalesField SalesCRMRewardsClaimsInventoryProcurementWarehouse ManagementField ServiceServiceSupportTelephony & MessagingFinance & AccountingPayrollExpense ManagementCommercePortalsAnalytics & ReportingData StudioMobile AppSee all products →
PLATFORM
Platform overviewApp BuilderAutomationIntegrationsSecurity & GovernanceChange ManagementDevelopers
SENSE AI
Sense AI overviewSense AssistSense ControlSense VisionAI StudioTrust & governanceIn Claude & ChatGPTUse cases
SOLUTIONS
FMCG & DistributionManufacturing & Dealer NetworksAutomotive & DealershipsPharma & HealthcareConsumer DurablesAgri-InputsBuilding MaterialsService NetworksWarehousing & 3PLFinancial AccountingERP SoftwareIndia GST ComplianceUAE VAT & e-InvoicingSaudi ZATCA & VATAll solutions →
RESOURCES
Knowledge CenterDeveloper & CLIBlogGuidesWhat is xMatix?Company facts
COMPANY
AboutCareersPartnersEventsContactAuthorsLegal
Sign in Request demo
Home/Docs/Entity Reference/Cycle Count Line — entity reference
REFERENCE · Last reviewed

Cycle Count Line — entity reference

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

FieldLabelTypeRequiredWhat it does
ConversionRatioConversion RatioNumber
ConversionRatio1Conversion Ratio 1Number
CountedByResourceIdCounted ByLookup → ResourceIntended 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.
CountedDateTimeCounted Date TimeDateAndTimeIntended 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.
CreatedByIdCreated ByLookup → UserAccountYes
CreatedDateTimeCreated DateDateAndTimeYes
CycleCountIdCycle CountLookup → CycleCount
DiscrepencyCostValueDiscrepency Cost ValueCalculated (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.
DiscrepencyQuantityDiscrepency QuantityCalculated (calculated)
ExternalIdExternalText, unique
IdIdGuidYes
InventoryStockIdStockLookup → InventoryStockThe 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.
IsApprovedIs ApprovedBooleanYes
ItemIdItemLookup → Item
ItemLotIdItem LotLookup → ItemLotThe specific lot being counted on lot-tracked items; locking the count sets the transaction lock on these lots for the duration.
ItemLotTypeIdItem Lot TypeLookup → ItemLotType
LineNumberLineNumberNumber
ModifiedByIdModified ByLookup → UserAccountYes
NameLine NumberTextYes
OnHandQuantityOn Hand QuantityNumber
OwnerIdOwnerLookup → UserAccountYes
RecordedDamagedQuantityRecorded Damaged QuantityNumberDamage observed while counting. On adjustment release it becomes its own adjustment line typed Damaged, separate from the net discrepancy line.
RecordedExpiredQuantityRecorded Expired QuantityNumberExpired stock observed while counting; released as a separate adjustment line typed Expired, alongside the net discrepancy line.
RecordedQuantityRecorded QuantityNumber
RecordTypeIdRecord TypeGuid, hidden
RemarksRemarksText
SKUIdItem SKULookup → SKU
StorageLocationIdStorage LocationLookup → StorageLocation
UIPropsUI PropsText
UnitCostUnit CostCurrencyLeft 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.
UOMUOMPickListValues: Box.
UOM1UOM1PickList
UOMQuantityUOM QuantityNumber
UOMQuantity1UOM Quantity 1Number
UpdatedDateTimeModified DateDateAndTimeYes

Actions

ActionLabelTypeWhat it does
BulkDeleteDeleteDeleteDelete
CloneCloneServerAction (Clone)Create a copy of this record
DeleteDeleteDeleteDelete
DeleteInListDeleteDeleteDelete
EditEditEditEdit
EditInLineEditEditEdit
EditInLineEntityEditEditInlineEdit
NewNewNewNew
NewInLineNewNewInlineNew

Validations

ValidationApplies toError messageNotes
Quantity Recorded Rule ValidationRecordedQuantity, ErrorRecorded Quantity can't be negative.Recorded Quantity can't be negative.
Quantity Rule ValidationErrorExpected Quantity can't be negative.Expected Quantity can't be negative.
Unit Price ValidationUnitCost, Error, inactiveUnit Cost can't be negativeUnit Cost can't be negative

Lookup filters

FilterLookup fieldNotes
Sku For ItemSKUId