How to find the actual space being consumed by indexes on a table in Oracle?
SELECT idx.index_name, SUM(bytes)
  FROM dba_segments seg,
       dba_indexes  idx
 WHERE idx.table_owner = &lt;&lt;owner of table&gt;&gt;
   AND idx.table_name  = &lt;&lt;name of table&gt;&gt;
   AND idx.owner       = seg.owner
   AND idx.index_name  = seg.segment_name
 GROUP BY idx.index_name


will show you the amount of space actually consumed by each index.  I'm not clear if that's exactly what sorts of overhead you're trying to account for and how you are distinguishing "used" and "allocated" in the context of an index.  If you want to account for free space in the index, you can use the DBMS_SPACE.SPACE_USAGE procedure to determine how many partially empty blocks are in the index.