Smog
Nobody's problemExpected and actual fall together, and recover together.
No action neededSuryaSaathi checks every roof every day, tells smog, dust and faults apart, and makes the vendor fix what they owe. Families just get one WhatsApp message.

The vendor's easy answer is always "it's just the pollution." But each cause leaves its own signature in the gap between what the roof should make and what it does.
Expected and actual fall together, and recover together.
No action neededThe gap widens every dry day; rain resets it.
Free cleaning, owed for 5 yearsOutput collapses overnight while sunlight doesn't.
Free repair, owed for 5 yearsYesterday's reading arrives on its own: a DISCOM data logger, the inverter's cloud or a camera clip.
Against what that exact roof should have made, from satellite sunlight and haze.
Smog, dust or a fault, told apart by signature. Smog never triggers a complaint.
Claim filed with evidence, deadline chased, DISCOM steps in if missed, fix checked from new readings.
Follow one reading: in through IoT Core, checked by Lambda, explained by an agent on Amazon Bedrock, chased by Step Functions, and sent home. All defined in AWS CDK.
Dust builds up, the agent catches it, the vendor misses the deadline, the DISCOM steps in, and the family gets one message. All in your browser.