Logging Indian food in a calorie tracker that was not built for it
Open almost any calorie tracker, search for "dal", and watch what comes back. You will usually get a generic lentil soup, an entry someone submitted eight years ago, or something labelled "Indian Dal - restaurant" with no indication of which of the fifteen or so dishes that name covers.
This is not a bug in any one app. It is what happens when a food database is grown from what its earliest users were eating, and those users were shopping in American supermarkets.
Where it actually goes wrong
The tempering is missing. Nearly every Indian dal and sabzi finishes with a tadka: ghee or oil heated with spices and poured over. That is commonly one to three tablespoons of fat, which is 120 to 360 kcal, and it is almost never in the generic database entry. It is also completely invisible in a photograph, which is the same problem from the other direction.
Regional dishes collapse into one entry. A Punjabi rajma cooked with cream and a South Indian sambar are both "Indian bean dish" to a US-centric database. The calorie difference is large.
Portions are described wrong. Databases want cups and ounces. Indian food is served in katoris and eaten with a variable number of rotis. "One serving of dal" is not a defined quantity, and different entries mean wildly different things by it.
Restaurant food is not home food. Restaurant Indian cooking uses far more fat and cream than most home cooking, and the same dish name covers both. A restaurant butter chicken and a home-cooked one are not remotely the same figure.
Practical ways round it
Log the components, not the dish name. Instead of hunting for "chole bhature", log the chana, the bhatura and the oil separately. Component entries are far more reliable than composite ones, and you control the portions.
Add the tadka explicitly. Whatever else you do, log the ghee or oil. Two tablespoons of ghee is about 250 kcal and is the single most commonly missed item in the whole cuisine. If you cooked it, you know roughly how much went in.
Count your rotis and your rice by hand. These are the easiest things to log accurately and they are usually the largest carbohydrate source in the meal. One medium roti is a well-established figure; a katori of rice is not.
Use barcodes for everything packaged. Atta, ghee, pickles, packaged snacks, ready-made pastes. All of these have printed figures. Do not estimate a number that is written on the packet.
Photograph the plate before you mix. If you are using a photo tracker, take the shot before the dal goes over the rice. Once it is mixed, no camera can see what is underneath.
What we did about it in KalTrack
The analysis is cuisine-aware rather than mapped onto the nearest American approximation. A dal is recognised as a dal, and the estimate accounts for the fat that a dal typically carries rather than treating it as a plain lentil broth.
That is an improvement, not a solve. A photograph still cannot tell how heavy your tadka was, and it never will. So the same rule applies here as everywhere else on this site: the estimate is a starting point you correct, and where an exact figure exists on a packet, read it instead of guessing at it.
If you eat this way and you have been quietly assuming your tracker was wrong about your food, you were right. It probably was.