{
  "version": 1,
  "id": "po.wb.rp.tapered-rod-string",
  "name": "Tapered Rod String Analysis",
  "sheets": [
    {
      "name": "Guide",
      "cells": [
        {
          "ref": "A1",
          "value": "Tapered Rod String Analysis"
        },
        {
          "ref": "A3",
          "value": "What this workbook does"
        },
        {
          "ref": "A4",
          "value": "Calculates static loads, stress and stretch for a sucker rod string made of up to four rod sizes (a tapered string). Each taper is one row of the Rod String sheet, top taper first. For each taper it returns the rod area, the weight in air and in the well fluid, the load and the stress at the top of the taper, and the taper's stretch. For the whole string it returns the static peak and minimum polished rod loads, the highest rod stress and the total stretch."
        },
        {
          "ref": "A6",
          "value": "Method"
        },
        {
          "ref": "A7",
          "value": "Fluid load on the plunger = plunger area × net lift × fluid gradient. The net lift is the depth from surface to the fluid level in the annulus: the pump depth (the length of the rod string) less the fluid level above the pump. The fluid standing over the pump pushes up on the plunger from below, so only the column above that level loads it. The fluid gradient is 0.433 psi/ft × specific gravity."
        },
        {
          "ref": "A8",
          "value": "The top of each taper carries the fluid load plus the buoyant weight of that taper and of every taper below it. The top taper carries the whole string, so the load at its top is the static peak polished rod load, and the minimum polished rod load is the buoyant weight of the string. Stress is the load at the top of a taper divided by its rod area, which is where each rod size carries its highest load."
        },
        {
          "ref": "A9",
          "value": "A taper stretches under the fluid load, its own weight and the weight of the tapers hanging below it: (fluid load + weight below) × L / (A × E) + own weight × L / (2 × A × E), with E = 30,000,000 psi. Rod weights are taken in air, as PO.RP.Rod.Stretch.RodWeight does for a single-size string, so a string of one rod size gives the single-size result however it is split into rows."
        },
        {
          "ref": "A11",
          "value": "How to use it"
        },
        {
          "ref": "A12",
          "value": "1.  Rod String — edit the blue cells on a yellow background: plunger diameter, fluid level above the pump and specific gravity, then each taper's rod diameter and length, top taper first. The pump depth is the total length of the tapers. Leave unused taper rows blank."
        },
        {
          "ref": "A13",
          "value": "2.  The Rod String sheet prints on one page (File › Print)."
        },
        {
          "ref": "A15",
          "value": "Limits"
        },
        {
          "ref": "A16",
          "value": "•  Static loads only: no API RP 11L dynamic factors (rod acceleration and vibration) and no friction. In a running well the peak polished rod load is higher and the minimum lower than shown."
        },
        {
          "ref": "A17",
          "value": "•  No fatigue check (modified Goodman diagram) and no taper design from API tables: enter the taper lengths you want to check."
        },
        {
          "ref": "A19",
          "value": "Requirements"
        },
        {
          "ref": "A20",
          "value": "The workbook calls Petroleum Office functions (PO.RP.*). It opens with the example results already calculated; recalculating after an edit needs the Petroleum Office add-in."
        }
      ]
    },
    {
      "name": "Rod String",
      "cells": [
        {
          "ref": "A1",
          "value": "Tapered Rod String Analysis"
        },
        {
          "ref": "A2",
          "value": "Blue cells on a yellow background are inputs. Enter the tapers top first and leave unused rows blank. Static loads, field units — see the Guide sheet for the method and its limits."
        },
        {
          "ref": "A4",
          "value": "Well and fluid"
        },
        {
          "ref": "A5",
          "value": "Plunger diameter"
        },
        {
          "ref": "B5",
          "value": 1.5,
          "format": "0.000"
        },
        {
          "ref": "C5",
          "value": "in"
        },
        {
          "ref": "A6",
          "value": "Fluid level above pump"
        },
        {
          "ref": "B6",
          "value": 500,
          "format": "#,##0"
        },
        {
          "ref": "C6",
          "value": "ft"
        },
        {
          "ref": "A7",
          "value": "Fluid specific gravity"
        },
        {
          "ref": "B7",
          "value": 0.85,
          "format": "0.00"
        },
        {
          "ref": "C7",
          "value": "—"
        },
        {
          "ref": "A8",
          "value": "Pump depth (rod string length)"
        },
        {
          "ref": "B8",
          "formula": "=TRS_Length",
          "cached": 5000,
          "format": "#,##0"
        },
        {
          "ref": "C8",
          "value": "ft"
        },
        {
          "ref": "A9",
          "value": "Net lift (depth to fluid level)"
        },
        {
          "ref": "B9",
          "formula": "=TRS_Depth-TRS_Hsub",
          "cached": 4500,
          "format": "#,##0"
        },
        {
          "ref": "C9",
          "value": "ft"
        },
        {
          "ref": "A10",
          "value": "Fluid gradient (0.433 × SG)"
        },
        {
          "ref": "B10",
          "formula": "=0.433*TRS_SG",
          "cached": 0.36805,
          "format": "0.000"
        },
        {
          "ref": "C10",
          "value": "psi/ft"
        },
        {
          "ref": "A11",
          "value": "Plunger area"
        },
        {
          "ref": "B11",
          "formula": "=PI()*TRS_Dp^2/4",
          "cached": 1.7671458676442569,
          "format": "0.0000"
        },
        {
          "ref": "C11",
          "value": "in²"
        },
        {
          "ref": "A12",
          "value": "Fluid load on plunger"
        },
        {
          "ref": "B12",
          "formula": "=PO.RP.Load.FluidLoad(TRS_Ap,TRS_NetLift,TRS_G)",
          "cached": 2926.791164639109,
          "format": "#,##0"
        },
        {
          "ref": "C12",
          "value": "lb"
        },
        {
          "ref": "A14",
          "value": "Rod string — top taper first"
        },
        {
          "ref": "A15",
          "value": "Taper"
        },
        {
          "ref": "B15",
          "value": "Rod diameter"
        },
        {
          "ref": "C15",
          "value": "Length"
        },
        {
          "ref": "D15",
          "value": "Rod area"
        },
        {
          "ref": "E15",
          "value": "Weight in air"
        },
        {
          "ref": "F15",
          "value": "Buoyant weight"
        },
        {
          "ref": "G15",
          "value": "Air weight below"
        },
        {
          "ref": "H15",
          "value": "Load at top"
        },
        {
          "ref": "I15",
          "value": "Stress at top"
        },
        {
          "ref": "J15",
          "value": "Stretch"
        },
        {
          "ref": "B16",
          "value": "in"
        },
        {
          "ref": "C16",
          "value": "ft"
        },
        {
          "ref": "D16",
          "value": "in²"
        },
        {
          "ref": "E16",
          "value": "lb"
        },
        {
          "ref": "F16",
          "value": "lb"
        },
        {
          "ref": "G16",
          "value": "lb"
        },
        {
          "ref": "H16",
          "value": "lb"
        },
        {
          "ref": "I16",
          "value": "psi"
        },
        {
          "ref": "J16",
          "value": "in"
        },
        {
          "ref": "A17",
          "value": "Taper 1 (top)"
        },
        {
          "ref": "B17",
          "value": 0.875,
          "format": "0.000"
        },
        {
          "ref": "C17",
          "value": 2000,
          "format": "#,##0"
        },
        {
          "ref": "D17",
          "formula": "=IF($C17>0,PO.RP.Rod.Area($B17),\"\")",
          "cached": 0.6013204688511713,
          "format": "0.0000"
        },
        {
          "ref": "E17",
          "formula": "=IF($C17>0,PO.RP.Rod.Wair($D17,$C17),\"\")",
          "cached": 4084.1686244371554,
          "format": "#,##0"
        },
        {
          "ref": "F17",
          "formula": "=IF($C17>0,PO.RP.Rod.Wbuoy($E17,TRS_SG),\"\")",
          "cached": 3639.811078098393,
          "format": "#,##0"
        },
        {
          "ref": "G17",
          "formula": "=IF($C17>0,$E$21-SUM($E$17:$E17),\"\")",
          "cached": 4500.920524889925,
          "format": "#,##0"
        },
        {
          "ref": "H17",
          "formula": "=IF($C17>0,TRS_Fo+SUM($F17:$F$20),\"\")",
          "cached": 10577.822614519404,
          "format": "#,##0"
        },
        {
          "ref": "I17",
          "formula": "=IF($C17>0,PO.RP.Rod.MaxStress($H17,$D17),\"\")",
          "cached": 17590.990432653056,
          "format": "#,##0"
        },
        {
          "ref": "J17",
          "formula": "=IF($C17>0,PO.RP.Rod.Stretch.FluidLoad(TRS_Fo+$G17,$C17,$D17)+PO.RP.Rod.Stretch.RodWeight($E17,$C17,$D17),\"\")",
          "cached": 12.598667755102033,
          "format": "0.00"
        },
        {
          "ref": "A18",
          "value": "Taper 2"
        },
        {
          "ref": "B18",
          "value": 0.75,
          "format": "0.000"
        },
        {
          "ref": "C18",
          "value": 3000,
          "format": "#,##0"
        },
        {
          "ref": "D18",
          "formula": "=IF($C18>0,PO.RP.Rod.Area($B18),\"\")",
          "cached": 0.44178646691106466,
          "format": "0.0000"
        },
        {
          "ref": "E18",
          "formula": "=IF($C18>0,PO.RP.Rod.Wair($D18,$C18),\"\")",
          "cached": 4500.920524889926,
          "format": "#,##0"
        },
        {
          "ref": "F18",
          "formula": "=IF($C18>0,PO.RP.Rod.Wbuoy($E18,TRS_SG),\"\")",
          "cached": 4011.220371781902,
          "format": "#,##0"
        },
        {
          "ref": "G18",
          "formula": "=IF($C18>0,$E$21-SUM($E$17:$E18),\"\")",
          "cached": 0,
          "format": "#,##0"
        },
        {
          "ref": "H18",
          "formula": "=IF($C18>0,TRS_Fo+SUM($F18:$F$20),\"\")",
          "cached": 6938.0115364210105,
          "format": "#,##0"
        },
        {
          "ref": "I18",
          "formula": "=IF($C18>0,PO.RP.Rod.MaxStress($H18,$D18),\"\")",
          "cached": 15704.44559999999,
          "format": "#,##0"
        },
        {
          "ref": "J18",
          "formula": "=IF($C18>0,PO.RP.Rod.Stretch.FluidLoad(TRS_Fo+$G18,$C18,$D18)+PO.RP.Rod.Stretch.RodWeight($E18,$C18,$D18),\"\")",
          "cached": 14.06267999999999,
          "format": "0.00"
        },
        {
          "ref": "A19",
          "value": "Taper 3"
        },
        {
          "ref": "D19",
          "formula": "=IF($C19>0,PO.RP.Rod.Area($B19),\"\")",
          "cached": "",
          "format": "0.0000"
        },
        {
          "ref": "E19",
          "formula": "=IF($C19>0,PO.RP.Rod.Wair($D19,$C19),\"\")",
          "cached": "",
          "format": "#,##0"
        },
        {
          "ref": "F19",
          "formula": "=IF($C19>0,PO.RP.Rod.Wbuoy($E19,TRS_SG),\"\")",
          "cached": "",
          "format": "#,##0"
        },
        {
          "ref": "G19",
          "formula": "=IF($C19>0,$E$21-SUM($E$17:$E19),\"\")",
          "cached": "",
          "format": "#,##0"
        },
        {
          "ref": "H19",
          "formula": "=IF($C19>0,TRS_Fo+SUM($F19:$F$20),\"\")",
          "cached": "",
          "format": "#,##0"
        },
        {
          "ref": "I19",
          "formula": "=IF($C19>0,PO.RP.Rod.MaxStress($H19,$D19),\"\")",
          "cached": "",
          "format": "#,##0"
        },
        {
          "ref": "J19",
          "formula": "=IF($C19>0,PO.RP.Rod.Stretch.FluidLoad(TRS_Fo+$G19,$C19,$D19)+PO.RP.Rod.Stretch.RodWeight($E19,$C19,$D19),\"\")",
          "cached": "",
          "format": "0.00"
        },
        {
          "ref": "A20",
          "value": "Taper 4"
        },
        {
          "ref": "D20",
          "formula": "=IF($C20>0,PO.RP.Rod.Area($B20),\"\")",
          "cached": "",
          "format": "0.0000"
        },
        {
          "ref": "E20",
          "formula": "=IF($C20>0,PO.RP.Rod.Wair($D20,$C20),\"\")",
          "cached": "",
          "format": "#,##0"
        },
        {
          "ref": "F20",
          "formula": "=IF($C20>0,PO.RP.Rod.Wbuoy($E20,TRS_SG),\"\")",
          "cached": "",
          "format": "#,##0"
        },
        {
          "ref": "G20",
          "formula": "=IF($C20>0,$E$21-SUM($E$17:$E20),\"\")",
          "cached": "",
          "format": "#,##0"
        },
        {
          "ref": "H20",
          "formula": "=IF($C20>0,TRS_Fo+SUM($F20:$F$20),\"\")",
          "cached": "",
          "format": "#,##0"
        },
        {
          "ref": "I20",
          "formula": "=IF($C20>0,PO.RP.Rod.MaxStress($H20,$D20),\"\")",
          "cached": "",
          "format": "#,##0"
        },
        {
          "ref": "J20",
          "formula": "=IF($C20>0,PO.RP.Rod.Stretch.FluidLoad(TRS_Fo+$G20,$C20,$D20)+PO.RP.Rod.Stretch.RodWeight($E20,$C20,$D20),\"\")",
          "cached": "",
          "format": "0.00"
        },
        {
          "ref": "A21",
          "value": "Total"
        },
        {
          "ref": "C21",
          "formula": "=SUM(C17:C20)",
          "cached": 5000,
          "format": "#,##0"
        },
        {
          "ref": "E21",
          "formula": "=SUM(E17:E20)",
          "cached": 8585.089149327081,
          "format": "#,##0"
        },
        {
          "ref": "F21",
          "formula": "=SUM(F17:F20)",
          "cached": 7651.0314498802945,
          "format": "#,##0"
        },
        {
          "ref": "J21",
          "formula": "=SUM(J17:J20)",
          "cached": 26.66134775510202,
          "format": "0.00"
        },
        {
          "ref": "A23",
          "value": "String summary"
        },
        {
          "ref": "A24",
          "value": "Peak polished rod load (static)"
        },
        {
          "ref": "B24",
          "formula": "=PO.RP.Load.PPRL.Simple(TRS_Wbuoy,TRS_Fo)",
          "cached": 10577.822614519404,
          "format": "#,##0"
        },
        {
          "ref": "C24",
          "value": "lb"
        },
        {
          "ref": "A25",
          "value": "Minimum polished rod load (static)"
        },
        {
          "ref": "B25",
          "formula": "=PO.RP.Load.MPRL.Simple(TRS_Wbuoy)",
          "cached": 7651.0314498802945,
          "format": "#,##0"
        },
        {
          "ref": "C25",
          "value": "lb"
        },
        {
          "ref": "A26",
          "value": "Highest rod stress"
        },
        {
          "ref": "B26",
          "formula": "=MAX(I17:I20)",
          "cached": 17590.990432653056,
          "format": "#,##0"
        },
        {
          "ref": "C26",
          "value": "psi"
        },
        {
          "ref": "A27",
          "value": "Total static stretch"
        },
        {
          "ref": "B27",
          "formula": "=J21",
          "cached": 26.66134775510202,
          "format": "0.00"
        },
        {
          "ref": "C27",
          "value": "in"
        }
      ]
    }
  ],
  "namedRanges": [
    {
      "name": "TRS_Ap",
      "refersTo": "'Rod String'!$B$11"
    },
    {
      "name": "TRS_Depth",
      "refersTo": "'Rod String'!$B$8"
    },
    {
      "name": "TRS_Diameters",
      "refersTo": "'Rod String'!$B$17:$B$20"
    },
    {
      "name": "TRS_Dp",
      "refersTo": "'Rod String'!$B$5"
    },
    {
      "name": "TRS_Fo",
      "refersTo": "'Rod String'!$B$12"
    },
    {
      "name": "TRS_G",
      "refersTo": "'Rod String'!$B$10"
    },
    {
      "name": "TRS_Hsub",
      "refersTo": "'Rod String'!$B$6"
    },
    {
      "name": "TRS_Length",
      "refersTo": "'Rod String'!$C$21"
    },
    {
      "name": "TRS_Lengths",
      "refersTo": "'Rod String'!$C$17:$C$20"
    },
    {
      "name": "TRS_MPRL",
      "refersTo": "'Rod String'!$B$25"
    },
    {
      "name": "TRS_MaxStress",
      "refersTo": "'Rod String'!$B$26"
    },
    {
      "name": "TRS_NetLift",
      "refersTo": "'Rod String'!$B$9"
    },
    {
      "name": "TRS_PPRL",
      "refersTo": "'Rod String'!$B$24"
    },
    {
      "name": "TRS_SG",
      "refersTo": "'Rod String'!$B$7"
    },
    {
      "name": "TRS_Stretch",
      "refersTo": "'Rod String'!$B$27"
    },
    {
      "name": "TRS_Wbuoy",
      "refersTo": "'Rod String'!$F$21"
    }
  ],
  "namedLambdas": [],
  "charts": [],
  "shapes": [],
  "pictures": [],
  "connectors": [],
  "conditionalFormats": [],
  "sparklineGroups": [],
  "functions": [
    "PO.RP.Load.FluidLoad",
    "PO.RP.Load.MPRL.Simple",
    "PO.RP.Load.PPRL.Simple",
    "PO.RP.Rod.Area",
    "PO.RP.Rod.MaxStress",
    "PO.RP.Rod.Stretch.FluidLoad",
    "PO.RP.Rod.Stretch.RodWeight",
    "PO.RP.Rod.Wair",
    "PO.RP.Rod.Wbuoy"
  ]
}