Oops, forgetting the r. was a typo. But it still looks to me like the compute function is only getting the fields specified in update_record(). For example, here are logs of an update in /appadmin and and update_record(drops=,duration=,start_date=):
2011-08-04 02:08:35,296 INFO 5_item.py 49 get_expire_date(): <Row {'tax_state': '', 'status': 'active', 'shipping_method': 1, 'views': 0, 'image': '', 'flags': ['featured'], 'currency': 'USD', 'created_on': datetime.datetime(2011, 8, 2, 14, 52, 35), 'tax_rate': None, 'created_by': 1, 'image_display': None, 'duration': 1, 'grouping': '', 'condition': '', 'description': '<br>', 'category': None, 'start_price': Decimal('11.00'), 'drops': 5, 'modified_by': 1, 'title': 'test', 'price_change': Decimal('1.00'), 'shipping_amount': Decimal('0.00'), 'seller': 1, 'image_url': '', 'image_thumb': None, 'modified_on': datetime.datetime(2011, 8, 3, 18, 27, 48), 'start_date': 2011-08-04 02:08:52,925 INFO 5_item.py 49 get_expire_date(): <Row {'duration': 1, 'drops': 5, 'start_date': datetime.datetime(2011, 7, 8, 14, 52)}>