diff --git a/icing/icing-search-engine_search_test.cc b/icing/icing-search-engine_search_test.cc
index dc31ff0..f1b49fb 100644
--- a/icing/icing-search-engine_search_test.cc
+++ b/icing/icing-search-engine_search_test.cc
@@ -5031,7 +5031,7 @@
   parent_scoring_spec.set_rank_by(
       ScoringSpecProto::RankingStrategy::ADVANCED_SCORING_EXPRESSION);
   parent_scoring_spec.set_advanced_scoring_expression(
-      "this.documentScore() * sum(this.childrenScores())");
+      "this.documentScore() * sum(this.childrenRankingSignals())");
   const int32_t exp_person1_score =
       person1_doc_score * (exp_email1_score + exp_email2_score);
   const int32_t exp_person2_score = person2_doc_score * exp_email3_score;
diff --git a/icing/scoring/advanced_scoring/advanced-scorer_test.cc b/icing/scoring/advanced_scoring/advanced-scorer_test.cc
index 65d4cff..f7a0670 100644
--- a/icing/scoring/advanced_scoring/advanced-scorer_test.cc
+++ b/icing/scoring/advanced_scoring/advanced-scorer_test.cc
@@ -540,7 +540,7 @@
   ICING_ASSERT_OK_AND_ASSIGN(
       std::unique_ptr<AdvancedScorer> scorer,
       AdvancedScorer::Create(
-          CreateAdvancedScoringSpec("len(this.childrenScores())"),
+          CreateAdvancedScoringSpec("len(this.childrenRankingSignals())"),
           default_score, document_store_.get(), schema_store_.get(), &fetcher));
   // document_id_1 has two children.
   EXPECT_THAT(scorer->GetScore(docHitInfo1, /*query_it=*/nullptr), Eq(2));
@@ -552,7 +552,7 @@
   ICING_ASSERT_OK_AND_ASSIGN(
       scorer,
       AdvancedScorer::Create(
-          CreateAdvancedScoringSpec("sum(this.childrenScores())"),
+          CreateAdvancedScoringSpec("sum(this.childrenRankingSignals())"),
           default_score, document_store_.get(), schema_store_.get(), &fetcher));
   // document_id_1 has two children with scores 1 and 2.
   EXPECT_THAT(scorer->GetScore(docHitInfo1, /*query_it=*/nullptr), Eq(3));
@@ -564,7 +564,7 @@
   ICING_ASSERT_OK_AND_ASSIGN(
       scorer,
       AdvancedScorer::Create(
-          CreateAdvancedScoringSpec("avg(this.childrenScores())"),
+          CreateAdvancedScoringSpec("avg(this.childrenRankingSignals())"),
           default_score, document_store_.get(), schema_store_.get(), &fetcher));
   // document_id_1 has two children with scores 1 and 2.
   EXPECT_THAT(scorer->GetScore(docHitInfo1, /*query_it=*/nullptr), Eq(3 / 2.));
@@ -579,8 +579,9 @@
       scorer,
       AdvancedScorer::Create(
           CreateAdvancedScoringSpec(
-              // Equivalent to "avg(this.childrenScores())"
-              "sum(this.childrenScores()) / len(this.childrenScores())"),
+              // Equivalent to "avg(this.childrenRankingSignals())"
+              "sum(this.childrenRankingSignals()) / "
+              "len(this.childrenRankingSignals())"),
           default_score, document_store_.get(), schema_store_.get(), &fetcher));
   // document_id_1 has two children with scores 1 and 2.
   EXPECT_THAT(scorer->GetScore(docHitInfo1, /*query_it=*/nullptr), Eq(3 / 2.));
@@ -750,23 +751,24 @@
 TEST_F(AdvancedScorerTest, InvalidChildrenScoresFunctionScoreExpression) {
   const double default_score = 123;
 
-  // Without join_children_fetcher provided, "len(this.childrenScores())" cannot
-  // be created.
-  EXPECT_THAT(AdvancedScorer::Create(
-                  CreateAdvancedScoringSpec("len(this.childrenScores())"),
-                  default_score, document_store_.get(), schema_store_.get(),
-                  /*join_children_fetcher=*/nullptr),
-              StatusIs(libtextclassifier3::StatusCode::INVALID_ARGUMENT));
+  // Without join_children_fetcher provided,
+  // "len(this.childrenRankingSignals())" cannot be created.
+  EXPECT_THAT(
+      AdvancedScorer::Create(
+          CreateAdvancedScoringSpec("len(this.childrenRankingSignals())"),
+          default_score, document_store_.get(), schema_store_.get(),
+          /*join_children_fetcher=*/nullptr),
+      StatusIs(libtextclassifier3::StatusCode::INVALID_ARGUMENT));
 
   // The root expression can only be of double type, but here it is of list
   // type.
   JoinChildrenFetcher fake_fetcher(JoinSpecProto::default_instance(),
                                    /*map_joinable_qualified_id=*/{});
-  EXPECT_THAT(
-      AdvancedScorer::Create(CreateAdvancedScoringSpec("this.childrenScores()"),
-                             default_score, document_store_.get(),
-                             schema_store_.get(), &fake_fetcher),
-      StatusIs(libtextclassifier3::StatusCode::INVALID_ARGUMENT));
+  EXPECT_THAT(AdvancedScorer::Create(
+                  CreateAdvancedScoringSpec("this.childrenRankingSignals()"),
+                  default_score, document_store_.get(), schema_store_.get(),
+                  &fake_fetcher),
+              StatusIs(libtextclassifier3::StatusCode::INVALID_ARGUMENT));
 }
 
 TEST_F(AdvancedScorerTest, ComplexExpression) {
diff --git a/icing/scoring/advanced_scoring/score-expression.cc b/icing/scoring/advanced_scoring/score-expression.cc
index 3851660..7a16135 100644
--- a/icing/scoring/advanced_scoring/score-expression.cc
+++ b/icing/scoring/advanced_scoring/score-expression.cc
@@ -422,31 +422,33 @@
 }
 
 libtextclassifier3::StatusOr<
-    std::unique_ptr<ChildrenScoresFunctionScoreExpression>>
-ChildrenScoresFunctionScoreExpression::Create(
+    std::unique_ptr<ChildrenRankingSignalsFunctionScoreExpression>>
+ChildrenRankingSignalsFunctionScoreExpression::Create(
     std::vector<std::unique_ptr<ScoreExpression>> args,
     const JoinChildrenFetcher* join_children_fetcher) {
   if (args.size() != 1) {
     return absl_ports::InvalidArgumentError(
-        "childrenScores must have 1 argument.");
+        "childrenRankingSignals must have 1 argument.");
   }
   ICING_RETURN_IF_ERROR(CheckChildrenNotNull(args));
 
   if (args[0]->type() != ScoreExpressionType::kDocument) {
     return absl_ports::InvalidArgumentError(
-        "childrenScores must take \"this\" as its argument.");
+        "childrenRankingSignals must take \"this\" as its argument.");
   }
   if (join_children_fetcher == nullptr) {
     return absl_ports::InvalidArgumentError(
-        "childrenScores must only be used with join, but JoinChildrenFetcher "
+        "childrenRankingSignals must only be used with join, but "
+        "JoinChildrenFetcher "
         "is not provided.");
   }
-  return std::unique_ptr<ChildrenScoresFunctionScoreExpression>(
-      new ChildrenScoresFunctionScoreExpression(*join_children_fetcher));
+  return std::unique_ptr<ChildrenRankingSignalsFunctionScoreExpression>(
+      new ChildrenRankingSignalsFunctionScoreExpression(
+          *join_children_fetcher));
 }
 
 libtextclassifier3::StatusOr<std::vector<double>>
-ChildrenScoresFunctionScoreExpression::eval_list(
+ChildrenRankingSignalsFunctionScoreExpression::eval_list(
     const DocHitInfo& hit_info, const DocHitInfoIterator* query_it) const {
   ICING_ASSIGN_OR_RETURN(
       std::vector<ScoredDocumentHit> children_hits,
diff --git a/icing/scoring/advanced_scoring/score-expression.h b/icing/scoring/advanced_scoring/score-expression.h
index ad719fe..3c721bf 100644
--- a/icing/scoring/advanced_scoring/score-expression.h
+++ b/icing/scoring/advanced_scoring/score-expression.h
@@ -275,16 +275,16 @@
   double default_score_;
 };
 
-class ChildrenScoresFunctionScoreExpression : public ScoreExpression {
+class ChildrenRankingSignalsFunctionScoreExpression : public ScoreExpression {
  public:
-  static constexpr std::string_view kFunctionName = "childrenScores";
+  static constexpr std::string_view kFunctionName = "childrenRankingSignals";
 
   // RETURNS:
-  //   - A ChildrenScoresFunctionScoreExpression instance on success.
+  //   - A ChildrenRankingSignalsFunctionScoreExpression instance on success.
   //   - FAILED_PRECONDITION on any null pointer in children.
   //   - INVALID_ARGUMENT on type errors.
   static libtextclassifier3::StatusOr<
-      std::unique_ptr<ChildrenScoresFunctionScoreExpression>>
+      std::unique_ptr<ChildrenRankingSignalsFunctionScoreExpression>>
   Create(std::vector<std::unique_ptr<ScoreExpression>> args,
          const JoinChildrenFetcher* join_children_fetcher);
 
@@ -297,7 +297,7 @@
   }
 
  private:
-  explicit ChildrenScoresFunctionScoreExpression(
+  explicit ChildrenRankingSignalsFunctionScoreExpression(
       const JoinChildrenFetcher& join_children_fetcher)
       : join_children_fetcher_(join_children_fetcher) {}
   const JoinChildrenFetcher& join_children_fetcher_;
diff --git a/icing/scoring/advanced_scoring/scoring-visitor.cc b/icing/scoring/advanced_scoring/scoring-visitor.cc
index b3b831c..14bc4d5 100644
--- a/icing/scoring/advanced_scoring/scoring-visitor.cc
+++ b/icing/scoring/advanced_scoring/scoring-visitor.cc
@@ -105,9 +105,9 @@
     expression = RelevanceScoreFunctionScoreExpression::Create(
         std::move(args), &bm25f_calculator_, default_score_);
   } else if (function_name ==
-             ChildrenScoresFunctionScoreExpression::kFunctionName) {
-    // childrenScores function
-    expression = ChildrenScoresFunctionScoreExpression::Create(
+             ChildrenRankingSignalsFunctionScoreExpression::kFunctionName) {
+    // childrenRankingSignals function
+    expression = ChildrenRankingSignalsFunctionScoreExpression::Create(
         std::move(args), join_children_fetcher_);
   } else if (function_name ==
              PropertyWeightsFunctionScoreExpression::kFunctionName) {
diff --git a/synced_AOSP_CL_number.txt b/synced_AOSP_CL_number.txt
index 8e176f8..e53b3d1 100644
--- a/synced_AOSP_CL_number.txt
+++ b/synced_AOSP_CL_number.txt
@@ -1 +1 @@
-set(synced_AOSP_CL_number=533319030)
+set(synced_AOSP_CL_number=533597029)
