public static float taxesDue(Actor actor) {
    final int bracket = actor.vocation().standing ;
    if (bracket == Background.SLAVE_CLASS) return 0 ;
    if (bracket == Background.RULER_CLASS) return 0 ;
    
    final BaseProfiles BP = actor.base().profiles ;
    int taxLevel = 0 ;
    if (bracket == Background.LOWER_CLASS) {
      taxLevel = BP.querySetting(AuditOffice.KEY_LOWER_TAX) ;
    }
    if (bracket == Background.MIDDLE_CLASS) {
      taxLevel = BP.querySetting(AuditOffice.KEY_MIDDLE_TAX) ;
    }
    if (bracket == Background.LOWER_CLASS) {
      taxLevel = BP.querySetting(AuditOffice.KEY_UPPER_TAX) ;
    }
    final int
      percent = AuditOffice.TAX_PERCENTS[taxLevel],
      savings = AuditOffice.TAX_EXEMPTED[taxLevel] ;
    
    float afterSaving = actor.gear.credits() - savings ;
    if (afterSaving < 0) return 0 ;
    afterSaving = Math.min(afterSaving, actor.gear.unTaxed()) ;
    return afterSaving * percent / 100f ;
  }