{"wiki":null,"facts":{"id":"ms-bal-01","name":"Subscription Balance Reader","machine_name":"ms-bal-01","owner":"agt_021","function":"Calls the balance readers and writes one row per provider per run into the registry's balance-readings table; the money surfaces read the latest successful row and show its age.","process_type":"scheduled","schedule":"Every 30 min","process_name":"","avatar_color":"#94a3b8","created_for":"","purpose":"Read each subscription's balance from the provider's own billing surface, so no money surface has to guess one.","duties":"Ask every provider that publishes a balance what it is, and record the answer with the instant it was taken. Record a refusal just as plainly — an expired session is a fact about the session, not a reason to leave yesterday's figure looking current. A run where NO provider could be read fails, so the sweep sees it.","constraints":"Reads only. Session material lives with the other credentials outside the repository and is never logged. A provider that publishes no balance is not polled and is named as unreadable rather than derived.","status":"running","gender":"","archetype":"","building_block":null,"service_override":null,"enabled":1,"task_key":null,"model_free":0},"page":{"type":"droid","page_class":"main","class_label":"Main page","kind_label":"Droid","kind_gloss":"","listed":true}}