"""Original membership-policy reconciliation as of a declared cutoff; no billing/API writes."""
from datetime import datetime
cutoff=datetime.fromisoformat('2025-12-04T12:00:00+00:00')
def instant(s):return datetime.fromisoformat(s) if s else None
rows=[
 {'member':'A','state':'paid','confirmed':'2025-12-01T09:00:00+00:00','trial_until':None,'grace_until':None,'access':1},
 {'member':'B','state':'paid','confirmed':'2025-12-01T09:00:00+00:00','trial_until':None,'grace_until':None,'access':0},
 {'member':'C','state':'unpaid','confirmed':None,'trial_until':'2025-12-07T00:00:00+00:00','grace_until':None,'access':1},
 {'member':'D','state':'refunded','confirmed':None,'trial_until':None,'grace_until':'2025-12-09T00:00:00+00:00','access':1},
 {'member':'E','state':'paid','confirmed':'2025-12-01T09:00:00+00:00','trial_until':None,'grace_until':None,'access':2},
 {'member':'F','state':'paid','confirmed':'2025-12-04T12:01:00+00:00','trial_until':None,'grace_until':None,'access':0},
]
def eligible(r):
 paid=r['state']=='paid' and instant(r['confirmed'])<=cutoff
 trial=r['trial_until'] is not None and instant(r['trial_until'])>cutoff
 grace=r['state']=='refunded' and r['grace_until'] is not None and instant(r['grace_until'])>cutoff
 return paid or trial or grace
findings=[]
for r in rows:
 e=eligible(r)
 action='review duplicate records' if r['access']>1 else 'propose grant' if e and r['access']==0 else 'propose remove' if not e and r['access']==1 else 'no discrepancy at cutoff'
 findings.append((r['member'],e,r['access'],action))
assert [x[1] for x in findings]==[True,True,True,True,True,False]
assert [x[0] for x in findings if x[3]!='no discrepancy at cutoff']==['B','E']
assert eligible(rows[3]) and not eligible(rows[5])
for row in findings:print(row)
print('3/3 policy/accounting assertions passed. Proposals do not execute repairs.')
