UOM Conversion issue

I am collecting materials in a custom app (eggs). These are usually counted in unit quantity (integer) and then stored in inventory as “dozen”. I can’t seem to get the conversion table running correctly. Shouldn’t the conversion happen automatically? I’m not opposed to writing code to make this work correctly but I don’t want to duplicate efforts when there seems to be a built-in utility.

def pass_to_stock(self):
    # this appears to be working except for the conversion table
    # perhaps best approach is to make a modulus and send loose eggs to another Item?
    pass_to_stock=frappe.new_doc('Stock Entry')
    pass_to_stock.purpose = "Material Receipt"
    pass_to_stock.append("items", {
        "item_code": self.at_enter_as_item,
        "qty": self.batched_egg_yield,
        "uom": "Nos",
        "stock_uom": self.at_enter_as_uom,
        "conversion_factor": "1",
        "transfer_qty": self.batched_egg_yield
    pass_to_stock.company = frappe.db.get_value("Global Defaults", None, "default_company")
    pass_to_stock.to_warehouse = "Finished Goods - " + str((frappe.db.get_value("Company", pass_to_stock.company, "abbr")))
    pass_to_stock.date = self.collection_date
    # pass_to_stock.time = self.time_collected

If you select the UOM correctly, the conversion factor should be automatically updated based on the UOM Conversion in the item master.

I think I’m not selecting the UOM correctly then. Is there a guide or documentation on this. I’m fine with the concept, I’m pretty sure I’m just not using it correctly.

Try making a Stock Entry manually with this data. It will give you a clue where you might be going wrong.