{"id":89058,"date":"2026-06-16T19:00:00","date_gmt":"2026-06-16T19:00:00","guid":{"rendered":"https:\/\/www.ampac1.com\/blog\/reverse-osmosis-system-calculators\/"},"modified":"2026-06-16T19:00:00","modified_gmt":"2026-06-16T19:00:00","slug":"reverse-osmosis-system-calculators","status":"publish","type":"post","link":"https:\/\/www.ampac1.com\/blog\/reverse-osmosis-system-calculators\/","title":{"rendered":"RO System Calculators: TDS Rejection, Flow Rate &#038; Membrane Life | AMPAC USA"},"content":{"rendered":"<p>Commercial and industrial water treatment decisions come down to numbers. Use these free calculators to size your RO system, estimate permeate quality, and project membrane replacement schedules \u2014 no login required.<\/p>\n<style>\n.calc-card {\n  background: #f8f9fa;\n  border: 1px solid #dee2e6;\n  border-radius: 6px;\n  padding: 24px;\n  margin-bottom: 32px;\n}\n.calc-card h3 {\n  margin-top: 0;\n  color: #1a3a5c;\n  border-bottom: 2px solid #0066cc;\n  padding-bottom: 8px;\n}\n.calc-row {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin-bottom: 16px;\n  align-items: flex-end;\n}\n.calc-field {\n  display: flex;\n  flex-direction: column;\n  min-width: 160px;\n  flex: 1;\n}\n.calc-field label {\n  font-size: 13px;\n  font-weight: 600;\n  color: #444;\n  margin-bottom: 4px;\n}\n.calc-field input, .calc-field select {\n  padding: 8px 10px;\n  border: 1px solid #ced4da;\n  border-radius: 4px;\n  font-size: 15px;\n}\n.calc-btn {\n  background: #0066cc;\n  color: #fff;\n  border: none;\n  padding: 10px 24px;\n  border-radius: 4px;\n  font-size: 15px;\n  cursor: pointer;\n  white-space: nowrap;\n}\n.calc-btn:hover { background: #004fa3; }\n.calc-result {\n  background: #fff;\n  border: 1px solid #0066cc;\n  border-radius: 4px;\n  padding: 16px 20px;\n  margin-top: 16px;\n  display: none;\n}\n.calc-result.show { display: block; }\n.result-grid {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin-top: 8px;\n}\n.result-item {\n  flex: 1;\n  min-width: 140px;\n  text-align: center;\n  background: #f0f6ff;\n  border-radius: 4px;\n  padding: 12px;\n}\n.result-item .result-val {\n  font-size: 26px;\n  font-weight: 700;\n  color: #0066cc;\n  line-height: 1;\n}\n.result-item .result-lbl {\n  font-size: 12px;\n  color: #666;\n  margin-top: 4px;\n}\n.result-note {\n  font-size: 13px;\n  color: #555;\n  margin-top: 12px;\n  line-height: 1.5;\n}\n.warn { color: #c0392b; font-weight: 600; }\n.ok { color: #1a7a3c; font-weight: 600; }\n.caution { color: #b87900; font-weight: 600; }\n<\/style>\n<h2>Calculator 1: RO Permeate TDS Estimator<\/h2>\n<p>Estimates the TDS of RO product water based on feed water TDS and membrane rejection rate. Use this to verify whether a proposed RO system will meet your target permeate quality.<\/p>\n<div class=\"calc-card\">\n<h3>TDS Rejection Calculator<\/h3>\n<div class=\"calc-row\">\n<div class=\"calc-field\">\n      <label>Feed Water TDS (ppm or mg\/L)<\/label><br \/>\n      <input type=\"number\" id=\"tds_feed\" min=\"1\" max=\"50000\" placeholder=\"e.g. 800\" \/>\n    <\/div>\n<div class=\"calc-field\">\n      <label>Membrane Rejection Rate (%)<\/label><br \/>\n      <select id=\"tds_rejection\"><option value=\"99.7\">99.7% \u2014 FILMTEC\u2122 BW30HR (high rejection)<\/option><option value=\"99.5\" selected>99.5% \u2014 FILMTEC\u2122 BW30 (standard commercial)<\/option><option value=\"99.0\">99.0% \u2014 Low-energy commercial membrane<\/option><option value=\"98.5\">98.5% \u2014 Aged membrane (estimate at 2\u20133 years)<\/option><option value=\"97.0\">97.0% \u2014 Aged membrane (4\u20135 years)<\/option><option value=\"99.4\">99.4% \u2014 FILMTEC\u2122 SW30 (seawater membrane)<\/option><option value=\"custom\">Custom rejection rate<\/option><\/select>\n    <\/div>\n<div class=\"calc-field\" id=\"custom_rejection_field\" style=\"display:none;\">\n      <label>Custom Rejection (%)<\/label><br \/>\n      <input type=\"number\" id=\"tds_rejection_custom\" min=\"80\" max=\"99.9\" step=\"0.1\" placeholder=\"e.g. 98.2\" \/>\n    <\/div>\n<div class=\"calc-field\" style=\"min-width:auto; flex:0;\">\n      <label>&nbsp;<\/label><br \/>\n      <button class=\"calc-btn\" onclick=\"calcTDS()\">Calculate<\/button>\n    <\/div>\n<\/p><\/div>\n<div class=\"calc-result\" id=\"tds_result\">\n    <strong>Results<\/strong><\/p>\n<div class=\"result-grid\">\n<div class=\"result-item\">\n<div class=\"result-val\" id=\"res_permeate\">\u2014<\/div>\n<div class=\"result-lbl\">Permeate TDS (ppm)<\/div>\n<\/p><\/div>\n<div class=\"result-item\">\n<div class=\"result-val\" id=\"res_removed\">\u2014<\/div>\n<div class=\"result-lbl\">TDS Removed (ppm)<\/div>\n<\/p><\/div>\n<div class=\"result-item\">\n<div class=\"result-val\" id=\"res_concentrate\">\u2014<\/div>\n<div class=\"result-lbl\">Concentrate TDS at 75% recovery (ppm)<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"result-note\" id=\"tds_note\"><\/div>\n<\/p><\/div>\n<\/div>\n<p><script>\ndocument.getElementById('tds_rejection').addEventListener('change', function() {\n  document.getElementById('custom_rejection_field').style.display =\n    this.value === 'custom' ? 'flex' : 'none';\n});<\/p>\n<p>function calcTDS() {\n  var feed = parseFloat(document.getElementById('tds_feed').value);\n  var rejSel = document.getElementById('tds_rejection').value;\n  var rej = rejSel === 'custom'\n    ? parseFloat(document.getElementById('tds_rejection_custom').value)\n    : parseFloat(rejSel);<\/p>\n<p>  if (!feed || feed <= 0 || !rej || rej <= 0 || rej >= 100) {\n    alert('Enter valid feed TDS and rejection rate.');\n    return;\n  }<\/p>\n<p>  var permeate = feed * (1 - rej \/ 100);\n  var removed = feed - permeate;\n  var recovery = 0.75;\n  var concentrate = (feed - permeate * recovery) \/ (1 - recovery);<\/p>\n<p>  document.getElementById('res_permeate').textContent = permeate.toFixed(1);\n  document.getElementById('res_removed').textContent = removed.toFixed(1);\n  document.getElementById('res_concentrate').textContent = Math.round(concentrate);<\/p>\n<p>  var note = '';\n  if (permeate <= 50) note = '<span class=\"ok\">\u2713 Excellent \u2014 suitable for pharmaceutical, lab, and semiconductor applications requiring &lt;50 ppm.<\/span>';\n  else if (permeate <= 150) note = '<span class=\"ok\">\u2713 Very good \u2014 suitable for most drinking water, beverage, and process water applications.<\/span>';\n  else if (permeate <= 300) note = '<span class=\"caution\">\u26a0 Acceptable for general process use. May need a second-pass RO or EDI polishing for food\/beverage or pharmaceutical applications.<\/span>';\n  else if (permeate <= 500) note = '<span class=\"caution\">\u26a0 Above typical drinking water targets. Consider a higher-rejection membrane or second-pass RO.<\/span>';\n  else note = '<span class=\"warn\">\u2717 Permeate TDS above 500 ppm \u2014 membrane rejection may be inadequate for this feed water. Evaluate higher-rejection membrane or double-pass RO.<\/span>';<\/p>\n<p>  if (concentrate > 4000) note += '<br \/><span class=\"warn\">\u26a0 Concentrate TDS above 4,000 ppm \u2014 scaling risk is elevated. Antiscalant dosing is recommended.<\/span>';<\/p>\n<p>  document.getElementById('tds_note').innerHTML = note;\n  document.getElementById('tds_result').classList.add('show');\n}\n<\/script><\/p>\n<h2>Calculator 2: RO System Flow Rate &#038; Capacity Converter<\/h2>\n<p>RO systems are rated in gallons per day (GPD) but operational planning often requires GPM, LPH, or m\u00b3\/day. This converter handles all common unit conversions plus temperature derating \u2014 because a system rated at 2,000 GPD at 77\u00b0F produces significantly less in cold climates.<\/p>\n<div class=\"calc-card\">\n<h3>Flow Rate Converter + Temperature Derating<\/h3>\n<div class=\"calc-row\">\n<div class=\"calc-field\">\n      <label>Rated System Capacity<\/label><br \/>\n      <input type=\"number\" id=\"flow_gpd\" min=\"1\" placeholder=\"e.g. 2000\" \/>\n    <\/div>\n<div class=\"calc-field\" style=\"min-width:130px; flex:0.5;\">\n      <label>Rated in<\/label><br \/>\n      <select id=\"flow_unit_in\"><option value=\"gpd\" selected>GPD (gallons\/day)<\/option><option value=\"gpm\">GPM (gallons\/min)<\/option><option value=\"lph\">LPH (liters\/hour)<\/option><option value=\"m3d\">m\u00b3\/day<\/option><\/select>\n    <\/div>\n<div class=\"calc-field\">\n      <label>Actual Feed Water Temp (\u00b0F)<\/label><br \/>\n      <input type=\"number\" id=\"flow_temp\" min=\"33\" max=\"95\" placeholder=\"e.g. 55\" \/>\n    <\/div>\n<div class=\"calc-field\" style=\"min-width:auto; flex:0;\">\n      <label>&nbsp;<\/label><br \/>\n      <button class=\"calc-btn\" onclick=\"calcFlow()\">Convert<\/button>\n    <\/div>\n<\/p><\/div>\n<div class=\"calc-result\" id=\"flow_result\">\n    <strong>Rated capacity converted:<\/strong><\/p>\n<div class=\"result-grid\">\n<div class=\"result-item\">\n<div class=\"result-val\" id=\"res_gpd\">\u2014<\/div>\n<div class=\"result-lbl\">GPD<\/div>\n<\/p><\/div>\n<div class=\"result-item\">\n<div class=\"result-val\" id=\"res_gpm\">\u2014<\/div>\n<div class=\"result-lbl\">GPM<\/div>\n<\/p><\/div>\n<div class=\"result-item\">\n<div class=\"result-val\" id=\"res_lph\">\u2014<\/div>\n<div class=\"result-lbl\">LPH<\/div>\n<\/p><\/div>\n<div class=\"result-item\">\n<div class=\"result-val\" id=\"res_m3d\">\u2014<\/div>\n<div class=\"result-lbl\">m\u00b3\/day<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"result-note\" id=\"flow_temp_note\" style=\"margin-top:16px;\"><\/div>\n<div class=\"result-grid\" id=\"flow_derated_grid\" style=\"display:none; margin-top:12px;\">\n<div class=\"result-item\">\n<div class=\"result-val\" id=\"res_derated_gpd\">\u2014<\/div>\n<div class=\"result-lbl\">Derated GPD at actual temp<\/div>\n<\/p><\/div>\n<div class=\"result-item\">\n<div class=\"result-val\" id=\"res_derated_gpm\">\u2014<\/div>\n<div class=\"result-lbl\">Derated GPM at actual temp<\/div>\n<\/p><\/div>\n<div class=\"result-item\">\n<div class=\"result-val\" id=\"res_derate_pct\">\u2014<\/div>\n<div class=\"result-lbl\">Output reduction (%)<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/div>\n<p><script>\nfunction calcFlow() {\n  var val = parseFloat(document.getElementById('flow_gpd').value);\n  var unitIn = document.getElementById('flow_unit_in').value;\n  var temp = parseFloat(document.getElementById('flow_temp').value);<\/p>\n<p>  if (!val || val <= 0) { alert('Enter a valid flow rate.'); return; }\n\n  \/\/ Convert input to GPD\n  var gpd;\n  if (unitIn === 'gpd') gpd = val;\n  else if (unitIn === 'gpm') gpd = val * 1440;\n  else if (unitIn === 'lph') gpd = val * 24 \/ 3.78541;\n  else if (unitIn === 'm3d') gpd = val * 264.172;\n\n  var gpm = gpd \/ 1440;\n  var lph = gpd * 3.78541 \/ 24;\n  var m3d = gpd \/ 264.172;\n\n  document.getElementById('res_gpd').textContent = Math.round(gpd).toLocaleString();\n  document.getElementById('res_gpm').textContent = gpm.toFixed(2);\n  document.getElementById('res_lph').textContent = Math.round(lph).toLocaleString();\n  document.getElementById('res_m3d').textContent = m3d.toFixed(2);\n\n  var noteEl = document.getElementById('flow_temp_note');\n  var dratedGrid = document.getElementById('flow_derated_grid');\n\n  if (temp &#038;&#038; temp > 0) {\n    \/\/ Standard test temp is 77\u00b0F (25\u00b0C). Derating: ~3% per \u00b0F below 77\u00b0F.\n    var tempDiff = 77 - temp;\n    var derateFactor = 1;\n    if (temp < 77) {\n      derateFactor = Math.max(0.4, 1 - (tempDiff * 0.03));\n    } else if (temp > 77) {\n      \/\/ Above 77\u00b0F, output increases slightly but membrane life decreases \u2014 cap benefit\n      derateFactor = Math.min(1.15, 1 + ((temp - 77) * 0.02));\n    }<\/p>\n<p>    var dratedGPD = gpd * derateFactor;\n    var dratedGPM = dratedGPD \/ 1440;\n    var deratePct = Math.abs((1 - derateFactor) * 100);<\/p>\n<p>    document.getElementById('res_derated_gpd').textContent = Math.round(dratedGPD).toLocaleString();\n    document.getElementById('res_derated_gpm').textContent = dratedGPM.toFixed(2);\n    document.getElementById('res_derate_pct').textContent =\n      (temp < 77 ? '-' : '+') + deratePct.toFixed(1) + '%';\n\n    if (temp < 50) {\n      noteEl.innerHTML = '<span class=\"warn\">\u26a0 Very cold feed water (' + temp + '\u00b0F). Output is significantly reduced from rated capacity. Size the system for your coldest winter temperature.<\/span>';\n    } else if (temp < 65) {\n      noteEl.innerHTML = '<span class=\"caution\">\u26a0 Feed water temperature (' + temp + '\u00b0F) is below standard test conditions (77\u00b0F). Actual output will be lower than rated capacity \u2014 see derated figures below.<\/span>';\n    } else if (temp === 77) {\n      noteEl.innerHTML = '<span class=\"ok\">\u2713 Feed water temperature matches standard test conditions (77\u00b0F). Rated capacity is achievable.<\/span>';\n    } else if (temp > 85) {\n      noteEl.innerHTML = '<span class=\"caution\">\u26a0 High feed water temperature (' + temp + '\u00b0F) increases output but accelerates membrane aging. Verify membrane operating temperature limit (typically 113\u00b0F \/ 45\u00b0C max).<\/span>';\n    } else {\n      noteEl.innerHTML = 'Temperature derating applied at ' + temp + '\u00b0F vs. standard 77\u00b0F test conditions.';\n    }\n    dratedGrid.style.display = 'flex';\n  } else {\n    noteEl.innerHTML = 'Enter feed water temperature to see temperature-derated actual output.';\n    dratedGrid.style.display = 'none';\n  }<\/p>\n<p>  document.getElementById('flow_result').classList.add('show');\n}\n<\/script><\/p>\n<h2>Calculator 3: RO Membrane Life Estimator<\/h2>\n<p>RO membranes typically last 3\u20137 years in commercial applications, but actual life varies widely based on feed water quality, pre-treatment, operating pressure, and maintenance practices. This estimator projects membrane replacement interval and cumulative replacement cost.<\/p>\n<div class=\"calc-card\">\n<h3>Membrane Life &amp; Replacement Cost Estimator<\/h3>\n<div class=\"calc-row\">\n<div class=\"calc-field\">\n      <label>Feed Water Source<\/label><br \/>\n      <select id=\"mem_source\"><option value=\"muni\">Municipal (chlorinated, treated)<\/option><option value=\"well_soft\">Well water \u2014 softened before RO<\/option><option value=\"well_hard\">Well water \u2014 no softener pre-treatment<\/option><option value=\"well_iron\">Well water \u2014 iron present (&gt;0.05 ppm)<\/option><option value=\"surface\">Surface water (lake, river)<\/option><option value=\"industrial\">Industrial wastewater \/ reclaim<\/option><\/select>\n    <\/div>\n<div class=\"calc-field\">\n      <label>Carbon Pre-Filter Maintenance<\/label><br \/>\n      <select id=\"mem_carbon\"><option value=\"good\">On schedule (every 3\u20136 months)<\/option><option value=\"late\">Often delayed (6\u201312 months)<\/option><option value=\"none\">Rarely or never replaced<\/option><\/select>\n    <\/div>\n<\/p><\/div>\n<div class=\"calc-row\">\n<div class=\"calc-field\">\n      <label>System Flushing \/ Auto-Flush<\/label><br \/>\n      <select id=\"mem_flush\"><option value=\"auto\">Automated flush cycle installed<\/option><option value=\"manual\">Manual flush performed monthly<\/option><option value=\"none\">No flushing program<\/option><\/select>\n    <\/div>\n<div class=\"calc-field\">\n      <label>Number of Membranes in System<\/label><br \/>\n      <input type=\"number\" id=\"mem_count\" min=\"1\" max=\"100\" placeholder=\"e.g. 4\" \/>\n    <\/div>\n<div class=\"calc-field\">\n      <label>Cost per Membrane ($)<\/label><br \/>\n      <input type=\"number\" id=\"mem_cost\" min=\"50\" max=\"5000\" placeholder=\"e.g. 350\" \/>\n    <\/div>\n<div class=\"calc-field\" style=\"min-width:auto; flex:0;\">\n      <label>&nbsp;<\/label><br \/>\n      <button class=\"calc-btn\" onclick=\"calcMembrane()\">Estimate<\/button>\n    <\/div>\n<\/p><\/div>\n<div class=\"calc-result\" id=\"mem_result\">\n    <strong>Membrane Life Estimate<\/strong><\/p>\n<div class=\"result-grid\">\n<div class=\"result-item\">\n<div class=\"result-val\" id=\"res_mem_life\">\u2014<\/div>\n<div class=\"result-lbl\">Estimated membrane life (years)<\/div>\n<\/p><\/div>\n<div class=\"result-item\">\n<div class=\"result-val\" id=\"res_mem_annual\">\u2014<\/div>\n<div class=\"result-lbl\">Annual membrane cost ($)<\/div>\n<\/p><\/div>\n<div class=\"result-item\">\n<div class=\"result-val\" id=\"res_mem_10yr\">\u2014<\/div>\n<div class=\"result-lbl\">10-year membrane cost ($)<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"result-note\" id=\"mem_note\"><\/div>\n<\/p><\/div>\n<\/div>\n<p><script>\nfunction calcMembrane() {\n  var source = document.getElementById('mem_source').value;\n  var carbon = document.getElementById('mem_carbon').value;\n  var flush = document.getElementById('mem_flush').value;\n  var count = parseInt(document.getElementById('mem_count').value);\n  var cost = parseFloat(document.getElementById('mem_cost').value);<\/p>\n<p>  if (!count || count <= 0) { alert('Enter number of membranes.'); return; }\n  if (!cost || cost <= 0) { alert('Enter cost per membrane.'); return; }\n\n  \/\/ Base life by source water\n  var baseLife = {\n    'muni': 5.0,\n    'well_soft': 6.0,\n    'well_hard': 3.5,\n    'well_iron': 1.5,\n    'surface': 3.0,\n    'industrial': 2.0\n  }[source];\n\n  \/\/ Carbon filter maintenance modifier\n  var carbonMod = { 'good': 0, 'late': -0.75, 'none': -1.5 }[carbon];\n\n  \/\/ Flushing modifier\n  var flushMod = { 'auto': 0.5, 'manual': 0, 'none': -0.5 }[flush];\n\n  var estLife = Math.max(0.5, baseLife + carbonMod + flushMod);\n  estLife = Math.round(estLife * 10) \/ 10;\n\n  var annualCost = (count * cost) \/ estLife;\n  var tenYrCost = annualCost * 10;\n\n  document.getElementById('res_mem_life').textContent = estLife.toFixed(1);\n  document.getElementById('res_mem_annual').textContent = '$' + Math.round(annualCost).toLocaleString();\n  document.getElementById('res_mem_10yr').textContent = '$' + Math.round(tenYrCost).toLocaleString();\n\n  var notes = [];\n  if (source === 'well_iron') notes.push('<span class=\"warn\">\u26a0 Iron above 0.05 ppm will foul TFC membranes rapidly. An iron pre-filter is required \u2014 membrane life estimate assumes it is eventually installed. Without it, membranes may fail within months.<\/span>');\n  if (source === 'well_hard') notes.push('<span class=\"caution\">\u26a0 Hard well water without a softener accelerates calcium carbonate scaling on the membrane. Adding a softener pre-stage could extend membrane life to 5\u20136 years and reduce 10-year cost by 40\u201350%.<\/span>');\n  if (carbon === 'none') notes.push('<span class=\"warn\">\u26a0 Failure to replace carbon pre-filters allows chlorine or chloramines to reach the TFC membrane, causing irreversible oxidative damage. This is one of the most preventable causes of early membrane failure.<\/span>');\n  if (flush === 'none') notes.push('<span class=\"caution\">\u26a0 Without periodic flushing, concentrate sits on the membrane surface during standby, accelerating biofouling and scaling. Auto-flush timers cost $50\u2013200 and can add 1\u20132 years to membrane life.<\/span>');\n  if (estLife >= 5.5) notes.push('<span class=\"ok\">\u2713 Good maintenance practices \u2014 expected membrane life is above average for commercial applications.<\/span>');<\/p>\n<p>  document.getElementById('mem_note').innerHTML = notes.join('<\/p>\n<p>');\n  document.getElementById('mem_result').classList.add('show');\n}\n<\/script><\/p>\n<h2>About These Calculators<\/h2>\n<p>These calculators use industry-standard formulas and FILMTEC\u2122 membrane performance data. Results are estimates based on standard operating assumptions:<\/p>\n<ul>\n<li><strong>TDS rejection calculator:<\/strong> Assumes new membrane at rated rejection; single-pass RO; 75% system recovery for concentrate TDS estimate.<\/li>\n<li><strong>Flow rate converter:<\/strong> Temperature derating uses the standard TCF (Temperature Correction Factor) approximation of ~3% output change per degree Fahrenheit from 77\u00b0F. Actual TCF varies by membrane model.<\/li>\n<li><strong>Membrane life estimator:<\/strong> Based on typical commercial installation data. Actual life depends on specific water chemistry, operating pressure, and maintenance program \u2014 a formal FILMTEC\u2122 system design using the ROSA software tool provides more precise projections for critical applications.<\/li>\n<\/ul>\n<p><strong>Need a system sized for your specific application?<\/strong> These calculators give you ballpark numbers \u2014 a complete system specification requires a water test and engineering review. <a href=\"\/contact\">Contact AMPAC USA<\/a> with your daily water demand, feed water source, and target permeate quality. We provide a complete system specification and quote within one business day.<\/p>\n<p><em>Related: <a href=\"\/blog\/how-to-choose-commercial-reverse-osmosis-system\/\">Commercial RO Buyer&#8217;s Guide<\/a> | <a href=\"\/blog\/commercial-ro-system-maintenance-guide\/\">RO Maintenance Guide<\/a> | <a href=\"\/products\/commercial-reverse-osmosis\">Commercial RO Systems<\/a><\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Commercial and industrial water treatment decisions come down to numbers. Use these free calculators to size your RO system, estimate permeate quality, and project membrane&#8230;<\/p>\n","protected":false},"author":0,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[497,496,1],"tags":[],"class_list":["post-89058","post","type-post","status-publish","format-standard","hentry","category-497","category-496","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/www.ampac1.com\/blog\/wp-json\/wp\/v2\/posts\/89058","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ampac1.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ampac1.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ampac1.com\/blog\/wp-json\/wp\/v2\/comments?post=89058"}],"version-history":[{"count":0,"href":"https:\/\/www.ampac1.com\/blog\/wp-json\/wp\/v2\/posts\/89058\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.ampac1.com\/blog\/wp-json\/wp\/v2\/media?parent=89058"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ampac1.com\/blog\/wp-json\/wp\/v2\/categories?post=89058"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ampac1.com\/blog\/wp-json\/wp\/v2\/tags?post=89058"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}