1. Support the keywords of complex special cases to be regex
2. Support set sub-datapoints list to complex special cases node. 3. Simplify the common management fee and costs instructions. 4. Add markdown title characters: ## or ### to instructions.
This commit is contained in:
parent
dc560e1e01
commit
d925992326
|
|
@ -830,7 +830,7 @@ class DataExtraction:
|
|||
previous_page_datapoints = []
|
||||
previous_page_fund_name = None
|
||||
for page_num, page_text in self.page_text_dict.items():
|
||||
# if page_num not in [14, 15]:
|
||||
# if page_num not in [13, 14]:
|
||||
# continue
|
||||
if page_num in handled_page_num_list:
|
||||
continue
|
||||
|
|
@ -1646,7 +1646,7 @@ class DataExtraction:
|
|||
instructions.extend(image_features)
|
||||
instructions.append("\n")
|
||||
|
||||
instructions.append("Datapoints Reported name:\n")
|
||||
instructions.append("## Datapoints Reported name:\n")
|
||||
instructions.append("Please look for relevant reported names and similar variations in the context.\n")
|
||||
reported_name_info_in_instructions = self.instructions_config.get("reported_name", {})
|
||||
for datapoint in datapoints:
|
||||
|
|
@ -1746,7 +1746,7 @@ class DataExtraction:
|
|||
none_value_example_count += 1
|
||||
|
||||
instructions.append("\n")
|
||||
instructions.append("Data business features:\n")
|
||||
instructions.append("## Data business features:\n")
|
||||
data_business_features = self.instructions_config.get(
|
||||
"data_business_features", {}
|
||||
)
|
||||
|
|
@ -1754,7 +1754,7 @@ class DataExtraction:
|
|||
instructions.append(common)
|
||||
instructions.append("\n")
|
||||
|
||||
instructions.append("Datapoints investment level:\n")
|
||||
instructions.append("## Datapoints investment level:\n")
|
||||
investment_level_info = data_business_features.get("investment_level", {})
|
||||
for datapoint in datapoints:
|
||||
investment_level = investment_level_info.get(datapoint, "")
|
||||
|
|
@ -1762,7 +1762,7 @@ class DataExtraction:
|
|||
instructions.append("\n")
|
||||
instructions.append("\n")
|
||||
|
||||
instructions.append("Datapoints value range:\n")
|
||||
instructions.append("## Datapoints value range:\n")
|
||||
data_value_range_info = data_business_features.get("data_value_range", {})
|
||||
for datapoint in datapoints:
|
||||
data_value_range = data_value_range_info.get(datapoint, "")
|
||||
|
|
@ -1776,7 +1776,12 @@ class DataExtraction:
|
|||
# 2. To load it by keywords, is to avoid for simple case, the prompts are too long.
|
||||
complex_special_rule = data_business_features.get("sepcial_rule_by_keywords", "")
|
||||
with_special_rule_title = False
|
||||
found_sub_datapoints = []
|
||||
for datapoint in datapoints:
|
||||
# If some complex special rule is found, and with sub datapoints,
|
||||
# need not to load relevant rule again.
|
||||
if datapoint in found_sub_datapoints:
|
||||
continue
|
||||
find_complex_special_rule = False
|
||||
if page_text is not None and len(page_text) > 0:
|
||||
complex_special_rule_list = complex_special_rule.get(datapoint, [])
|
||||
|
|
@ -1784,29 +1789,41 @@ class DataExtraction:
|
|||
complex_keywords = complex_special_rule.get("keywords", [])
|
||||
if len(complex_keywords) == 0:
|
||||
continue
|
||||
# support keywords to be pure text or regex
|
||||
keywords_is_regex = complex_special_rule.get("keywords_is_regex", False)
|
||||
exist_keywords = False
|
||||
for special_keywords in complex_keywords:
|
||||
special_keywrods_regex = add_slash_to_text_as_regex(special_keywords)
|
||||
if special_keywords in page_text or \
|
||||
re.search(special_keywrods_regex, page_text) is not None:
|
||||
exist_keywords = True
|
||||
break
|
||||
if keywords_is_regex:
|
||||
if re.search(special_keywords, page_text) is not None:
|
||||
exist_keywords = True
|
||||
break
|
||||
else:
|
||||
special_keywrods_regex = add_slash_to_text_as_regex(special_keywords)
|
||||
if special_keywords in page_text or \
|
||||
re.search(special_keywrods_regex, page_text) is not None:
|
||||
exist_keywords = True
|
||||
break
|
||||
if exist_keywords:
|
||||
complex_prompts_list = complex_special_rule.get("prompts", [])
|
||||
if len(complex_prompts_list) > 0:
|
||||
if not with_special_rule_title:
|
||||
instructions.append("Special rule:\n")
|
||||
instructions.append("## Special rule:\n")
|
||||
with_special_rule_title = True
|
||||
complex_prompts = "\n".join(complex_prompts_list)
|
||||
instructions.append(complex_prompts)
|
||||
instructions.append("\n\n")
|
||||
find_complex_special_rule = True
|
||||
# If the complex special rule is found, need to find the sub datapoints
|
||||
# and add them to the found_sub_datapoints list.
|
||||
sub_datapoints = complex_special_rule.get("sub_datapoints", [])
|
||||
if len(sub_datapoints) > 0:
|
||||
found_sub_datapoints.extend(sub_datapoints)
|
||||
if find_complex_special_rule:
|
||||
continue
|
||||
special_rule_list = special_rule_info.get(datapoint, [])
|
||||
if len(special_rule_list) > 0:
|
||||
if not with_special_rule_title:
|
||||
instructions.append("Special rule:\n")
|
||||
instructions.append("## Special rule:\n")
|
||||
with_special_rule_title = True
|
||||
special_rule = "\n".join(special_rule_list)
|
||||
instructions.append(special_rule)
|
||||
|
|
@ -1814,7 +1831,7 @@ class DataExtraction:
|
|||
|
||||
instructions.append("\n")
|
||||
|
||||
instructions.append("Special cases:\n")
|
||||
instructions.append("## Special cases:\n")
|
||||
special_cases = self.instructions_config.get("special_cases", {})
|
||||
special_cases_common_list = special_cases.get("common", [])
|
||||
special_cases_number = 1
|
||||
|
|
@ -1827,7 +1844,7 @@ class DataExtraction:
|
|||
contents_list = special_cases_common.get("contents", [])
|
||||
contents = "\n".join(contents_list)
|
||||
instructions.append(contents)
|
||||
instructions.append("\n\n")
|
||||
instructions.append("\n")
|
||||
|
||||
for datapoint in datapoints:
|
||||
special_case_list = special_cases.get(datapoint, [])
|
||||
|
|
@ -1841,9 +1858,8 @@ class DataExtraction:
|
|||
contents = "\n".join(contents_list)
|
||||
instructions.append(contents)
|
||||
instructions.append("\n")
|
||||
instructions.append("\n")
|
||||
|
||||
instructions.append("Output requirement:\n")
|
||||
instructions.append("## Output requirement:\n")
|
||||
output_requirement = self.instructions_config.get("output_requirement", {})
|
||||
output_requirement_common_list = output_requirement.get("common", [])
|
||||
instructions.append("\n".join(output_requirement_common_list))
|
||||
|
|
|
|||
|
|
@ -143,6 +143,7 @@
|
|||
},
|
||||
"special_rule": {
|
||||
"management_fee_and_costs": [
|
||||
"### Management fee and cost",
|
||||
"Management fee and cost = Management fee + indirect cost + recoverable expense (Also known as Expense recovery cost or recovery fee or Expense recovery fee or expense recoveries) + Manager fee or Responsible entity fee.",
|
||||
"If there are multiple Management fee and costs reported names, here is the priority rule:",
|
||||
"A.1 With \"Total Management fees and costs (gross)\" and \"Total Management fees and costs (net)\", pick up the values from \"Total Management fees and costs (net)\".",
|
||||
|
|
@ -301,34 +302,14 @@
|
|||
"So the output should be:",
|
||||
"{\"data\": [{\"fund name\": \"CFS Real Return – Class A\", \"share name\": \"CFS Real Return – Class A\", \"management_fee_and_costs\": 0.87, \"management_fee\": 0.87, \"buy_spread\": 0.15, \"sell_spread\": 0.15}, {\"fund name\": \"CFS Defensive Builder\", \"share name\": \"CFS Defensive Builder\", \"management_fee_and_costs\": 0.67, \"management_fee\": 0.67, \"performance_fee_costs\": 0.01, \"buy_spread\": 0.15, \"sell_spread\": 0.15}]}",
|
||||
"\n",
|
||||
"I. Some table is very complex, with many data points columns, please extract the relevant values.",
|
||||
"---Example 1 Start---",
|
||||
"Option name \nTotal administration\nand investment\nfees and costs (p.a.)\n= \nAdministration\nfees and\ncosts (p.a.)\n+ \nInvestment fees \nand costs (p.a.) \n2 \n+ \nPerformance \nfee (p.a.) \n1 \nBuy/sell\nspread\n(%)\n6 \nCFS Multi-Manager Multi-Sector (These investment options are located in the Investment Options Menu.) \nCFS Defensive \n0.94% \n0.20% 0.74%0.15 \nCFS Conservative 1.04% \n1 \n0.20% 0.81% 0.03%\n1 \n0.15 \n",
|
||||
"---Example 1 End---",
|
||||
"For this table, there are \"Administration fees and costs (p.a.)\" as administration_fees, ",
|
||||
"\"Investment fees and costs (p.a.)\" as management_fee_and_costs and management_fee, ",
|
||||
"\"Performance fee (p.a.)\" as performance_fee_costs, ",
|
||||
"\"Buy/sell spread (%)\" as buy_spread and sell_spread.",
|
||||
"If one row has 5 decimal numbers, ",
|
||||
"the 2nd decimal number is the administration_fees, ",
|
||||
"the 3rd decimal number is the management_fee_and_costs and management_fee, ",
|
||||
"the 4th decimal number is the performance_fee_costs, ",
|
||||
"the 5th decimal number is the buy_spread and sell_spread.",
|
||||
"If one row has 4 decimal numbers, ",
|
||||
"the 2nd decimal number is the administration_fees, ",
|
||||
"the 3rd decimal number is the management_fee_and_costs and management_fee, ",
|
||||
"the 4th decimal number is the buy_spread and sell_spread.",
|
||||
"Please always ignore the 1st decimal number, we need not the total sum values.",
|
||||
"The output should be:",
|
||||
"{\"data\": [{\"fund name\": \"CFS Multi-Manager Multi-Sector\", \"share name\": \"CFS Defensive\", \"management_fee_and_costs\": 0.74, \"management_fee\": 0.74, \"administration_fees\": 0.2, \"buy_spread\": 0.15, \"sell_spread\": 0.15}, {\"fund name\": \"CFS Multi-Manager Multi-Sector\", \"share name\": \"CFS Conservative\", \"management_fee_and_costs\": 0.81, \"management_fee\": 0.81, \"administration_fees\": 0.20, \"performance_fee_costs\": 0.03, \"buy_spread\": 0.15, \"sell_spread\": 0.15}]}",
|
||||
"J. If exist **\"Maximum management fee\"** in context, please ignore relevant values.",
|
||||
"I. If exist **\"Maximum management fee\"** in context, please ignore relevant values.",
|
||||
"---Example Start---",
|
||||
"Fund name \nMaximum \nmanagement \nfee (p.a.) \nLOWER VOLATILITY SHARE \nFirst Sentier Wholesale Equity Income Fund 3.075% \nAUSTRALIAN SHARE \nFirst Sentier Wholesale Australian Share Fund 1.538%",
|
||||
"---Example End---",
|
||||
"The values in example is **Maximum management fee**, should ignore all of them.",
|
||||
"The Output should be:",
|
||||
"{\"data\": []}",
|
||||
"K. The management fee and costs in paragraph with speficic fund/ share prefix name: \"Account-based pension\" or \"Pre-retirement pension\"",
|
||||
"J. The management fee and costs in paragraph with speficic fund/ share prefix name: \"Account-based pension\" or \"Pre-retirement pension\"",
|
||||
"---Example 1 Start---",
|
||||
"Account-based pension \nInvestment fees \nand costs 2 \nHigh Growth 0.45%, Growth 0.49%",
|
||||
"---Example 1 End---",
|
||||
|
|
@ -339,7 +320,7 @@
|
|||
"---Example 2 End---",
|
||||
"The output should be:",
|
||||
"{\"data\": [{\"fund name\": \"Pre-retirement pension High Growth\", \"share name\": \"Pre-retirement pension High Growth\", \"management_fee_and_costs\": 0.48, \"management_fee\": 0.48}, {\"fund name\": \"Pre-retirement pension Growth\", \"share name\": \"Pre-retirement pension Growth\", \"management_fee_and_costs\": 0.50, \"management_fee\": 0.50}]}",
|
||||
"L. DO NOT extract management fees from \"Cost of product\" summaries. ",
|
||||
"K. DO NOT extract management fees from \"Cost of product\" summaries. ",
|
||||
"\"Cost of product\" figures should not be treated as 'Investment fees and costs'.",
|
||||
"---Example Start---",
|
||||
"Investment option Cost of product \nCash $141.00",
|
||||
|
|
@ -347,9 +328,10 @@
|
|||
"FOUND \"Cost of product\", IGNORE ALL OF INFORMATION BELOW IT!!! JUST RETURN EMPTY RESPONSE!!!",
|
||||
"The output should be:",
|
||||
"{\"data\": []}",
|
||||
"M. Do NOT infer or copy investment fees or management fees from examples provided for specific funds to other investment options. Only extract 'management_fee_and_costs' and 'management_fee' if explicitly stated separately for each investment option."
|
||||
"L. Do NOT infer or copy investment fees or management fees from examples provided for specific funds to other investment options. Only extract 'management_fee_and_costs' and 'management_fee' if explicitly stated separately for each investment option."
|
||||
],
|
||||
"administration_fees":[
|
||||
"### Administration fees and costs",
|
||||
"Administration fees and costs and total annual dollar-based charges are share class level data.",
|
||||
"Simple case:",
|
||||
"----Example 1 Start----",
|
||||
|
|
@ -390,6 +372,15 @@
|
|||
"total_annual_dollar_based_charges is 1 * 52 = 52",
|
||||
"The output should be:",
|
||||
"{\"data\": [{\"fund name\": \"TelstraSuper RetireAccess\", \"share name\": \"TelstraSuper RetireAccess\", \"administration_fees\": 0.17, \"total_annual_dollar_based_charges\": 52}]}",
|
||||
"---Example 6 Start---",
|
||||
"Administration \nfees and costs \n1 \nFirstChoice Lifestage (MySuper product) \nand Select investment options \n(other than FirstRate Saver) \n0.04% p.a. \nThe percentage‑based administration fee is reflected in \nthe daily unit price of your investment option and payable \nmonthly or as incurred by the option. \nFirstRate Saver \nFrom 0.35% to \n0.50% p.a. \nThe dollar‑based administration fee of $5 per month is \npayable at the beginning of each month by deduction of \nunits from one of your options. \nDollar-based fee discounts \nThe current fee for FirstRate Saver is set out at \ncfs.com.au/personal/resources/funds-and-performance/ \nfirstrate‑interest‑rates.html \nYour employer may be able to negotiate a lower dollar‑ \nbased administration fee for employee members. \nplus \nDollar-based administration fee \nRetained benefit and spouse members are not entitled \nto this discount. \n$60 p.a. ($5 per month) per account \n",
|
||||
"---Example 6 Start---",
|
||||
"According to example, the administration fee is 0.04, ",
|
||||
"\"From 0.35% to 0.50% p.a.\", because it is the range value, need ignore and exclude, so administration_fees is 0.04, ",
|
||||
"the total_annual_dollar_based_charges is 60 (5 per month * 12)",
|
||||
"About fund name, it should be \"FirstChoice Lifestage\".",
|
||||
"The output should be:",
|
||||
"{\"data\": [{\"fund name\": \"FirstChoice Lifestage\", \"share name\": \"FirstChoice Lifestage\", \"administration_fees\": 0.04, \"total_annual_dollar_based_charges\": 60}]}",
|
||||
"\n",
|
||||
"Complex cases:",
|
||||
"A. Need to add multiple numbers together.",
|
||||
|
|
@ -428,6 +419,7 @@
|
|||
"{\"data\": [{\"fund name\": \"My Super\", \"share name\": \"My Super\", \"administration_fees\": 0.17, \"total_annual_dollar_based_charges\": 26}, {\"fund name\": \"Fund1\", \"share name\": \"Fund1\", \"management_fee_and_costs\": 0.12, \"management_fee\": 0.12}]}"
|
||||
],
|
||||
"total_annual_dollar_based_charges": [
|
||||
"### Total annual dollar-based charges",
|
||||
"Total annual dollar-based charges are share class level data.",
|
||||
"A. Its value corresponds to the administration fees and costs that are charged on a weekly basis.",
|
||||
"----Example Start----",
|
||||
|
|
@ -439,18 +431,27 @@
|
|||
"{\"data\": [{\"fund name\": \"MLC MasterKey Super & Pension Fundamentals\", \"share name\": \"MLC MasterKey Super & Pension Fundamentals\", \"total_annual_dollar_based_charges\": 78}, {\"fund name\": \"MLC Horizon 4 Balanced Portfolio\", \"share name\": \"MLC Horizon 4 Balanced Portfolio\", \"management_fee_and_costs\": 1.2, \"management_fee\": 1.2, \"buy_spread\": 0.1, \"sell_spread\": 0.1}]}",
|
||||
"\n",
|
||||
"B. Please identify some case which not belong to the total_annual_dollar_based_charges, and output empty.",
|
||||
"----Example Start----",
|
||||
"----Example 1 Start----",
|
||||
"Cost of product information \n\nCost of product for 1 year \n\nThe cost of product gives a summary calculation about \nhow ongoing annual fees and costs can affect your \nsuperannuation investment over a 1-year period for all \ninvestment options. It is calculated in the manner \nshown in the 'Example of annual fees and costs'. \n\nThe cost of product information assumes a balance of \n$50,000 at the beginning of the year. (Additional fees \nsuch as a buy/sell spread may apply – refer to the ‘Fees \nand costs summary’ table for the relevant investment \noption.) \n\nYou should use this figure to help compare \nsuperannuation products and investment options. \n\nInvestment option \nCash \nCost of product \nPerpetual Cash \n$60.00 \nFixed income and credit \nBentham Global Income \n$485.00 \n",
|
||||
"----Example End----",
|
||||
"----Example 1 End----",
|
||||
"Explanation:",
|
||||
"The values provided in the example are not total annual dollar-based charges; ",
|
||||
"they represent the cost of product information, which is a calculated figure used to compare superannuation products and investment options. ",
|
||||
"This figure includes ongoing annual fees and costs, but it may not encompass all possible charges, such as additional fees like buy/sell spreads. ",
|
||||
"Therefore, it serves as a comparative tool rather than a comprehensive total of all annual charges.",
|
||||
"The output should be empty:",
|
||||
"{\"data\": []}"
|
||||
"{\"data\": []}",
|
||||
"----Example 2 Start----",
|
||||
"Equals \nCost of product \n1 \nIf your balance was $50,000 at \nthe beginning of the year, then \nfor that year you will be charged \nfees and costs of $395 for the \nsuperannuation product. \n\n",
|
||||
"----Example 2 End----",
|
||||
"Explanation:",
|
||||
"The values provided in the example are not total annual dollar-based charges; ",
|
||||
"they represent the cost of product information, which is a calculated figure used to compare superannuation products and investment options. ",
|
||||
"FOUND \"Cost of product\", IGNORE ALL OF INFORMATION BELOW IT!!!"
|
||||
],
|
||||
"buy_spread": [
|
||||
"### Buy/sell spread",
|
||||
"Buy/sell spread is share class level data.",
|
||||
"A. Exclude reported name",
|
||||
"Please don't extract data by the reported names for buy_spread or sell_spread, they are: ",
|
||||
"Transaction costs buy/sell spread recovery, Transaction costs reducing return of the investment option (net transaction costs), Cost of product, ",
|
||||
|
|
@ -498,6 +499,7 @@
|
|||
"{\"data\": [{\"fund name\": \"Allan Gray Australian Equity Fund – Class A\", \"share name\": \"Allan Gray Australian Equity Fund – Class A\", \"buy_spread\": 0.4, \"sell_spread\": 0.4}, {\"fund name\": \"Alphinity Sustainable Share Fund\", \"share name\": \"Alphinity Sustainable Share Fund\", \"buy_spread\": 0.4, \"sell_spread\": 0.4}]}"
|
||||
],
|
||||
"performance_fee_costs": [
|
||||
"### Performance fees",
|
||||
"Performance fees is share class level data.",
|
||||
"A. If the performance fees is with the range, please ignore and output empty.",
|
||||
"---Example Start---",
|
||||
|
|
@ -536,6 +538,7 @@
|
|||
"a. For this example, you have Example keyword in the header so you should not extract any datapoint values Like performance_fee_costs, management fee etc."
|
||||
],
|
||||
"minimum_initial_investment": [
|
||||
"### Minimum initial investment",
|
||||
"Minimum initial investment is fund level data, belong to integer number, the value examples are 100, 1,000, 5,000, 10,000, etc.",
|
||||
"---Example 1 Start---",
|
||||
"The minimum investment per Pension Plan account is \n$20,000. The minimum initial investment in any \ninvestment option is $5,000.\n\nPerpetual WealthFocus Pension Plan",
|
||||
|
|
@ -570,6 +573,7 @@
|
|||
"{\"data\": [{\"fund name\": \"Lifeplan Investment Bond\", \"minimum_initial_investment\": 1000}]}"
|
||||
],
|
||||
"benchmark_name": [
|
||||
"### Benchmark name",
|
||||
"Benchmark is fund leval data, usually as index fund name, e.g. S&P/ASX 300 A-REIT Total Return Index ",
|
||||
"Sometime, there are multiple benchmark names with weightings in the context, please extract them all including weightings and benchmark names.",
|
||||
"A. Examples for single benchmark name",
|
||||
|
|
@ -687,7 +691,9 @@
|
|||
"management_fee_and_costs": [
|
||||
{
|
||||
"keywords": ["Administration fees \nEstimated administration costs \nInvestment fees"],
|
||||
"prompts": ["Complex management fee and costs rule:",
|
||||
"keywords_is_regex": false,
|
||||
"prompts": [
|
||||
"### Complex management fee and costs rule",
|
||||
"If the table with columns:",
|
||||
"\"Administration fees\", \"Investment fees\" ,\"Estimated other investment costs\" and \"Estimated performance fees\"",
|
||||
"The administration_fees is \"Administration fees\"",
|
||||
|
|
@ -708,7 +714,9 @@
|
|||
},
|
||||
{
|
||||
"keywords": ["Entry Fee option \nNil Entry option"],
|
||||
"prompts": ["Complex management fee and costs rule:",
|
||||
"keywords_is_regex": false,
|
||||
"prompts": [
|
||||
"### Complex management fee and costs rule",
|
||||
"If the table with columns:",
|
||||
"\"Entry Fee option\", \"Nil Entry option\", \"Estimated Other investment costs\", \"Estimated Performance fees\"",
|
||||
"The performance_fee_costs is \"Estimated Performance fees\"",
|
||||
|
|
@ -733,7 +741,9 @@
|
|||
},
|
||||
{
|
||||
"keywords": ["Retirement and TTR income streams"],
|
||||
"prompts": ["Complex management fee and costs rule:",
|
||||
"keywords_is_regex": false,
|
||||
"prompts": [
|
||||
"### Complex management fee and costs rule",
|
||||
"For management_fee_and_costs, ",
|
||||
"a. If the title is \"Retirement and TTR income streams\"",
|
||||
"it means each investment name is with two fund names, one is for Retirement as pension, another is for TTR.",
|
||||
|
|
@ -754,7 +764,9 @@
|
|||
},
|
||||
{
|
||||
"keywords": ["Recoverable expenses \nEstimated other indirect costs"],
|
||||
"prompts": ["Complex management fee and costs rule:",
|
||||
"keywords_is_regex": false,
|
||||
"prompts": [
|
||||
"### Complex management fee and costs rule",
|
||||
"If the table with columns:",
|
||||
"\"Management fee (% pa)\", \"Recoverable expenses\", \"Estimated other indirect costs\", \"Peformance fees charged to the Investment Option by underlying managers\", \"Performance fees charged by interposed vehicles\", \"Buy/sell spreads\"",
|
||||
"The management_fee is \"Management fee (% pa)\".",
|
||||
|
|
@ -796,8 +808,9 @@
|
|||
},
|
||||
{
|
||||
"keywords":["Plus other investment fees and costs \nEquals investment fees and costs"],
|
||||
"keywords_is_regex": false,
|
||||
"prompts": [
|
||||
"Complex management fee and costs rule:",
|
||||
"### Complex management fee and costs rule",
|
||||
"If the table with columns:",
|
||||
"\"Performance fee\", \"Plus other investment fees and costs\", \"Equals investment fees and costs\", \"Transaction costs(net)\", \"Buy-sell spreads\", \"Transaction costs(gross)\".",
|
||||
"Both of the management_fee and management_fee_costs are \"Plus other investment fees and costs\".",
|
||||
|
|
@ -812,6 +825,34 @@
|
|||
"The output should be:",
|
||||
"{\"data\": [{\"fund name\": \"MLC Inflation Plus Conservative Portfolio\", \"share name\": \"Super & Pension pre-retirement phase\", \"performance_fee_costs\": 0.18, \"management_fee_and_costs\": 0.77, \"management_fee\": 0.77, \"buy_spread\": 0.1, \"sell_spread\": 0.1}, {\"fund name\": \"MLC Inflation Plus Conservative Portfolio\", \"share name\": \"Retirement Phase\", \"performance_fee_costs\": 0.18, \"management_fee_and_costs\": 0.77, \"management_fee\": 0.77, \"buy_spread\": 0.1, \"sell_spread\": 0.1}]}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"keywords":["Total\\s*administration\\s*and investment\\s*fees[\\s\\S]*?Administration\\s*fees[\\s\\S]*?Investment\\s*fees[\\s\\S]*?Performance\\s*fee[\\s\\S]*?Buy\\/[sS]ell\\s*spread"],
|
||||
"keywords_is_regex": true,
|
||||
"sub_datapoints": ["administration_fees", "performance_fee_costs", "buy_spread", "sell_spread"],
|
||||
"prompts": [
|
||||
"### Complex management fee and costs rule",
|
||||
"---Example Start---",
|
||||
"Option name \nTotal administration\nand investment\nfees and costs (p.a.)\n= \nAdministration\nfees and\ncosts (p.a.)\n+ \nInvestment fees \nand costs (p.a.) \n2 \n+ \nPerformance \nfee (p.a.) \n1 \nBuy/sell\nspread\n(%)\n6 \nCFS Multi-Manager Multi-Sector (These investment options are located in the Investment Options Menu.) \nCFS Defensive \n0.94% \n0.20% 0.74%0.15 \nCFS Conservative 1.04% \n1 \n0.20% 0.81% 0.03%\n1 \n0.15 \n",
|
||||
"---Example End---",
|
||||
"For this table, there are \"Administration fees and costs (p.a.)\" as administration_fees, ",
|
||||
"\"Investment fees and costs (p.a.)\" as management_fee_and_costs and management_fee, ",
|
||||
"\"Performance fee (p.a.)\" as performance_fee_costs, ",
|
||||
"\"Buy/sell spread (%)\" as buy_spread and sell_spread.",
|
||||
"If one row has 5 decimal numbers, ",
|
||||
"the 2nd decimal number is the administration_fees, ",
|
||||
"the 3rd decimal number is the management_fee_and_costs and management_fee, ",
|
||||
"the 4th decimal number is the performance_fee_costs, ",
|
||||
"the 5th decimal number is the buy_spread and sell_spread.",
|
||||
"If one row has 4 decimal numbers, ",
|
||||
"the 2nd decimal number is the administration_fees, ",
|
||||
"the 3rd decimal number is the management_fee_and_costs and management_fee, ",
|
||||
"the 4th decimal number is the buy_spread and sell_spread.",
|
||||
"\"Buy/sell spread\" is always as the last decimal value column, for buy_spread and sell_spread, please extract all of them.",
|
||||
"Please always ignore the 1st decimal number, we need not the total sum values.",
|
||||
"The output should be:",
|
||||
"{\"data\": [{\"fund name\": \"CFS Multi-Manager Multi-Sector\", \"share name\": \"CFS Defensive\", \"management_fee_and_costs\": 0.74, \"management_fee\": 0.74, \"administration_fees\": 0.2, \"buy_spread\": 0.15, \"sell_spread\": 0.15}, {\"fund name\": \"CFS Multi-Manager Multi-Sector\", \"share name\": \"CFS Conservative\", \"management_fee_and_costs\": 0.81, \"management_fee\": 0.81, \"administration_fees\": 0.20, \"performance_fee_costs\": 0.03, \"buy_spread\": 0.15, \"sell_spread\": 0.15}]}"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
9
main.py
9
main.py
|
|
@ -453,7 +453,6 @@ def batch_start_job(
|
|||
pdf_folder: str = "/data/emea_ar/pdf/",
|
||||
output_pdf_text_folder: str = r"/data/emea_ar/output/pdf_text/",
|
||||
doc_data_excel_file: str = None,
|
||||
document_mapping_file: str = None,
|
||||
output_extract_data_child_folder: str = r"/data/emea_ar/output/extract_data/docs/",
|
||||
output_mapping_child_folder: str = r"/data/emea_ar/output/mapping_data/docs/",
|
||||
output_extract_data_total_folder: str = r"/data/emea_ar/output/extract_data/total/",
|
||||
|
|
@ -1051,7 +1050,6 @@ def batch_run_documents(
|
|||
doc_source: str = "emea_ar",
|
||||
special_doc_id_list: list = None,
|
||||
pdf_folder: str = r"/data/emea_ar/pdf/",
|
||||
document_mapping_file: str = None,
|
||||
output_pdf_text_folder: str = r"/data/emea_ar/output/pdf_text/",
|
||||
output_extract_data_child_folder: str = r"/data/emea_ar/output/extract_data/docs/",
|
||||
output_extract_data_total_folder: str = r"/data/emea_ar/output/extract_data/total/",
|
||||
|
|
@ -1090,7 +1088,6 @@ def batch_run_documents(
|
|||
pdf_folder,
|
||||
output_pdf_text_folder,
|
||||
page_filter_ground_truth_file,
|
||||
document_mapping_file,
|
||||
output_extract_data_child_folder,
|
||||
output_mapping_child_folder,
|
||||
output_extract_data_total_folder,
|
||||
|
|
@ -1110,7 +1107,6 @@ def batch_run_documents(
|
|||
pdf_folder,
|
||||
output_pdf_text_folder,
|
||||
page_filter_ground_truth_file,
|
||||
document_mapping_file,
|
||||
output_extract_data_child_folder,
|
||||
output_mapping_child_folder,
|
||||
output_extract_data_total_folder,
|
||||
|
|
@ -1540,9 +1536,7 @@ if __name__ == "__main__":
|
|||
)
|
||||
with open(document_sample_file, "r", encoding="utf-8") as f:
|
||||
special_doc_id_list = [doc_id.strip() for doc_id in f.readlines()]
|
||||
# document_mapping_file = r"/data/aus_prospectus/basic_information/next_round/next_round_6_documents_mapping.xlsx"
|
||||
document_mapping_file = r"/data/aus_prospectus/basic_information/46_documents/aus_prospectus_46_documents_mapping.xlsx"
|
||||
# special_doc_id_list = ["553449169"]
|
||||
# special_doc_id_list = ["448576924"]
|
||||
pdf_folder: str = r"/data/aus_prospectus/pdf/"
|
||||
output_pdf_text_folder: str = r"/data/aus_prospectus/output/pdf_text/"
|
||||
output_extract_data_child_folder: str = (
|
||||
|
|
@ -1563,7 +1557,6 @@ if __name__ == "__main__":
|
|||
doc_source=doc_source,
|
||||
special_doc_id_list=special_doc_id_list,
|
||||
pdf_folder=pdf_folder,
|
||||
document_mapping_file=document_mapping_file,
|
||||
output_pdf_text_folder=output_pdf_text_folder,
|
||||
output_extract_data_child_folder=output_extract_data_child_folder,
|
||||
output_extract_data_total_folder=output_extract_data_total_folder,
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 47,
|
||||
"execution_count": 1,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
|
|
@ -59,7 +59,7 @@
|
|||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 48,
|
||||
"execution_count": 2,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
|
|
@ -349,7 +349,7 @@
|
|||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 49,
|
||||
"execution_count": 3,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -514,14 +514,147 @@
|
|||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 6,
|
||||
"execution_count": 4,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 539791362, 'sec_name': 'REST High Growth Pension', 'truth': '0.6', 'generated': '0.08', 'error': 'Truth is not equal with generated'}\n"
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 377377369, 'sec_name': 'SPDR® S&P Emerging Markets Carbon Control Fund', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 401212184, 'sec_name': 'ANZ OA Inv-OnePath Multi Asset Income NEF', 'truth': '0', 'generated': '0.11', 'error': 'Truth is not equal with generated'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 401212184, 'sec_name': 'ANZ OA IP-OnePath Australian Shares NE', 'truth': '0', 'generated': '0.07', 'error': 'Truth is not equal with generated'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 401212184, 'sec_name': 'OnePath OA Investment Portfolio-BlackRock Tactical Growth NE', 'truth': '0', 'generated': '0.33', 'error': 'Truth is not equal with generated'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 401212184, 'sec_name': 'OnePath OneAnswer Investment Portfolio - OnePath Growth Index -NE', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 409723592, 'sec_name': 'Vanguard Index Diversified Bond Fund', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 409723592, 'sec_name': 'Vanguard Index Australian Shares Fund', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 409723592, 'sec_name': 'Vanguard High Yield Australian Shares Fund', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 409723592, 'sec_name': 'Vanguard Index Australian Property Securities Fund', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 411062815, 'sec_name': 'Perpetual WFP-Macquarie Income Opps', 'truth': '0.03', 'generated': '0.12', 'error': 'Truth is not equal with generated'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 411062815, 'sec_name': 'Perpetual WFP-Perpetual Diversified Inc', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 411062815, 'sec_name': 'Perpetual WFP-Schroder Fixed Income', 'truth': '0', 'generated': '0.01', 'error': 'Truth is not equal with generated'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 411062815, 'sec_name': 'Perpetual WFP-Perpetual Share Plus L/S', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 414751292, 'sec_name': 'Platinum Global Fund (Long Only)', 'truth': '0.24', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 414751292, 'sec_name': 'Platinum Global Fund (Long Only) P Class', 'truth': '0.24', 'generated': '0', 'error': 'Truth is not equal with generated'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 414751292, 'sec_name': 'Platinum International Fund', 'truth': '0.15', 'generated': '0', 'error': 'Truth is not equal with generated'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 414751292, 'sec_name': 'Platinum Asia Fund', 'truth': '0.27', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 414751292, 'sec_name': 'Platinum International Brands Fund', 'truth': '0.03', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 414751292, 'sec_name': 'Platinum International Brands Fund P Class', 'truth': '0.03', 'generated': '0', 'error': 'Truth is not equal with generated'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 414751292, 'sec_name': 'Platinum International Healthcare Fund', 'truth': '0.86', 'generated': '0', 'error': 'Truth is not equal with generated'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 414751292, 'sec_name': 'Platinum International Technology Fund', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 414751292, 'sec_name': 'Platinum European Fund', 'truth': '0.24', 'generated': '0', 'error': 'Truth is not equal with generated'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 414751292, 'sec_name': 'Platinum Japan Fund', 'truth': '0.15', 'generated': '0', 'error': 'Truth is not equal with generated'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 397107472, 'sec_name': 'AMP Capital Specialist Diversified Fixed Income Fund', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 420339794, 'sec_name': 'MLC MKPFPR - Ausbil Aus. Emrging Leaders', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 420339794, 'sec_name': 'MLC MKPFPR - Investors Mutual Aus. Shre', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 420339794, 'sec_name': 'MLC MKPFPR - Macquarie Inc Opportunities', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 420339794, 'sec_name': 'MLC MasterKey Pension Fundamentals (Pre Retirement) - MLC Cash', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 420339794, 'sec_name': 'MLC MKPFPR - Global Share Fund', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 420339794, 'sec_name': 'MLC MKPFPR - IncomeBuilder', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 420339794, 'sec_name': 'MLC MKPF - Hedged Global Share Fund', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 420339794, 'sec_name': 'MLC MKPFPR - Hedged Global Share Fund', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 420339794, 'sec_name': 'MLC MKPF - PIMCO Div. Fixed Interest Wholesale Class', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 420339794, 'sec_name': 'MLC MKPF - PIMCO Global Bond Wholesale Class', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 420339794, 'sec_name': 'MLC MKPFPR - PIMCO Global Bond Wholesale Class', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 420339794, 'sec_name': 'MLC MKPF - PM CAPITAL Global Companies', 'truth': '1.54', 'generated': '1.45', 'error': 'Truth is not equal with generated'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 446324179, 'sec_name': 'Lifeplan Investment Bond - Allan Gray Australian Equity Fund Class A', 'truth': '0.28', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 446324179, 'sec_name': 'Lifeplan Investment Bond MLC Horizon 2-Capital Stable Open', 'truth': '0.05', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 530101994, 'sec_name': 'Dimensional Global Core Equity Trust', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 530101994, 'sec_name': 'Dimensional Global Small Company Trust', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 530101994, 'sec_name': 'Dimensional Global Value Trust -Active ETF', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 530101994, 'sec_name': 'Dimensional Australian Value Trust - Active ETF', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 530101994, 'sec_name': 'Dimensional Global Core Equity Tr AUDHdg', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 539266893, 'sec_name': 'AMP - Generations - BlackRock Australian Fixed Interest Index', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 539266893, 'sec_name': 'AMP - Generations - BlackRock Australian Equity Index', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 539266893, 'sec_name': 'AMP Generations - AMP Cash Mgmt', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 539266893, 'sec_name': 'AMP - Generations - BlackRock Property Securities Index', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 539266893, 'sec_name': 'AMP - Generations - BlackRock International Equity Index (Unhedged)', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 539266893, 'sec_name': 'AMP - Generations - BlackRock International Equity Index (Hedged)', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 539241700, 'sec_name': 'North Professional Balanced', 'truth': '0', 'generated': '0.05', 'error': 'Truth is not equal with generated'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 539261734, 'sec_name': 'ipac life choices Income Generator', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 539266874, 'sec_name': 'SUMMIT Select - Active High Growth Units', 'truth': '0', 'generated': '0.06', 'error': 'Truth is not equal with generated'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 539266874, 'sec_name': 'SUMMIT Select - Active Moderately Defensive', 'truth': '0', 'generated': '0.06', 'error': 'Truth is not equal with generated'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 539266874, 'sec_name': 'SUMMIT Select - Active Growth Units', 'truth': '0', 'generated': '0.06', 'error': 'Truth is not equal with generated'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 539266874, 'sec_name': 'SUMMIT Select - Active Balanced', 'truth': '0', 'generated': '0.06', 'error': 'Truth is not equal with generated'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 539266874, 'sec_name': 'SUMMIT Select - Active Defensive Units', 'truth': '0', 'generated': '0.06', 'error': 'Truth is not equal with generated'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 527969661, 'sec_name': 'JPMorgan Global Equity Premium Income (Hedged) Complex ETF', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 557526129, 'sec_name': 'Fortlake Real-Income Fund', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 557526129, 'sec_name': 'Fortlake Real-Higher Income Fund', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 531373053, 'sec_name': 'Dimensional Australian Value Trust - Active ETF', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 531373053, 'sec_name': 'Dimensional Global Small Company Trust', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 541356150, 'sec_name': 'JPMorgan Global Research Enhanced Index Equity Trust - Class I', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 541356150, 'sec_name': 'JPMorgan Global Research Enhanced Index Equity Trust - Class I (Hedged)', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 557362553, 'sec_name': 'JPMorgan Global Select Equity Active ETF', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 550522985, 'sec_name': 'RQI Global Value – Class A', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 557362556, 'sec_name': 'JPMorgan Global Select Equity Fund - Class A (Hedged) Units', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 557362556, 'sec_name': 'JPMorgan Global Select Equity Fund - Class A Units', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 530101994, 'sec_name': 'Dimensional Global Core Equity Trust', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 530101994, 'sec_name': 'Dimensional Global Small Company Trust', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 530101994, 'sec_name': 'Dimensional Global Value Trust -Active ETF', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 530101994, 'sec_name': 'Dimensional Australian Value Trust - Active ETF', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 530101994, 'sec_name': 'Dimensional Global Core Equity Tr AUDHdg', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 539266893, 'sec_name': 'AMP - Generations - BlackRock Australian Fixed Interest Index', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 539266893, 'sec_name': 'AMP - Generations - BlackRock Australian Equity Index', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 539266893, 'sec_name': 'AMP Generations - AMP Cash Mgmt', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 539266893, 'sec_name': 'AMP - Generations - BlackRock Property Securities Index', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 539266893, 'sec_name': 'AMP - Generations - BlackRock International Equity Index (Unhedged)', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 539266893, 'sec_name': 'AMP - Generations - BlackRock International Equity Index (Hedged)', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 539241700, 'sec_name': 'North Professional Balanced', 'truth': '0', 'generated': '0.05', 'error': 'Truth is not equal with generated'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 539261734, 'sec_name': 'ipac life choices Income Generator', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 539266874, 'sec_name': 'SUMMIT Select - Active High Growth Units', 'truth': '0', 'generated': '0.06', 'error': 'Truth is not equal with generated'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 539266874, 'sec_name': 'SUMMIT Select - Active Moderately Defensive', 'truth': '0', 'generated': '0.06', 'error': 'Truth is not equal with generated'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 539266874, 'sec_name': 'SUMMIT Select - Active Growth Units', 'truth': '0', 'generated': '0.06', 'error': 'Truth is not equal with generated'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 539266874, 'sec_name': 'SUMMIT Select - Active Balanced', 'truth': '0', 'generated': '0.06', 'error': 'Truth is not equal with generated'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 539266874, 'sec_name': 'SUMMIT Select - Active Defensive Units', 'truth': '0', 'generated': '0.06', 'error': 'Truth is not equal with generated'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 527969661, 'sec_name': 'JPMorgan Global Equity Premium Income (Hedged) Complex ETF', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 557526129, 'sec_name': 'Fortlake Real-Income Fund', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 557526129, 'sec_name': 'Fortlake Real-Higher Income Fund', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 531373053, 'sec_name': 'Dimensional Australian Value Trust - Active ETF', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 531373053, 'sec_name': 'Dimensional Global Small Company Trust', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 541356150, 'sec_name': 'JPMorgan Global Research Enhanced Index Equity Trust - Class I', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 541356150, 'sec_name': 'JPMorgan Global Research Enhanced Index Equity Trust - Class I (Hedged)', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 557362553, 'sec_name': 'JPMorgan Global Select Equity Active ETF', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 550522985, 'sec_name': 'RQI Global Value – Class A', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 557362556, 'sec_name': 'JPMorgan Global Select Equity Fund - Class A (Hedged) Units', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 557362556, 'sec_name': 'JPMorgan Global Select Equity Fund - Class A Units', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 377377369, 'sec_name': 'SPDR® S&P Emerging Markets Carbon Control Fund', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 401212184, 'sec_name': 'ANZ OA Inv-OnePath Multi Asset Income NEF', 'truth': '0', 'generated': '0.11', 'error': 'Truth is not equal with generated'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 401212184, 'sec_name': 'ANZ OA IP-OnePath Australian Shares NE', 'truth': '0', 'generated': '0.07', 'error': 'Truth is not equal with generated'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 401212184, 'sec_name': 'OnePath OA Investment Portfolio-BlackRock Tactical Growth NE', 'truth': '0', 'generated': '0.33', 'error': 'Truth is not equal with generated'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 401212184, 'sec_name': 'OnePath OneAnswer Investment Portfolio - OnePath Growth Index -NE', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 409723592, 'sec_name': 'Vanguard Index Diversified Bond Fund', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 409723592, 'sec_name': 'Vanguard Index Australian Shares Fund', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 409723592, 'sec_name': 'Vanguard High Yield Australian Shares Fund', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 409723592, 'sec_name': 'Vanguard Index Australian Property Securities Fund', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 411062815, 'sec_name': 'Perpetual WFP-Macquarie Income Opps', 'truth': '0.03', 'generated': '0.12', 'error': 'Truth is not equal with generated'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 411062815, 'sec_name': 'Perpetual WFP-Perpetual Diversified Inc', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 411062815, 'sec_name': 'Perpetual WFP-Schroder Fixed Income', 'truth': '0', 'generated': '0.01', 'error': 'Truth is not equal with generated'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 411062815, 'sec_name': 'Perpetual WFP-Perpetual Share Plus L/S', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 414751292, 'sec_name': 'Platinum Global Fund (Long Only)', 'truth': '0.24', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 414751292, 'sec_name': 'Platinum Global Fund (Long Only) P Class', 'truth': '0.24', 'generated': '0', 'error': 'Truth is not equal with generated'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 414751292, 'sec_name': 'Platinum International Fund', 'truth': '0.15', 'generated': '0', 'error': 'Truth is not equal with generated'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 414751292, 'sec_name': 'Platinum Asia Fund', 'truth': '0.27', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 414751292, 'sec_name': 'Platinum International Brands Fund', 'truth': '0.03', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 414751292, 'sec_name': 'Platinum International Brands Fund P Class', 'truth': '0.03', 'generated': '0', 'error': 'Truth is not equal with generated'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 414751292, 'sec_name': 'Platinum International Healthcare Fund', 'truth': '0.86', 'generated': '0', 'error': 'Truth is not equal with generated'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 414751292, 'sec_name': 'Platinum International Technology Fund', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 414751292, 'sec_name': 'Platinum European Fund', 'truth': '0.24', 'generated': '0', 'error': 'Truth is not equal with generated'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 414751292, 'sec_name': 'Platinum Japan Fund', 'truth': '0.15', 'generated': '0', 'error': 'Truth is not equal with generated'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 397107472, 'sec_name': 'AMP Capital Specialist Diversified Fixed Income Fund', 'truth': '', 'generated': '0', 'error': 'Truth is null and generated is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 420339794, 'sec_name': 'MLC MKPFPR - Ausbil Aus. Emrging Leaders', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 420339794, 'sec_name': 'MLC MKPFPR - Investors Mutual Aus. Shre', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 420339794, 'sec_name': 'MLC MKPFPR - Macquarie Inc Opportunities', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 420339794, 'sec_name': 'MLC MasterKey Pension Fundamentals (Pre Retirement) - MLC Cash', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 420339794, 'sec_name': 'MLC MKPFPR - Global Share Fund', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 420339794, 'sec_name': 'MLC MKPFPR - IncomeBuilder', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 420339794, 'sec_name': 'MLC MKPF - Hedged Global Share Fund', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 420339794, 'sec_name': 'MLC MKPFPR - Hedged Global Share Fund', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 420339794, 'sec_name': 'MLC MKPF - PIMCO Div. Fixed Interest Wholesale Class', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 420339794, 'sec_name': 'MLC MKPF - PIMCO Global Bond Wholesale Class', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 420339794, 'sec_name': 'MLC MKPFPR - PIMCO Global Bond Wholesale Class', 'truth': '0', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 420339794, 'sec_name': 'MLC MKPF - PM CAPITAL Global Companies', 'truth': '1.54', 'generated': '1.45', 'error': 'Truth is not equal with generated'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 446324179, 'sec_name': 'Lifeplan Investment Bond - Allan Gray Australian Equity Fund Class A', 'truth': '0.28', 'generated': '', 'error': 'Generated is null and truth is not null'}\n",
|
||||
"{'data_point': 'performance_fee_costs', 'doc_id': 446324179, 'sec_name': 'Lifeplan Investment Bond MLC Horizon 2-Capital Stable Open', 'truth': '0.05', 'generated': '', 'error': 'Generated is null and truth is not null'}\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
|
|
|
|||
Loading…
Reference in New Issue