This block is designed for data validation purposes and should be used during quality control checks to identify gaps or inconsistencies in account performance factor data. This Data Block is intended to be edited or modified prior to use. Data shown in this example is only applicable to the Assette Demo Environment.
The Validation Account Performance Factors (Validation_AccountPerformanceFactors) Data Block in Assette is a Transform-type block that checks for the presence and validity of account performance factors for a given As of Date. It returns validation results in two categories: accounts missing performance factors and accounts with invalid performance factor values (e.g., null or negative values). This helps users verify data completeness and integrity before using performance metrics in client reports.
Field | Value |
---|---|
Name | Validation_AccountPerformanceFactors |
Block Category | Transform |
Block Type | Python |
Output Type | Data Table |
Editable | True |
Description | Returns validation results for missing or invalid account performance factors for a specified As of Date. |
Columns #
Not applicable.
Request Parameters #
Parameter | Description |
---|---|
As of Date | The History Data (i.e., AsofDate) for which the validation is run. (e.g., “2024-09-30T00:00:00”) |
Definition #
The following definition is an example, and must be edited or modified. This example defintion is only applicable to Assette Demo Environment and relevant Snowflake datasets.
response = "Account performance factors validation results"
AsofDate = params.get("AsofDate","")
object_blueprint_missing_factors = ["accountcode", "performancetype"]
object_blueprint_invalid_factors = ["accountcode", "historydate", "performancetype", "performancefactor"]
validation_results = []
# Retrieve account performance factors data
perf_factors_data = read("Source_Performance_Factors_All_Accounts",{"AsofDate":str(AsofDate)}).get("data",[])
if len(perf_factors_data) > 0:
output_list_missing_factors = []
## BEGIN TEMP Update some performance factor values into null for testing
for item in perf_factors_data:
if item["accountcode"] == "MWLFNDB7" and item["performancetype"] == "Portfolio Gross":
item["performancefactor"] = None
elif item["accountcode"] == "KRJEUULI":
item["performancefactor"] = np.NaN
## END TEMP Update some performance factor values into null for testing
perf_factors_data_df = pd.DataFrame(perf_factors_data)
missing_perf_factors_df = perf_factors_data_df[perf_factors_data_df["performancefactor"].isnull()]
output_list_missing_factors = missing_perf_factors_df[object_blueprint_missing_factors].drop_duplicates().to_dict(orient="records")
validation_results.append({
"asOfDate": AsofDate,
"code": "validate-missing-account-performance-factors",
"details": output_list_missing_factors
})
# Retrieve invalid account performance factors data
invalid_perf_factors_data = read("Source_InvalidAccountPerformanceFactors",{"AsofDate":str(AsofDate)}).get("data",[])
if len(invalid_perf_factors_data) > 0:
output_list_invalid_factors = []
invalid_perf_factors_data_df = pd.DataFrame(invalid_perf_factors_data)
output_list_invalid_factors = invalid_perf_factors_data_df[object_blueprint_invalid_factors].drop_duplicates().to_dict(orient="records")
validation_results.append({
"asOfDate": AsofDate,
"code": "validate-invalid-account-performance-factors",
"details": output_list_invalid_factors
})
response["data"] = []
response["values"] = {"validation_results": validation_results}
Example Request #
{
"AsofDate": "2024-09-30T00:00:00"
}
Example Response #
The following code shows an example response using the default values of the Data Block. The response may be shortened for brevity.
{
"data": [],
"values": {
"validation_results": [
{
"asOfDate": "2024-09-30T00:00:00",
"code": "validate-missing-account-performance-factors",
"details": [
{
"accountcode": "KRJEUULI",
"performancetype": "Portfolio Gross"
},
{
"accountcode": "KRJEUULI",
"performancetype": "Portfolio Net"
},
{
"accountcode": "MWLFNDB7",
"performancetype": "Portfolio Gross"
}
]
},
{
"asOfDate": "2024-09-30T00:00:00",
"code": "validate-invalid-account-performance-factors",
"details": [
{
"accountcode": "MWLFNDB7",
"historydate": "2024-09-30 00:00:00",
"performancetype": "Portfolio Net",
"performancefactor": -1.0008
}
]
}
]
},
"errors": [],
"success": true,
"logs": [],
"sources": []
}