1. Record normalization
Each source row is normalized into state, district, source market, canonical mandi when available, commodity, variety, grade, arrival date and three prices: minimum, maximum and modal. The source unit is ₹ per quintal.
2. Structural quality checks
| Rule | What happens |
|---|---|
| Missing, non-positive or modal below ₹10/quintal | Row is flagged as invalid or a probable unit mismatch and excluded from headline calculations. |
| Minimum ≤ modal ≤ maximum fails | Row is flagged; source values remain visible for transparency. |
| Maximum is over 20× minimum | Row is flagged as an extreme spread and excluded from summary medians. |
| Unsupported or missing date | Row cannot qualify as a current observation. |
3. Modal-price summaries
The main page value is the median of valid modal prices. It is not an arithmetic average of minimum and maximum and it is not volume-weighted. The source does not provide reliable transaction volume for weighting.
The page range is the lowest valid minimum to the highest valid maximum among the included rows. Sample size is always displayed.
4. Unit conversions
The official unit remains ₹/quintal. The kg display divides the source value by 100; the tonne display multiplies it by 10. These are mathematical equivalents, not separately observed retail or bulk quotes.
5. Page publication gates
6. Canonicals and variants
“Today”, “aaj ka”, “rate”, “price” and “bhav” variants consolidate into the same canonical entity URL. Filter parameters, search results and comparison states are not separate indexable landings.
7. History
One complete snapshot is stored per source day. Historical points are daily medians calculated from those stored snapshots. If only one snapshot exists, the chart shows one point and says history starts there; older data is never fabricated.
8. Corrections
MandiBhav360 can correct an alias, page mapping or calculation bug. It does not silently alter an official source price. Suspect rows remain attributed and flagged.