async def get_modification_stats(db, index_id):
    """
    Get the number of modified otus and the number of changes made for a specific index.

    :param db: the application database client
    :type db: :class:`~motor.motor_asyncio.AsyncIOMotorClient`

    :param index_id: the id of the index to return counts for
    :type index_id: str

    :return: the modified otu count and change count
    :rtype: Tuple[int, int]

    """
    query = {
        "index.id": index_id
    }

    return {
        "change_count": await db.history.count(query),
        "modified_otu_count": len(await db.history.distinct("otu.id", query))
    }