Ejemplo n.º 1
0
def hlf_amc(dic_data, input_dic, period='half_no'):
    aua = combined.total_aua(dic_data, input_dic)
    aua_margins = general.fillna_monthly(
        input_dic['aua margin']).reindex(index=general.month_end_series)
    return (aua['discretionary_aua'] * (aua_margins['hlf_amc'] / 12)).groupby(
        ['financial_year',
         period]).sum(min_count=1)  #.map(general.compound_growth_rate))
Ejemplo n.º 2
0
def summary_avg_aua_dist(data_dic, input_dic, period='financial_year'):
    if (period == 'financial_year') or (period == 'calendar_year'):
        df = combined.total_aua(data_dic, input_dic).groupby(period).mean()
    elif period=='month_no':
        df = combined.total_aua(data_dic, input_dic).groupby(['calendar_year',period]).mean()
    else:
        df = combined.total_aua(data_dic, input_dic).groupby(['financial_year',period]).mean()
    avg_aua_funds = df['Funds']
    avg_aua_shares = df['Shares']
    avg_aua_hlf_amc = df['HLF']
    avg_aua_cash = df['Cash']
    avg_aua_cash_service = df['cash_service_aua']
    avg_aua_cash_service.name = 'Cash Service'
    
    if general.last_result_month == 6:
        temp = general.recent_end_year + 1
    else:
        temp = general.recent_end_year
    result = pandas.concat([avg_aua_funds,avg_aua_shares,avg_aua_hlf_amc,avg_aua_cash,avg_aua_cash_service],axis='columns')
    return result.loc[temp:,:]
Ejemplo n.º 3
0
def pms_advice_fee(dic_data, input_dic, period='half_no'):
    aua = combined.total_aua(dic_data, input_dic)
    aua_margins = general.fillna_monthly(input_dic['aua margin']).reindex(index=general.month_end_series)
    net_revenue = (aua['pms_aua'] * (aua_margins['pms_advice']/12))
    if period=='month_no':
        result = net_revenue
    elif (period=='financial_year' or period=='calendar_year'):
        result = net_revenue.groupby(period).sum()
    else:
        result = net_revenue.groupby(['financial_year',period]).sum()
    return result#.map(general.compound_growth_rate))
Ejemplo n.º 4
0
def cash_interest(dic_data, input_dic, period='half_no'):
    aua = combined.total_aua(dic_data, input_dic)
    annual_libor_revenue = aua['vantage_cash_aua']*general.account_cash_dist['sipp']*0.8*(general.annual_libor_mean(dic_data)/12)#.map(general.compound_growth_rate)
    overnight_libor = dic_data['Index price'].loc[:, 'Overnight LIBOR'].fillna(method='ffill').reindex(index=general.month_end_series).fillna(method='ffill')
    overnight_libor_revenue = aua['vantage_cash_aua']*(general.account_cash_dist['sipp'] * 0.2 + (1 - general.account_cash_dist['sipp']))*(overnight_libor/12)#.map(general.compound_growth_rate)
    gross_revenue = (annual_libor_revenue + overnight_libor_revenue)
    net_revenue = gross_revenue - aua['vantage_cash_aua'] * general.account_cash_dist['sipp'] * (0.0005/12) # effective from Nov-2017
    if period=='month_no':
        result = net_revenue
    elif (period=='financial_year' or period=='calendar_year'):
        result = net_revenue.groupby(period).sum()
    else:
        result = net_revenue.groupby(['financial_year',period]).sum()
    return result
Ejemplo n.º 5
0
def aua_analysis(dic_data, input_dic):
    df = combined.total_aua(
        dic_data, input_dic).reset_index().set_index('month_end').reindex(
            index=general.semi_annual_series)
    df.index.name = 'month_end'
    df = df.reset_index().set_index(
        ['month_end', 'financial_year', 'quarter_no', 'half_no'])
    result = pandas.DataFrame(index=df.index, columns=aua_cols)
    result.loc[:, 'Cash Service AUA'] = df['cash_service_aua']
    result.loc[:, 'Vantage AUA'] = df['vantage_aua']
    result.loc[:, 'PMS AUA'] = df['pms_aua']
    result.loc[:, 'HLMM Funds AUA'] = df['discretionary_aua']
    result.loc[:,
               'Total AUA'] = result.loc[:,
                                         'Vantage AUA'] + result.loc[:,
                                                                     'PMS AUA'] + result.loc[:,
                                                                                             'Cash Service AUA']

    return result.groupby(['financial_year', 'quarter_no',
                           'half_no']).sum(min_count=1)
Ejemplo n.º 6
0
def cash_interest(dic_data, input_dic, period='half_no'):
    aua = combined.total_aua(dic_data, input_dic)
    sipp_rebate = (input_dic['cash interest rebate'].fillna(
        method='ffill').reindex(
            index=general.month_end_series))['sipp_cash_interest_rebt']
    others_rebate = (input_dic['cash interest rebate'].fillna(
        method='ffill').reindex(
            index=general.month_end_series))['others_cash_interest_rebt']
    one_month_libor = general.annual_libor_mean(dic_data, '1_month LIBOR')
    three_month_libor = general.annual_libor_mean(dic_data, '3_month LIBOR')

    annual_libor_revenue = aua['vantage_cash_aua'] * general.account_cash_dist[
        'sipp'] * 0.8 * (general.annual_libor_mean(dic_data, 'Annual LIBOR') /
                         12)  #.map(general.compound_growth_rate)
    three_month_libor_revenue = aua['vantage_cash_aua'] * (
        1 - general.account_cash_dist['sipp']) * 0.6 * (three_month_libor / 12)
    one_month_libor_revenue = aua['vantage_cash_aua'] * (
        1 - general.account_cash_dist['sipp']) * 0.2 * (one_month_libor / 12)

    overnight_libor = dic_data['Index price'].loc[:, 'Overnight LIBOR'].fillna(
        method='ffill').reindex(index=general.month_end_series).fillna(
            method='ffill')
    overnight_libor_revenue = aua['vantage_cash_aua'] * (
        general.account_cash_dist['sipp'] * 0.2 +
        ((1 - general.account_cash_dist['sipp'])) * 0.2) * (
            overnight_libor / 12)  #.map(general.compound_growth_rate)

    gross_revenue = (annual_libor_revenue + overnight_libor_revenue +
                     three_month_libor_revenue + one_month_libor_revenue)
    net_revenue = gross_revenue - aua[
        'vantage_cash_aua'] * general.account_cash_dist['sipp'] * (
            sipp_rebate / 12) - aua['vantage_cash_aua'] * (
                1 - general.account_cash_dist['sipp']) * (others_rebate / 12)
    if period == 'month_no':
        result = net_revenue
    elif (period == 'financial_year' or period == 'calendar_year'):
        result = net_revenue.groupby(period).sum(min_count=1)
    else:
        result = net_revenue.groupby(['financial_year',
                                      period]).sum(min_count=1)
    return result
Ejemplo n.º 7
0
def hlf_revenue_margin(data_dic, input_dic):
    df1 = revenue.hlf_amc_daily(data_dic, input_dic, period='month_no')
    df2 = combined.total_aua(data_dic, input_dic)['discretionary_aua'].groupby(
        ['calendar_year', 'month_no']).sum()
    return df1 / df2.reindex(df1.index)