If you could move to another seat, then I think 15k is an adequate goodwill gesture.
If you couldn't move to another seat (even downgrading to J) then I think 30-40k miles (enough for an upgrade next flight) is acceptable, or the cash equivalent. Half the sector cost I think sounds reasonable - although you were taken from A to B as contracted, and presumably could use the other features of the fare, a working seat is a large part of the product, imho.
I had a similar situation on DXB-IAD in J - I accepted 30k miles.