Some subscriptions do not change their status at due dates.
In OBAS subscriptions are checked for a status change by the Subscription expiration procedure task that by design runs every 24 hours and checks all subscriptions of the previous day, taking into account their bare date only. Thus, a subscription that ends, say, March 17th 23:58 GMT and the subscription that ends March 17th 03:15 GMT will both be checked on March 18th. That is why it makes sense to set the Subscription expiration procedure task execution time at the beginning of each day.
Also, there is always a visible time difference between interface time and "real" OBAS time, depending on the default time zone and a certain customer timezone, as explained in the Provider's Guide:
In respect to registration of the events that happen within the system, the database is bound to GMT. This means that automatically-generated notifications and system messages (for example, about subscriptions expiration dates) may occur to be hardly understandable and require for time recalculation in case a person resides in another time zone. In general, the special time zone can be set for each user associated with an Account. After the personal time zone is set, all the time-related data (in Action Log, Event Manager, or automatically-generated notifications) will be bound to the user's time zone.
For instance, if under
Top > Configuration Director > Miscellaneous Settings > Regional Settings Time Zone is set to GMT (+11:00), OBAS would always "be late" for 11 hours.
That means that if you see in PCC a subscription that ends on March 18th 10:58 it will actually end March 17th 23:58 GMT. And a subscription that ends March 17th 14:15 actually ends March 17th 03:15 GMT.
The Subscription expiration procedure task that launches, say, March 18th 01:00 GMT (March 18th 12:00 in PCC) would therefore check both of the above but leave unchanged subscriptions with end dates past March 18th 11:01 (March 18th 00:01 GMT). Note the 22 hours gape for the subscription that ends March 17th 14:15 and almost instant (in the same day as it seems from PCC) check for the subscription that ends on March 18th 10:58.
Please also note if the Subscription expiration procedure task is set to run at, say, 04-Apr-2017, 01:10 it will actually run 11 hours ahead of that time, at 03-Apr-2017, 14:10, i.e. on the previos day leaving subscriptions that end 03-Apr-2017 unprocessed. To make the task run in the same day as it is shown in the interface please shift the task execution date with account of your timezone. In the example above (Time Zone is set to GMT +11:00) it makes sense to run the task, say, at 13:10 so that it actually runs 13:10 - 11 = 03:10 of the same day.