{"id":29833,"date":"2026-06-15T10:35:37","date_gmt":"2026-06-15T10:35:37","guid":{"rendered":"https:\/\/support.buildsoft.eu\/?post_type=ht_kb&#038;p=29833"},"modified":"2026-06-15T10:36:04","modified_gmt":"2026-06-15T10:36:04","slug":"online-creep-coefficient-calculator","status":"publish","type":"ht_kb","link":"https:\/\/support.buildsoft.eu\/es\/knowledge-base\/online-creep-coefficient-calculator\/","title":{"rendered":"Online creep coefficient calculator"},"content":{"rendered":"\n<script src=\"https:\/\/code.jquery.com\/jquery-3.7.1.min.js\"><\/script> \n <style>\n    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\n\n    body {\n      font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n      font-size: 15px;\n      background: #f4f4f2;\n      color: #1a1a1a;\n      padding: 2rem 1rem;\n      line-height: 1.6;\n    }\n\n    .container {\n      max-width: 820px;\n      margin: 0 auto;\n      background: #fff;\n      border-radius: 12px;\n      border: 1px solid #e0dfd8;\n      padding: 2rem 2.5rem;\n    }\n\n    h1 {\n      font-size: 20px;\n      font-weight: 500;\n      margin-bottom: 4px;\n      color: #111;\n    }\n\n    .subtitle {\n      font-size: 13px;\n      color: #666;\n      margin-bottom: 1.75rem;\n    }\n\n    \/* \u2500\u2500 Form grid \u2500\u2500 *\/\n    .form-grid {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));\n      gap: 14px;\n      margin-bottom: 1.5rem;\n    }\n\n    .field {\n      display: flex;\n      flex-direction: column;\n      gap: 5px;\n    }\n\n    .field label {\n      font-size: 13px;\n      color: #555;\n    }\n\n    .field label em {\n      font-style: italic;\n      color: #111;\n    }\n\n    .field label .unit {\n      font-size: 11px;\n      color: #888;\n    }\n\n    .field input,\n    .field select {\n      height: 38px;\n      padding: 0 10px;\n      border: 1px solid #ccc;\n      border-radius: 7px;\n      font-size: 14px;\n      color: #111;\n      background: #fff;\n      outline: none;\n      transition: border-color 0.15s;\n      width: 100%;\n    }\n\n    .field input:focus,\n    .field select:focus {\n      border-color: #5046e4;\n      box-shadow: 0 0 0 3px rgba(80,70,228,0.12);\n    }\n\n    .field input.error {\n      border-color: #e24b4a;\n    }\n\n    \/* \u2500\u2500 Divider \u2500\u2500 *\/\n    .divider {\n      height: 1px;\n      background: #eee;\n      margin: 1.5rem 0;\n    }\n\n    \/* \u2500\u2500 Result area \u2500\u2500 *\/\n    .result-area {\n      background: #f7f6f2;\n      border-radius: 10px;\n      padding: 1.25rem 1.5rem;\n      border: 1px solid #e5e4dc;\n    }\n\n    .result-main {\n      display: flex;\n      align-items: baseline;\n      gap: 10px;\n      margin-bottom: 1rem;\n      min-height: 42px;\n    }\n\n    .result-label {\n      font-size: 15px;\n      color: #555;\n    }\n\n    .result-value {\n      font-size: 36px;\n      font-weight: 500;\n      color: #111;\n      letter-spacing: -0.5px;\n    }\n\n    .result-placeholder {\n      font-size: 15px;\n      color: #999;\n      font-style: italic;\n    }\n\n    \/* \u2500\u2500 Intermediate steps grid \u2500\u2500 *\/\n    .steps-grid {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));\n      gap: 8px;\n      margin-top: 0.5rem;\n    }\n\n    .step-card {\n      background: #fff;\n      border: 1px solid #e5e4dc;\n      border-radius: 8px;\n      padding: 10px 12px;\n    }\n\n    .step-card .sc-label {\n      font-size: 11px;\n      color: #888;\n      margin-bottom: 2px;\n    }\n\n    .step-card .sc-value {\n      font-size: 15px;\n      font-weight: 500;\n      color: #111;\n    }\n\n    .step-card .sc-ref {\n      font-size: 11px;\n      color: #aaa;\n      margin-top: 1px;\n    }\n\n    \/* \u2500\u2500 Notices \u2500\u2500 *\/\n    .notice {\n      font-size: 12px;\n      border-radius: 7px;\n      padding: 7px 11px;\n      margin-top: 10px;\n      display: none;\n    }\n\n    .notice.warn  { background: #faeeda; color: #7a4b08; border: 1px solid #f5c97a; }\n    .notice.error { background: #fcebeb; color: #8b2020; border: 1px solid #f5b3b3; }\n\n    \/* \u2500\u2500 Footer \u2500\u2500 *\/\n    .footer {\n      margin-top: 1.5rem;\n      font-size: 12px;\n      color: #aaa;\n      text-align: center;\n    }\n  <\/style>\n<div class=\"container\">\n  <h3>Creep Coefficient &phi;(t, t&#8320;)<\/h3>\n  <p class=\"subtitle\">Eurocode EN 1992-1-1:2004 &mdash; Annex B, Equations B.1 &ndash; B.9<\/p>\n\n  <div class=\"form-grid\">\n\n    <div class=\"field\">\n      <label for=\"t0\"><em>t&#8320;<\/em> &mdash; Age at loading <span class=\"unit\">[days]<\/span><\/label>\n      <input type=\"number\" id=\"t0\" value=\"28\" min=\"1\" step=\"1\" placeholder=\"28\" \/>\n    <\/div>\n\n    <div class=\"field\">\n      <label for=\"t\"><em>t<\/em> &mdash; Age considered <span class=\"unit\">[days]<\/span><\/label>\n      <input type=\"number\" id=\"t\" value=\"\" min=\"1\" step=\"1\" placeholder=\"e.g. 18250\" \/>\n    <\/div>\n\n    <div class=\"field\">\n      <label for=\"fck\"><em>f<sub>ck<\/sub><\/em> &mdash; Char. strength <span class=\"unit\">[N\/mm&sup2;]<\/span><\/label>\n      <input type=\"number\" id=\"fck\" value=\"\" min=\"12\" max=\"90\" step=\"1\" placeholder=\"e.g. 30\" \/>\n    <\/div>\n\n    <div class=\"field\">\n      <label for=\"rh\"><em>RH<\/em> &mdash; Relative humidity <span class=\"unit\">[%]<\/span><\/label>\n      <input type=\"number\" id=\"rh\" value=\"50\" min=\"40\" max=\"100\" step=\"1\" placeholder=\"50\" \/>\n    <\/div>\n\n    <div class=\"field\">\n      <label for=\"u\"><em>u<\/em> &mdash; Exposed perimeter <span class=\"unit\">[mm]<\/span><\/label>\n      <input type=\"number\" id=\"u\" value=\"\" min=\"1\" step=\"1\" placeholder=\"e.g. 1200\" \/>\n    <\/div>\n\n    <div class=\"field\">\n      <label for=\"ac\"><em>A<sub>c<\/sub><\/em> &mdash; Cross-section area <span class=\"unit\">[mm&sup2;]<\/span><\/label>\n      <input type=\"number\" id=\"ac\" value=\"\" min=\"1\" step=\"1\" placeholder=\"e.g. 90000\" \/>\n    <\/div>\n\n    <div class=\"field\">\n      <label for=\"cement\">Cement class<\/label>\n      <select id=\"cement\">\n        <option value=\"S\">S &mdash; slow (&alpha; = &minus;1)<\/option>\n        <option value=\"N\" selected>N &mdash; normal (&alpha; = 0)<\/option>\n        <option value=\"R\">R &mdash; rapid (&alpha; = +1)<\/option>\n      <\/select>\n    <\/div>\n\n  <\/div><!-- \/.form-grid -->\n\n  <div class=\"divider\"><\/div>\n\n  <div class=\"result-area\">\n    <div class=\"result-main\" id=\"result-main\">\n      <span class=\"result-placeholder\">Fill in all fields to see &phi;(t, t&#8320;)<\/span>\n    <\/div>\n    <div class=\"steps-grid\" id=\"steps-grid\" style=\"display:none;\"><\/div>\n    <div class=\"notice warn\"  id=\"warn-msg\"><\/div>\n    <div class=\"notice error\" id=\"err-msg\"><\/div>\n  <\/div>\n\n  <p class=\"footer\">Reference: EN 1992-1-1:2004 Annex B &mdash; Basic equations for determining the creep coefficient<\/p>\n<\/div><!-- \/.container -->\n\n\n<script>\n\/**\n * Eurocode EN 1992-1-1 Annex B\n * Creep Coefficient \u03c6(t, t\u2080) Calculator\n *\n * Equations implemented:\n *   B.1  \u03c6(t,t\u2080) = \u03c6\u2080 \u00b7 \u03b2c(t,t\u2080)\n *   B.2  \u03c6\u2080      = \u03c6RH \u00b7 \u03b2(fcm) \u00b7 \u03b2(t\u2080)\n *   B.3a \u03c6RH     (fcm \u2264 35 MPa)\n *   B.3b \u03c6RH     (fcm > 35 MPa)\n *   B.4  \u03b2(fcm)  = 16.8 \/ \u221afcm\n *   B.5  \u03b2(t\u2080)   = 1 \/ (0.1 + t\u2080^0.2)\n *   B.6  h\u2080      = 2Ac \/ u\n *   B.7  \u03b2c(t,t\u2080)\n *   B.8a \u03b2H      (fcm \u2264 35 MPa)\n *   B.8b \u03b2H      (fcm \u2265 35 MPa)\n *   B.8c \u03b1\u2081, \u03b1\u2082, \u03b1\u2083\n *   B.9  t\u2080 adjusted for cement class\n *\/\n\n$(function () {\n\n  \/* \u2500\u2500 bind all inputs \u2500\u2500 *\/\n  $('#t0, #t, #fck, #rh, #u, #ac, #cement').on('input change', calculate);\n\n  function calculate() {\n\n    var t0_raw = parseFloat($('#t0').val());\n    var t      = parseFloat($('#t').val());\n    var fck    = parseFloat($('#fck').val());\n    var RH     = parseFloat($('#rh').val());\n    var u      = parseFloat($('#u').val());\n    var Ac     = parseFloat($('#ac').val());\n    var cement = $('#cement').val();\n\n    var $resultMain = $('#result-main');\n    var $stepsGrid  = $('#steps-grid');\n    var $warnMsg    = $('#warn-msg');\n    var $errMsg     = $('#err-msg');\n\n    \/* reset notices *\/\n    $warnMsg.hide().html('');\n    $errMsg.hide().html('');\n\n    \/* require all numeric fields to be valid positive numbers *\/\n    var anyMissing = [t0_raw, t, fck, RH, u, Ac].some(function (v) {\n      return isNaN(v) || v <= 0;\n    });\n\n    if (anyMissing) {\n      $resultMain.html('<span class=\"result-placeholder\">Fill in all fields to see &phi;(t, t&#8320;)<\/span>');\n      $stepsGrid.hide();\n      return;\n    }\n\n    \/* logical constraint: t must be > t\u2080 *\/\n    if (t <= t0_raw) {\n      $resultMain.html('<span class=\"result-placeholder\">t must be greater than t&#8320;<\/span>');\n      $stepsGrid.hide();\n      $errMsg.html('The considered age <em>t<\/em> must be greater than the age at loading <em>t&#8320;<\/em>.').show();\n      return;\n    }\n\n    \/* \u2500\u2500 cement class exponent (B.9) \u2500\u2500 *\/\n    var alphaMap = { S: -1, N: 0, R: 1 };\n    var alpha    = alphaMap[cement];\n\n    \/* \u2500\u2500 derived quantities \u2500\u2500 *\/\n    var f_cm = fck + 8;                                           \/* mean strength          *\/\n    var h0   = (2 * Ac) \/ u;                                     \/* notional size  (B.6)   *\/\n\n    \/* adjusted age at loading (B.9) \u2014 t\u2080,T assumed = t\u2080,raw *\/\n    var t0 = Math.max(0.5,\n      t0_raw * Math.pow(9 \/ (2 + Math.pow(t0_raw, 1.2)) + 1, alpha)\n    );\n\n    \/* \u03b2(fcm)  (B.4) *\/\n    var beta_fcm = 16.8 \/ Math.sqrt(f_cm);\n\n    \/* \u03b2(t\u2080)   (B.5) *\/\n    var beta_t0 = 1 \/ (0.1 + Math.pow(t0, 0.2));\n\n    \/* \u03b1 coefficients (B.8c) \u2014 only needed when fcm > 35 *\/\n    var alpha1 = Math.pow(35 \/ f_cm, 0.7);\n    var alpha2 = Math.pow(35 \/ f_cm, 0.2);\n    var alpha3 = Math.pow(35 \/ f_cm, 0.5);\n\n    \/* \u03c6RH  (B.3a \/ B.3b) *\/\n    var phi_RH, eq_RH;\n    if (f_cm <= 35) {\n      phi_RH = 1 + (1 - RH \/ 100) \/ (0.1 * Math.cbrt(h0));\n      eq_RH  = 'B.3a';\n    } else {\n      phi_RH = (1 + (1 - RH \/ 100) \/ (0.1 * Math.cbrt(h0)) * alpha1) * alpha2;\n      eq_RH  = 'B.3b';\n    }\n\n    \/* \u03c6\u2080  (B.2) *\/\n    var phi0 = phi_RH * beta_fcm * beta_t0;\n\n    \/* \u03b2H  (B.8a \/ B.8b) *\/\n    var beta_H, eq_H;\n    if (f_cm <= 35) {\n      beta_H = Math.min(1500,\n        1.5 * (1 + Math.pow(0.012 * RH, 18)) * h0 + 250\n      );\n      eq_H = 'B.8a';\n    } else {\n      beta_H = Math.min(1500 * alpha3,\n        1.5 * (1 + Math.pow(0.012 * RH, 18)) * h0 + 250 * alpha3\n      );\n      eq_H = 'B.8b';\n    }\n\n    \/* \u03b2c(t,t\u2080)  (B.7) *\/\n    var beta_c = Math.pow((t - t0_raw) \/ (beta_H + t - t0_raw), 0.3);\n\n    \/* \u03c6(t,t\u2080)  (B.1) *\/\n    var phi = phi0 * beta_c;\n\n    \/* \u2500\u2500 display result \u2500\u2500 *\/\n    $resultMain.html(\n      '<span class=\"result-label\">&phi;(t, t&#8320;) =<\/span>' +\n      '<span class=\"result-value\">' + phi.toFixed(3) + '<\/span>'\n    );\n\n    \/* \u2500\u2500 intermediate steps \u2500\u2500 *\/\n    var steps = [\n      { label: 'f<sub>cm<\/sub>',         value: f_cm.toFixed(1)    + ' N\/mm&sup2;', ref: '= f<sub>ck<\/sub> + 8'         },\n      { label: 'h&#8320;',               value: h0.toFixed(1)      + ' mm',         ref: 'B.6'                           },\n      { label: 't&#8320; adjusted',       value: t0.toFixed(2)      + ' days',       ref: 'B.9, class ' + cement         },\n      { label: '&phi;<sub>RH<\/sub>',      value: phi_RH.toFixed(4),                  ref: eq_RH                           },\n      { label: '&beta;(f<sub>cm<\/sub>)',  value: beta_fcm.toFixed(4),                ref: 'B.4'                           },\n      { label: '&beta;(t&#8320;)',        value: beta_t0.toFixed(4),                 ref: 'B.5'                           },\n      { label: '&phi;&#8320;',            value: phi0.toFixed(4),                    ref: 'B.2'                           },\n      { label: '&beta;<sub>H<\/sub>',      value: beta_H.toFixed(2),                  ref: eq_H                            },\n      { label: '&beta;<sub>c<\/sub>(t,t&#8320;)', value: beta_c.toFixed(4),           ref: 'B.7'                           }\n    ];\n\n    var html = '';\n    $.each(steps, function (_, s) {\n      html +=\n        '<div class=\"step-card\">' +\n          '<div class=\"sc-label\">'  + s.label + '<\/div>' +\n          '<div class=\"sc-value\">'  + s.value + '<\/div>' +\n          '<div class=\"sc-ref\">'    + s.ref   + '<\/div>' +\n        '<\/div>';\n    });\n    $stepsGrid.html(html).show();\n\n    \/* \u2500\u2500 range warnings \u2500\u2500 *\/\n    var warnings = [];\n    if (fck < 12 || fck > 90) {\n      warnings.push('f<sub>ck<\/sub> is outside the typical Eurocode range (12 \u2013 90 N\/mm&sup2;).');\n    }\n    if (RH < 40 || RH > 100) {\n      warnings.push('RH is outside the recommended range (40 \u2013 100 %).');\n    }\n    if (warnings.length) {\n      $warnMsg.html('&#9888; ' + warnings.join(' ')).show();\n    }\n  }\n\n});\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Creep Coefficient &phi;(t, t&#8320;) Eurocode EN 1992-1-1:2004 &mdash; Annex B, Equations B.1 &ndash; B.9 t&#8320; &mdash; Age at loading [days] t &mdash; Age considered [days] fck &mdash; Char. strength [N\/mm&sup2;] RH &mdash; Relative humidity [%] u &mdash; Exposed perimeter [mm] Ac &mdash; Cross-section area [mm&sup2;] Cement class S &mdash; slow&#8230;<\/p>\n","protected":false},"author":3,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":[],"ht-kb-category":[68],"ht-kb-tag":[291,1369],"_links":{"self":[{"href":"https:\/\/support.buildsoft.eu\/es\/wp-json\/wp\/v2\/ht-kb\/29833"}],"collection":[{"href":"https:\/\/support.buildsoft.eu\/es\/wp-json\/wp\/v2\/ht-kb"}],"about":[{"href":"https:\/\/support.buildsoft.eu\/es\/wp-json\/wp\/v2\/types\/ht_kb"}],"author":[{"embeddable":true,"href":"https:\/\/support.buildsoft.eu\/es\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/support.buildsoft.eu\/es\/wp-json\/wp\/v2\/comments?post=29833"}],"version-history":[{"count":1,"href":"https:\/\/support.buildsoft.eu\/es\/wp-json\/wp\/v2\/ht-kb\/29833\/revisions"}],"predecessor-version":[{"id":29834,"href":"https:\/\/support.buildsoft.eu\/es\/wp-json\/wp\/v2\/ht-kb\/29833\/revisions\/29834"}],"wp:attachment":[{"href":"https:\/\/support.buildsoft.eu\/es\/wp-json\/wp\/v2\/media?parent=29833"}],"wp:term":[{"taxonomy":"ht_kb_category","embeddable":true,"href":"https:\/\/support.buildsoft.eu\/es\/wp-json\/wp\/v2\/ht-kb-category?post=29833"},{"taxonomy":"ht_kb_tag","embeddable":true,"href":"https:\/\/support.buildsoft.eu\/es\/wp-json\/wp\/v2\/ht-kb-tag?post=29833"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}