diff --git a/docs/Aggregation/Pipeline/BucketScript.md b/docs/Aggregation/Pipeline/BucketScript.md
new file mode 100644
index 0000000000000000000000000000000000000000..689b4b9cde4fcff6afbec9cbe6da0bcee947950b
--- /dev/null
+++ b/docs/Aggregation/Pipeline/BucketScript.md
@@ -0,0 +1,88 @@
+# Bucket Script Aggregation
+
+> More info bucket script aggregation is in the [official elasticsearch docs][1]
+
+A parent pipeline aggregation which executes a script which can perform per bucket 
+computations on specified metrics in the parent multi-bucket aggregation. The specified 
+metric must be numeric and the script must return a numeric value.
+
+## Simple example
+
+```JSON
+{
+    "aggs" : {
+        "sales_per_month" : {
+            "date_histogram" : {
+                "field" : "date",
+                "interval" : "month"
+            },
+            "aggs": {
+                "total_sales": {
+                    "sum": {
+                        "field": "price"
+                    }
+                },
+                "t-shirts": {
+                  "filter": {
+                    "term": {
+                      "type": "t-shirt"
+                    }
+                  },
+                  "aggs": {
+                    "sales": {
+                      "sum": {
+                        "field": "price"
+                      }
+                    }
+                  }
+                },
+                "t-shirt-percentage": {
+                    "bucket_script": {
+                        "buckets_path": {
+                          "tShirtSales": "t-shirts>sales",
+                          "totalSales": "total_sales"
+                        },
+                        "script": "tShirtSales / totalSales * 100"
+                    }
+                }
+            }
+        }
+    }
+}
+```
+
+And now the query via DSL:
+
+```php
+$search = new Search();
+
+$dateAggregation = new DateHistogramAggregation('sales_per_month', 'date', 'month');
+$sumAggregation = new SumAggregation('total_sales', 'price');
+$filterAggregation = new FilterAggregation(
+    't-shirts',
+    new TermQuery('type', 't-shirt')
+);
+$filterAggregation->addAggregation(
+    new SumAggregation('ales', 'price')
+);
+$dateAggregation->addAggregation(
+    
+);
+$scriptAggregation = new BucketScriptAggregation(
+    't-shirt-percentage',
+    [
+        'tShirtSales' => 't-shirts>sales',
+        'totalSales'  => 'total_sales',
+    ]
+);
+$scriptAggregation->setScript('tShirtSales / totalSales * 100');
+$dateAggregation->addAggregation($sumAggregation);
+$dateAggregation->addAggregation($filterAggregation);
+$dateAggregation->addAggregation($scriptAggregation);
+
+$search->addAggregation($dateAggregation);
+
+$aggArray = $search->toArray();
+```
+
+[1]: https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-pipeline-bucket-script-aggregation.html
\ No newline at end of file