import json, sys, collections
S='/tmp/claude-1000/-home-mande-repo-quber/bc2f817a-5c6c-4515-9621-2302b82f7f68/scratchpad'
base=json.load(open(f'{S}/extract-review/kref-q1-26-10-q.tables.json')); new=json.load(open(sys.argv[1]))
def by_page(ts):
    d=collections.defaultdict(list)
    for t in ts: d[t.get('page')].append(t)
    return d
B,N=by_page(base),by_page(new)
print(f"baseline tables {len(base)} | new tables {len(new)}")
def hdr(t): return (t.get('title') or '').strip().startswith('KKR Real Estate Finance Trust')
print(f"running-header titles: baseline {sum(hdr(t) for t in base)} | new {sum(hdr(t) for t in new)}")
print(f"region top < 0.03 (box reaches page top): baseline {sum(t['som_region'][1]<0.03 for t in base)} | new {sum(t['som_region'][1]<0.03 for t in new)}")
print("\npage | count base->new | titles base -> new (changed pages only)")
for pg in sorted(set(B)|set(N)):
    b,n=B.get(pg,[]),N.get(pg,[])
    bt=[(t.get('title') or '')[:38] for t in b]; nt=[(t.get('title') or '')[:38] for t in n]
    br=[round(t['som_region'][1],2) for t in b]; nr=[round(t['som_region'][1],2) for t in n]
    if len(b)!=len(n) or bt!=nt:
        print(f"p{pg:<3} {len(b)}->{len(n)} | {bt} tops {br}\n      -> {nt} tops {nr}")
