Resolve the exact pack before dividing
Match product, variant, weight or volume and multipack count. Price per kilogram is the observed price divided by pack weight in kilograms. For multipacks, use total net weight rather than the number of units alone.
Do not compare a one-off trial pack with a subscription case unless the pack, delivery and commitment differences are shown. A promotional crossed-out price is context, not a stable baseline.
Separate unit price from feeding cost
Price per day requires a feeding quantity. That quantity varies with the product, animal and circumstance, so store it as an explicit scenario input rather than a product fact.
A scenario can multiply cost per gram by an entered grams-per-day value. It should not silently infer a ration or recommend one; use the pack guidance and professional advice where appropriate.
Carry the observation time into the result
Save the retailer, URL, observed price, currency, pack and timestamp together. If the last observation is weeks old, say so. If the timestamp is missing, describe the value as undated.
Treat delivery fees, membership prices, minimum orders and subscriptions as separate fields. A smaller item price can still produce a larger checkout total.
- Exact product and pack
- Total net weight
- Observed price and currency
- Retailer URL
- Observation date
- Delivery or subscription condition
Use coverage reports to judge confidence
A database with many product rows may have few priced offers. HungryPets reports both counts. That prevents a sparse price field from looking like market-wide coverage.
Use observed offers to shortlist where to check. Verify the live retailer page before purchase and do not interpret an absent offer as an out-of-stock result.