{"id":2056,"date":"2026-07-28T14:37:24","date_gmt":"2026-07-28T13:37:24","guid":{"rendered":"https:\/\/boldgambler.com\/uk\/?post_type=apostas&#038;p=2056"},"modified":"2026-07-31T02:41:14","modified_gmt":"2026-07-31T01:41:14","slug":"scottish-premiership-promotion-relegation-odds","status":"publish","type":"apostas","link":"https:\/\/boldgambler.com\/uk\/sports-betting\/scottish-premiership\/scottish-premiership-promotion-relegation-odds\/","title":{"rendered":"2026\/27 Scottish Premiership Preview: Title Favourites &amp; Market Overview"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">The 2026\/27 William Hill Premiership kicks off on 31 July 2026, marking the 130th edition of Scotland\u2019s top flight. Twelve teams, including promoted St Johnstone, will compete over 38 matches, while Livingston face relegation. With Celtic targeting a sixth consecutive title, this preview details the main championship contenders alongside key betting markets.<\/p>\n\n\n\n<h2 id=\"h-the-race-for-the-title-the-three-main-favourites\" class=\"wp-block-heading\">The Race for the Title: The Three Main Favourites<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The outright winner market for the Scottish Premiership is always a major talking point. This season, the focus is squarely on three clubs that provided a dramatic title race last year.<\/p>\n\n\n<style id=\"bg-odds-css\">.bg-odds-wrap{border:1px solid #e5e7eb;border-radius:14px;background:#fff;padding:18px 18px 12px;margin:1.4em 0;font-family:inherit}\n.bg-odds-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}\n.bg-odds-title{font-weight:700;font-size:1.05rem;color:var(--bgo-p,#111827)}\n.bg-odds-meta{display:flex;align-items:center;gap:10px;font-size:.78rem;color:#6b7280}\n.bg-odds-live{display:inline-flex;align-items:center;gap:6px;background:var(--bgo-a,#ef4444);color:#fff;font-weight:700;font-size:.68rem;letter-spacing:.04em;padding:3px 9px;border-radius:999px}\n.bg-odds-live i{width:7px;height:7px;border-radius:50%;background:#fff;display:inline-block;animation:bgoPulse 1.6s ease-in-out infinite}\n@keyframes bgoPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.7)}}\n.bg-odds-legend{display:flex;gap:10px 18px;flex-wrap:wrap;margin:14px 0 2px;padding-top:12px;border-top:1px solid #f0f1f3;font-size:.8rem;justify-content:center}\n.bg-odds-legend .bgo-li{display:inline-flex;align-items:center;gap:6px;color:#6b7280;background:none;border:0;padding:3px 6px;margin:0;font:inherit;line-height:1.4;cursor:pointer;border-radius:6px;transition:opacity .15s,background .15s}\n.bg-odds-legend .bgo-li:hover{background:#f6f7f9}\n.bg-odds-legend .bgo-li.is-off{opacity:.45}\n.bg-odds-legend .bgo-li.is-off .bgo-name,.bg-odds-legend .bgo-li.is-off .bgo-val{color:#9ca3af;font-weight:400}\n.bg-odds-legend .bgo-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:0 0 auto}\n.bg-odds-legend .bgo-name{color:#374151}\n.bg-odds-legend .bgo-val{font-weight:600;color:#111827;margin-left:2px}\n.bg-odds-legend .bgo-delta{font-size:.72rem;font-weight:700;margin-left:3px;letter-spacing:-.02em}\n.bg-odds-legend .bgo-delta.bgo-down{color:#059669}\n.bg-odds-legend .bgo-delta.bgo-up{color:#dc2626}\n.bg-odds-legend .bgo-li.is-off .bgo-delta{color:#9ca3af;font-weight:400}\n.bg-odds-elim{text-align:center;font-size:.76rem;color:#9ca3af;margin:2px 0 2px;padding:0 8px}\n.bg-odds-elim .bgo-elim-lbl{font-weight:600;color:#6b7280}\n.bg-odds-elim .bgo-elim-name{text-decoration:line-through;margin:0 1px}\n.bg-odds-body{position:relative;margin-top:4px}\n.bg-odds-body svg{display:block;width:100%;height:auto}\n.bg-odds-msg{padding:34px 0;text-align:center;color:#9ca3af;font-size:.9rem}\n.bg-odds-foot{margin-top:10px;padding-top:8px;font-size:.76rem;color:#9ca3af}\n.bg-odds-footwrap{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:12px;flex-wrap:wrap}\n.bg-odds-cta{display:inline-block;background:var(--bgo-a,#ef4444);color:#fff;font-weight:700;font-size:.95rem;text-decoration:none;padding:10px 22px;border-radius:9px;transition:filter .15s}\n.bg-odds-cta:hover{filter:brightness(1.08);color:#fff}\n.bg-odds-tip{position:absolute;pointer-events:none;background:#111827;color:#f9fafb;border-radius:8px;padding:7px 10px;font-size:.75rem;line-height:1.55;white-space:nowrap;opacity:0;transition:opacity .12s;z-index:5;box-shadow:0 4px 14px rgba(0,0,0,.18)}\n.bg-odds-tip .bgo-td{color:#9ca3af;margin-bottom:2px}\n.bg-odds-tip .bgo-sub{color:#9ca3af}\n@media(max-width:600px){.bg-odds-wrap{padding:14px 12px 8px}.bg-odds-legend{gap:12px;font-size:.8rem}}<\/style><script id=\"bg-odds-cfg\">window.BG_ODDS_CFG={\"rest\":\"https:\\\/\\\/boldgambler.com\\\/uk\\\/wp-json\\\/bg-odds\\\/v1\\\/series\\\/\",\"lang\":\"en\",\"poll\":60,\"palette\":[\"#FF4A4A\",\"#2563eb\",\"#059669\",\"#d97706\",\"#7c3aed\",\"#0891b2\",\"#dc2626\",\"#64748b\"],\"i18n\":{\"live\":\"LIVE\",\"updated\":\"Updated\",\"nodata\":\"No data yet\",\"closed\":\"Market closed\",\"manual\":\"Odds updated on\",\"toggle\":\"Click to show\\\/hide on the chart\",\"pick\":\"Click a team below to show its line\",\"since\":\"Change since first reading\",\"eliminated\":\"Eliminated\"}};<\/script><script id=\"bg-odds-js\">\/\/<BGJS>\n(function(){\n'use strict';\nvar CFG=window.BG_ODDS_CFG||{};\nvar LOCALES={pt:'pt-BR',es:'es',en:'en-US'};\n\nfunction fmtVal(v,format){\n  if(format==='decimal'){return Number(v).toFixed(2);}\n  var n=Number(v);\n  return (n>=10?Math.round(n):(Math.round(n*10)\/10))+'%';\n}\nfunction fmtAmerican(a){\n  if(a===null||a===undefined||a===''){return null;}\n  var s=String(a);\n  if(s[0]!=='-'&&s[0]!=='+'&&!isNaN(Number(s))&&Number(s)>0){return '+'+s;}\n  return s;\n}\nfunction impliedFromDec(dec){ return (dec>0)? Math.round(1000\/dec)\/10 : null; } \/\/ 100\/dec, 1 casa\n\n\/\/ Escolhe a odd a exibir no formato do mercado (decimal|fractional|american).\n\/\/ Fracional\/americana so existem quando vieram do feed; sem elas, cai para decimal.\nfunction pickOdd(dec,frac,amer,oddsFmt){\n  if(oddsFmt==='fractional'&&frac){return frac;}\n  if(oddsFmt==='american'){var am=fmtAmerican(amer);if(am){return am;}}\n  if(dec!==null&&dec!==undefined&&Number(dec)>0){return Number(dec).toFixed(2);}\n  return null;\n}\n\/\/ Par exibido ao lado do nome: \"odd_no_formato_escolhido \u00b7 prob%\" (sem % duplicada).\nfunction fmtOddPair(dec,frac,amer,oddsFmt){\n  var odd=pickOdd(dec,frac,amer,oddsFmt);\n  var imp=(dec!==null&&dec!==undefined)?impliedFromDec(Number(dec)):null;\n  var parts=[];\n  if(odd){parts.push(odd);}\n  if(imp!==null){parts.push(imp+'%');}\n  return parts.length?parts.join(' \\u00b7 '):null;\n}\nfunction fmtDate(ts){\n  try{return new Date(ts*1000).toLocaleDateString(LOCALES[CFG.lang]||'en-US',{month:'short'});}catch(e){return '';}\n}\nfunction fmtDateTime(ts){\n  try{return new Date(ts*1000).toLocaleString(LOCALES[CFG.lang]||'en-US',{day:'2-digit',month:'short',hour:'2-digit',minute:'2-digit'});}catch(e){return '';}\n}\nfunction fmtTime(ts){\n  try{return new Date(ts*1000).toLocaleTimeString(LOCALES[CFG.lang]||'en-US',{hour:'2-digit',minute:'2-digit'});}catch(e){return '';}\n}\nfunction fmtStamp(ts){\n  try{return new Date(ts*1000).toLocaleDateString(LOCALES[CFG.lang]||'en-US',{day:'2-digit',month:'2-digit',year:'numeric'});}catch(e){return '';}\n}\n\/\/ Rotulo curto de eixo: \"24 jul\" \u2014 usado quando ha poucas coletas.\nfunction fmtDayShort(ts){\n  try{return new Date(ts*1000).toLocaleDateString(LOCALES[CFG.lang]||'en-US',{day:'2-digit',month:'short'});}catch(e){return '';}\n}\n\/\/ Variacao da ODD desde a abertura. Convencao de mercado:\n\/\/  odd caiu (shortened) = chance subiu = verde\/baixo\n\/\/  odd subiu (drifted)  = chance caiu  = vermelho\/cima\nfunction oddDelta(openDec,nowDec){\n  if(openDec===null||openDec===undefined||nowDec===null||nowDec===undefined){return null;}\n  var a=Number(openDec),b=Number(nowDec);\n  if(!isFinite(a)||!isFinite(b)||a<=0||b<=0){return null;}\n  var diff=b-a;\n  if(Math.abs(diff)<0.005){return {dir:0,pct:0};}\n  return {dir:diff>0?1:-1,pct:Math.round((diff\/a)*1000)\/10};\n}\nfunction niceTicks(min,max,target){\n  var span=max-min;if(span<=0){span=1;}\n  var steps=[0.1,0.2,0.25,0.5,1,2,2.5,5,10,20,25,50,100];\n  var step=steps[steps.length-1];\n  for(var i=0;i<steps.length;i++){if(span\/steps[i]<=target){step=steps[i];break;}}\n  var start=Math.ceil(min\/step)*step,out=[];\n  for(var v=start;v<=max+1e-9;v+=step){out.push(Math.round(v*100)\/100);}\n  return out;\n}\n\/\/ Cor estavel por SELECAO (nao por posicao): reordenar por favoritismo nao\n\/\/ pode trocar a cor de um time. Se sel.color existe, usa ela; senao, deriva\n\/\/ da palette por um hash simples da key (mesma key = sempre a mesma cor).\nfunction colorFor(sel,idx){\n  if(sel.color&&\/^#([0-9a-f]{3}){1,2}$\/i.test(sel.color)){return sel.color;}\n  var p=CFG.palette||['#ef4444'];\n  var k=String(sel.key||idx);\n  var h=0;\n  for(var i=0;i<k.length;i++){h=(h*31+k.charCodeAt(i))>>>0;}\n  return p[h%p.length];\n}\nfunction stepPath(pts,X,Y){\n  if(!pts.length){return '';}\n  var d='M'+X(pts[0][0]).toFixed(1)+' '+Y(pts[0][1]).toFixed(1);\n  for(var i=1;i<pts.length;i++){\n    d+='H'+X(pts[i][0]).toFixed(1)+'V'+Y(pts[i][1]).toFixed(1);\n  }\n  return d;\n}\n\/\/ Ultimo ponto <= t (semantica de step). Ponto: [t,v,dec,frac,amer].\nfunction pointAt(pts,t){\n  var p=null;\n  for(var i=0;i<pts.length;i++){\n    if(pts[i][0]<=t){p=pts[i];}else{break;}\n  }\n  return p;\n}\n\n\/\/ Ranking por favoritismo: menor odd decimal primeiro. Sem decimal, usa o valor\n\/\/ plotado (maior % = mais favorito; menor odd = mais favorito).\nfunction favRank(latest,key,format){\n  var lt=latest&&latest[key]?latest[key]:null;\n  if(!lt){return Infinity;}\n  if(lt.dec!==null&&lt.dec!==undefined&&Number(lt.dec)>0){return Number(lt.dec);}\n  var v=Number(lt.v);\n  if(!isFinite(v)){return Infinity;}\n  return (format==='decimal')? v : (v>0? 100\/v : Infinity);\n}\n\n\/\/ Estado de visibilidade por linha. Na primeira renderizacao liga os TOP N\n\/\/ favoritos; depois respeita o que o leitor clicou (persistido no elemento).\nfunction visState(wrap,data,format){\n  if(wrap.__bgoVis){return wrap.__bgoVis;}\n  var top=parseInt(wrap.getAttribute('data-top'),10);\n  if(isNaN(top)||top<0){top=5;}\n  var sels=data.selections||[];\n  var order=sels.map(function(s){return {key:s.key,r:favRank(data.latest,s.key,format)};});\n  order.sort(function(a,b){return a.r-b.r;});\n  var vis={};\n  sels.forEach(function(s){vis[s.key]=false;});\n  order.slice(0,top).forEach(function(o){vis[o.key]=true;});\n  wrap.__bgoVis=vis;\n  return vis;\n}\n\nfunction render(wrap,data){\n  var body=wrap.querySelector('.bg-odds-body');\n  var legend=wrap.querySelector('.bg-odds-legend');\n  var meta=wrap.querySelector('.bg-odds-meta');\n  var H=parseInt(wrap.getAttribute('data-height'),10)||320;\n  var W=Math.max(300,body.clientWidth||640);\n  var format=data.market.format||'percent';\n  var oddsFmt=data.market.odds_fmt||'decimal';\n\n  meta.innerHTML='';\n  if(data.market.manual_updated){\n    var up=document.createElement('span');\n    up.textContent=CFG.i18n.manual+' '+fmtStamp(data.market.manual_updated);\n    meta.appendChild(up);\n  }\n\n  \/\/ Rodape editorial some \u2014 a data agora vai no topo. Mantem o wrap para o CTA.\n  var foot=wrap.querySelector('.bg-odds-foot');\n  if(foot){ foot.style.display='none'; }\n\n  legend.innerHTML='';\n  \/\/ Ordena por FAVORITISMO ATUAL (nao pela ordem de cadastro). Assim quando um\n  \/\/ time ultrapassa outro (ex: Flamengo passa o Palmeiras), a ordem visual na\n  \/\/ legenda e no desenho acompanha, em vez de ficar presa a ordem antiga.\n  var sels=(data.selections||[]).slice().sort(function(a,b){\n    return favRank(data.latest,a.key,format)-favRank(data.latest,b.key,format);\n  });\n  \/\/ Indice de cada selecao na ordem final \u2014 allPts[__idx] pertence a este sel.\n  sels.forEach(function(sel,idx){ sel.__idx=idx; });\n  var vis=visState(wrap,data,format);\n\n  \/\/ Mapa de cores calculado UMA VEZ, por sel.key. Legenda, linhas e tooltip\n  \/\/ leem TODOS deste mesmo mapa \u2014 nunca recalculam por conta propria \u2014 para\n  \/\/ que a cor de um time nunca possa divergir entre as partes do grafico.\n  var colorMap={};\n  sels.forEach(function(sel,idx){ colorMap[sel.key]=colorFor(sel,idx); });\n  function colorOf(sel){ return colorMap[sel.key]||colorFor(sel,0); }\n\n  sels.forEach(function(sel,idx){\n    var c=colorOf(sel);\n    var on=!!vis[sel.key];\n    var lt=data.latest&&data.latest[sel.key]?data.latest[sel.key]:null;\n    var li=document.createElement('button');\n    li.type='button';\n    li.className='bgo-li'+(on?' is-on':' is-off');\n    li.setAttribute('aria-pressed',on?'true':'false');\n    li.title=CFG.i18n.toggle||'';\n    var html='<span class=\"bgo-dot\" style=\"background:'+(on?c:'transparent')+';box-shadow:inset 0 0 0 2px '+c+'\"><\/span><span class=\"bgo-name\">'+sel.label+'<\/span>';\n    if(lt){\n      \/\/ Mostra a ODD no formato escolhido (nao a probabilidade). Sem odd => cai para o valor plotado.\n      var odd=pickOdd(lt.dec,lt.frac,lt.amer,oddsFmt);\n      html+='<span class=\"bgo-val\">'+(odd||fmtVal(lt.v,format))+'<\/span>';\n      \/\/ Variacao desde a abertura (so aparece se houve movimento real).\n      var op=data.opening&&data.opening[sel.key]?data.opening[sel.key]:null;\n      if(op){\n        var d=oddDelta(op.dec,lt.dec);\n        if(d&&d.dir!==0){\n          var arrow=d.dir<0?'\\u25BC':'\\u25B2';\n          var cls=d.dir<0?'bgo-down':'bgo-up';\n          html+='<span class=\"bgo-delta '+cls+'\" title=\"'+(CFG.i18n.since||'')+'\">'+arrow+Math.abs(d.pct)+'%<\/span>';\n        }\n      }\n    }\n    li.innerHTML=html;\n    li.addEventListener('click',function(){\n      wrap.__bgoVis[sel.key]=!wrap.__bgoVis[sel.key];\n      render(wrap,data);\n    });\n    legend.appendChild(li);\n  });\n\n  \/\/ Secao \"Eliminados\": nomes riscados, fora do grafico. So aparece se houver.\n  var elimWrap=wrap.querySelector('.bg-odds-elim');\n  var elim=data.eliminated||[];\n  if(elim.length){\n    if(!elimWrap){\n      elimWrap=document.createElement('div');elimWrap.className='bg-odds-elim';\n      legend.parentNode.insertBefore(elimWrap,legend.nextSibling);\n    }\n    var eh='<span class=\"bgo-elim-lbl\">'+(CFG.i18n.eliminated||'Eliminados')+':<\/span> ';\n    eh+=elim.map(function(e){return '<span class=\"bgo-elim-name\">'+e.label+'<\/span>';}).join(', ');\n    elimWrap.innerHTML=eh;\n    elimWrap.style.display='';\n  }else if(elimWrap){\n    elimWrap.style.display='none';\n  }\n\n  \/\/ Escala e linhas consideram APENAS as selecoes visiveis.\n  var allPts=[],tMin=Infinity,tMax=-Infinity,vMin=Infinity,vMax=-Infinity,anyVis=false;\n  sels.forEach(function(sel){\n    var pts=(data.series&&data.series[sel.key])||[];\n    allPts.push(pts);\n    if(!vis[sel.key]){return;}\n    anyVis=true;\n    pts.forEach(function(p){\n      if(p[0]<tMin){tMin=p[0];}if(p[0]>tMax){tMax=p[0];}\n      if(p[1]<vMin){vMin=p[1];}if(p[1]>vMax){vMax=p[1];}\n    });\n  });\n\n  if(!anyVis){\n    body.innerHTML='<div class=\"bg-odds-msg\">'+(CFG.i18n.pick||CFG.i18n.nodata)+'<\/div>';\n    return;\n  }\n  if(!isFinite(tMin)||tMax<=tMin){\n    body.innerHTML='<div class=\"bg-odds-msg\">'+CFG.i18n.nodata+'<\/div>';\n    return;\n  }\n\n  \/\/ ---- Decide escala do eixo Y: linear ou logaritmica ----\n  \/\/ Quando ha um favorito muito destacado e um pelotao amontoado embaixo (ex:\n  \/\/ campeao a 47% e o resto entre 6-20%), a escala linear espreme o pelotao\n  \/\/ numa faixa fininha e deixa um vazio enorme no meio. A escala log comprime o\n  \/\/ topo e expande a base, dando espaco pra disputa real entre os azaroes.\n  \/\/ So vale para o eixo de probabilidade (percent) e so quando a disparidade\n  \/\/ justifica \u2014 num grafico equilibrado, log deixaria estranho ao contrario.\n  var useLog=false;\n  if(format==='percent'){\n    var lo=vMin,hi=vMax;\n    \/\/ Razao entre o teto e o piso dos dados visiveis. >4x = disparidade grande.\n    if(lo>0.4 && hi\/lo>=4){ useLog=true; }\n  }\n\n  if(useLog){\n    \/\/ Dominio log: do menor \"nice\" abaixo do piso ao maior \"nice\" acima do teto,\n    \/\/ em passos de potencia (1,2,5 x10^n). Clampado em [0.5, 100].\n    var lgMin=Math.max(0.5, vMin);\n    var lgMax=Math.min(100, vMax);\n    \/\/ Folga: meia decada abaixo\/acima para os pontos nao colarem na borda.\n    lgMin=Math.pow(10, Math.floor(Math.log10(lgMin)*2)\/2);\n    lgMax=Math.pow(10, Math.ceil(Math.log10(lgMax)*2)\/2);\n    lgMin=Math.max(0.5, Math.min(lgMin, vMin*0.85));\n    lgMax=Math.min(100, Math.max(lgMax, vMax*1.05));\n    vMin=lgMin; vMax=lgMax;\n  }else if(format==='percent'){\n    vMin=Math.max(0,Math.floor(vMin\/10)*10-0);\n    vMax=Math.min(100,Math.ceil(vMax\/10)*10);\n    if(vMax-vMin<10){vMax=Math.min(100,vMin+10);}\n  }else{\n    var pad=(vMax-vMin)*0.12||0.2;vMin=Math.max(0,vMin-pad);vMax=vMax+pad;\n  }\n\n  var padL=14,padR=58,padT=16,padB=26;\n  var iw=W-padL-padR,ih=H-padT-padB;\n\n  \/\/ ---- Eixo X por MEDICAO (nao por tempo real) ----\n  \/\/ Todos os timestamps distintos das linhas visiveis, em ordem. Cada um ocupa\n  \/\/ uma fatia igual do grafico: 2 medicoes => mudanca no meio; 3 => em tercos.\n  var tset={};\n  sels.forEach(function(sel,idx){\n    if(!vis[sel.key]){return;}\n    (allPts[idx]||[]).forEach(function(p){tset[p[0]]=true;});\n  });\n  var tkeys=Object.keys(tset).map(Number).sort(function(a,b){return a-b;});\n  var tPos={};\n  var denom=Math.max(1,tkeys.length-1);\n  tkeys.forEach(function(tv,i){tPos[tv]=i\/denom;});\n  function X(t){\n    var pos=tPos[t];\n    if(pos===undefined){\n      \/\/ t fora dos pontos (ex: posicao do mouse): interpola entre vizinhos.\n      if(t<=tkeys[0])pos=0;\n      else if(t>=tkeys[tkeys.length-1])pos=1;\n      else{\n        for(var i=0;i<tkeys.length-1;i++){\n          if(t>=tkeys[i]&&t<=tkeys[i+1]){\n            var frac=(t-tkeys[i])\/((tkeys[i+1]-tkeys[i])||1);\n            pos=(i+frac)\/denom;break;\n          }\n        }\n      }\n    }\n    return padL+pos*iw;\n  }\n  \/\/ Y: linear por padrao; logaritmica quando useLog (comprime topo, expande base).\n  var logMin=useLog?Math.log10(vMin):0, logMax=useLog?Math.log10(vMax):0;\n  var logSpan=(logMax-logMin)||1;\n  function Y(v){\n    if(useLog){\n      var vv=Math.max(v,vMin*0.5); \/\/ evita log(0)\/negativo em valores minusculos\n      return padT+ih-((Math.log10(vv)-logMin)\/logSpan)*ih;\n    }\n    return padT+ih-((v-vMin)\/(vMax-vMin))*ih;\n  }\n\n  var ns='http:\/\/www.w3.org\/2000\/svg';\n  var svg=document.createElementNS(ns,'svg');\n  svg.setAttribute('viewBox','0 0 '+W+' '+H);\n  svg.setAttribute('preserveAspectRatio','xMidYMid meet');\n\n  \/\/ Ticks: em log, usa a progressao 1-2-5 por decada (1,2,5,10,20,50) dentro do\n  \/\/ dominio; em linear, os ticks \"nice\" de sempre.\n  var yTicks;\n  if(useLog){\n    yTicks=[];\n    var bases=[1,2,5];\n    for(var dec=-1;dec<=2;dec++){\n      for(var bi=0;bi<bases.length;bi++){\n        var tv=bases[bi]*Math.pow(10,dec);\n        if(tv>=vMin-1e-9 && tv<=vMax+1e-9){ yTicks.push(Math.round(tv*100)\/100); }\n      }\n    }\n    if(!yTicks.length){ yTicks=[vMin,vMax]; }\n  }else{\n    yTicks=niceTicks(vMin,vMax,5);\n  }\n  yTicks.forEach(function(v){\n    var y=Y(v);\n    var ln=document.createElementNS(ns,'line');\n    ln.setAttribute('x1',padL);ln.setAttribute('x2',W-padR);\n    ln.setAttribute('y1',y);ln.setAttribute('y2',y);\n    ln.setAttribute('stroke','#e5e7eb');ln.setAttribute('stroke-dasharray','2 4');\n    svg.appendChild(ln);\n    var tx=document.createElementNS(ns,'text');\n    tx.setAttribute('x',W-padR+8);tx.setAttribute('y',y+4);\n    tx.setAttribute('fill','#9ca3af');tx.setAttribute('font-size','11');\n    tx.textContent=fmtVal(v,format);\n    svg.appendChild(tx);\n  });\n\n  \/\/ Medicoes reais visiveis (exclui o ponto sintetico \"agora\"): sao os tkeys\n  \/\/ que existem em data.stamps. Cada uma vira um rotulo + guia vertical.\n  var stampSet={};(data.stamps||[]).forEach(function(s){stampSet[s]=true;});\n  var realStamps=tkeys.filter(function(t){return stampSet[t];});\n  var many=realStamps.length>8;\n  var lastLabX=-999;\n  realStamps.forEach(function(s){\n    var x=X(s);\n    var gl=document.createElementNS(ns,'line');\n    gl.setAttribute('x1',x);gl.setAttribute('x2',x);\n    gl.setAttribute('y1',padT);gl.setAttribute('y2',padT+ih);\n    gl.setAttribute('stroke','#eef0f2');gl.setAttribute('stroke-width','1');\n    svg.appendChild(gl);\n    \/\/ Com muitas medicoes, rotula so as que nao colam; com poucas, rotula todas.\n    if(!many || x-lastLabX>=52){\n      lastLabX=x;\n      var tl=document.createElementNS(ns,'text');\n      tl.setAttribute('x',x);tl.setAttribute('y',H-8);\n      tl.setAttribute('fill','#9ca3af');tl.setAttribute('font-size','11');\n      \/\/ Extremos ancoram para dentro do canvas (senao o texto centralizado\n      \/\/ extrapola a borda e e cortado pelo viewBox \u2014 era o caso da 1a data).\n      var anchor='middle';\n      if(x<=padL+2){anchor='start';}\n      else if(x>=padL+iw-2){anchor='end';}\n      tl.setAttribute('text-anchor',anchor);\n      tl.textContent=fmtDayShort(s);\n      svg.appendChild(tl);\n    }\n  });\n  var sparse=true; \/\/ sempre desenha marcadores nas medicoes (eixo por medicao)\n\n  \/\/ ---- Jitter anti-sobreposicao ----\n  \/\/ Em cada timestamp, linhas visiveis cujo Y cai dentro de JT pixels sao\n  \/\/ consideradas \"empatadas\" e recebem um deslocamento vertical simetrico, para\n  \/\/ nao desenharem uma exatamente sobre a outra. Nao altera dados: o dot, o\n  \/\/ tooltip e a legenda seguem mostrando o valor real.\n  var JT=3.0;        \/\/ tolerancia de empate, em px\n  var JSTEP=3.2;     \/\/ afastamento entre linhas empatadas, em px\n  var visIdx=[];\n  sels.forEach(function(sel,idx){ if(vis[sel.key]&&allPts[idx]&&allPts[idx].length){visIdx.push(idx);} });\n\n  \/\/ offAt[idx][t] = deslocamento em px daquela linha naquele timestamp.\n  var offAt={};\n  visIdx.forEach(function(idx){offAt[idx]={};});\n  tkeys.forEach(function(t){\n    \/\/ valor Y de cada linha visivel neste t\n    var here=[];\n    visIdx.forEach(function(idx){\n      var p=pointAt(allPts[idx],t);\n      if(p){here.push({idx:idx,y:Y(p[1])});}\n    });\n    \/\/ agrupa por proximidade de Y\n    here.sort(function(a,b){return a.y-b.y;});\n    var used={};\n    for(var i=0;i<here.length;i++){\n      if(used[here[i].idx])continue;\n      var group=[here[i]];used[here[i].idx]=true;\n      for(var j=i+1;j<here.length;j++){\n        if(!used[here[j].idx]&&Math.abs(here[j].y-here[i].y)<=JT){\n          group.push(here[j]);used[here[j].idx]=true;\n        }\n      }\n      if(group.length>1){\n        \/\/ distribui simetricamente em torno do Y comum\n        var mid=(group.length-1)\/2;\n        group.forEach(function(g,gi){ offAt[g.idx][t]=(gi-mid)*JSTEP; });\n      }\n    }\n  });\n  function Yoff(idx,t,v){var o=offAt[idx]&&offAt[idx][t]!==undefined?offAt[idx][t]:0;return Y(v)+o;}\n  \/\/ stepPath com deslocamento por ponto (usa o t de cada ponto para achar o offset).\n  function stepPathJ(idx,pts){\n    if(!pts.length)return '';\n    var d='M'+X(pts[0][0]).toFixed(1)+' '+Yoff(idx,pts[0][0],pts[0][1]).toFixed(1);\n    for(var i=1;i<pts.length;i++){\n      d+='H'+X(pts[i][0]).toFixed(1)+'V'+Yoff(idx,pts[i][0],pts[i][1]).toFixed(1);\n    }\n    return d;\n  }\n\n  sels.forEach(function(sel,idx){\n    if(!vis[sel.key]){return;}\n    var pts=allPts[idx];if(!pts.length){return;}\n    var c=colorOf(sel);\n    var path=document.createElementNS(ns,'path');\n    path.setAttribute('d',stepPathJ(idx,pts));\n    path.setAttribute('fill','none');\n    path.setAttribute('stroke',c);\n    path.setAttribute('stroke-width','2');\n    path.setAttribute('stroke-linejoin','round');\n    svg.appendChild(path);\n\n    \/\/ Com poucas medicoes, marca cada coleta real (o 6o elemento marca o ponto\n    \/\/ sintetico \"agora\", que nao recebe marcador).\n    if(sparse){\n      pts.forEach(function(p){\n        if(p[5]){return;}\n        var m=document.createElementNS(ns,'circle');\n        m.setAttribute('cx',X(p[0]));m.setAttribute('cy',Yoff(idx,p[0],p[1]));\n        m.setAttribute('r','3.2');\n        m.setAttribute('fill','#fff');\n        m.setAttribute('stroke',c);\n        m.setAttribute('stroke-width','2');\n        svg.appendChild(m);\n      });\n    }\n\n    var last=pts[pts.length-1];\n    var dot=document.createElementNS(ns,'circle');\n    dot.setAttribute('cx',X(last[0]));dot.setAttribute('cy',Yoff(idx,last[0],last[1]));\n    dot.setAttribute('r','4.2');dot.setAttribute('fill',c);\n    svg.appendChild(dot);\n  });\n\n  var hover=document.createElementNS(ns,'line');\n  hover.setAttribute('y1',padT);hover.setAttribute('y2',padT+ih);\n  hover.setAttribute('stroke','#9ca3af');hover.setAttribute('stroke-width','1');\n  hover.setAttribute('opacity','0');\n  svg.appendChild(hover);\n\n  body.innerHTML='';\n  body.appendChild(svg);\n  var tip=document.createElement('div');tip.className='bg-odds-tip';\n  body.appendChild(tip);\n\n  function onMove(ev){\n    var rect=svg.getBoundingClientRect();\n    var sx=(ev.clientX-rect.left)*(W\/rect.width);\n    if(sx<padL||sx>W-padR){onLeave();return;}\n    \/\/ Posicao relativa -> indice de medicao -> timestamp real (snap na medicao).\n    var pos=(sx-padL)\/iw; if(pos<0)pos=0; if(pos>1)pos=1;\n    var fi=pos*denom;\n    var ti=Math.round(fi);\n    if(ti<0)ti=0; if(ti>tkeys.length-1)ti=tkeys.length-1;\n    var t=tkeys[ti];\n    var snapX=X(t);\n    hover.setAttribute('x1',snapX);hover.setAttribute('x2',snapX);\n    hover.setAttribute('opacity','0.7');\n    var rows='<div class=\"bgo-td\">'+fmtStamp(t)+'<\/div>';\n    \/\/ Coleta os pontos visiveis NESTE instante e ordena pelo favoritismo do\n    \/\/ MOMENTO (menor odd primeiro), nao pelo favoritismo atual. Assim, ao olhar\n    \/\/ uma data passada, o favorito de entao aparece no topo do tooltip.\n    var hereRows=[];\n    sels.forEach(function(sel){\n      if(!vis[sel.key]){return;}\n      var idx=sel.__idx;\n      var p=pointAt(allPts[idx],t);\n      if(!p){return;}\n      \/\/ p = [ts, valorPlotado, dec, frac, amer]\n      var dec=(p[2]!==null&&p[2]!==undefined)?Number(p[2]):null;\n      var rank=(dec!==null&&dec>0)?dec:(format==='decimal'?Number(p[1]):(Number(p[1])>0?100\/Number(p[1]):Infinity));\n      hereRows.push({sel:sel,p:p,dec:dec,rank:rank});\n    });\n    hereRows.sort(function(a,b){return a.rank-b.rank;});\n    hereRows.forEach(function(r){\n      var p=r.p;\n      var prob=(r.dec!==null)?impliedFromDec(r.dec):null;\n      var probStr=(prob!==null)?prob+'%':fmtVal(p[1],format);\n      var odd=pickOdd(p[2],p[3],p[4],oddsFmt);\n      var line='<span style=\"color:'+colorOf(r.sel)+'\">&#9679;<\/span> '+r.sel.label+': <strong>'+probStr+'<\/strong>';\n      if(odd){line+=' <span class=\"bgo-sub\">('+odd+')<\/span>';}\n      rows+='<div>'+line+'<\/div>';\n    });\n    tip.innerHTML=rows;\n    tip.style.opacity='1';\n    var px=(snapX\/W)*rect.width;\n    var flip=px>rect.width*0.62;\n    tip.style.left=flip?'auto':(px+12)+'px';\n    tip.style.right=flip?(rect.width-px+12)+'px':'auto';\n    tip.style.top='10px';\n  }\n  function onLeave(){hover.setAttribute('opacity','0');tip.style.opacity='0';}\n  svg.addEventListener('mousemove',onMove);\n  svg.addEventListener('mouseleave',onLeave);\n}\n\nfunction load(wrap){\n  var id=wrap.getAttribute('data-market');\n  fetch(CFG.rest+id,{credentials:'omit'})\n    .then(function(r){if(!r.ok){throw new Error('HTTP '+r.status);}return r.json();})\n    .then(function(data){\n      wrap.__bgoData=data;\n      render(wrap,data);\n    })\n    .catch(function(){\n      var body=wrap.querySelector('.bg-odds-body');\n      if(body){body.innerHTML='<div class=\"bg-odds-msg\">'+CFG.i18n.nodata+'<\/div>';}\n    });\n}\n\nfunction init(){\n  var wraps=document.querySelectorAll('.bg-odds-wrap[data-market]');\n  if(!wraps.length){return;}\n  wraps.forEach(function(w){load(w);});\n\n  setInterval(function(){\n    if(document.hidden){return;}\n    wraps.forEach(function(w){\n      var d=w.__bgoData;\n      if(d&&d.market&&d.market.status!=='open'){return;}\n      load(w);\n    });\n  },(CFG.poll||60)*1000);\n\n  var rt=null;\n  window.addEventListener('resize',function(){\n    clearTimeout(rt);\n    rt=setTimeout(function(){\n      wraps.forEach(function(w){if(w.__bgoData){render(w,w.__bgoData);}});\n    },180);\n  });\n}\n\nif(document.readyState==='loading'){\n  document.addEventListener('DOMContentLoaded',init);\n}else{\n  init();\n}\n})();\n\/\/<\/BGJS><\/script><div class=\"bg-odds-wrap\" data-market=\"2061\" data-height=\"320\" data-top=\"5\" style=\"--bgo-p:#031426;--bgo-a:#FF4A4A;\"><div class=\"bg-odds-head\"><div class=\"bg-odds-title\">Scotland Premiership 2026\/27 \u2014 To Win Outright<\/div><div class=\"bg-odds-meta\"><\/div><\/div><div class=\"bg-odds-body\"><div class=\"bg-odds-msg\">Loading odds\u2026<\/div><\/div><div class=\"bg-odds-legend\"><\/div><div class=\"bg-odds-footwrap\"><div class=\"bg-odds-foot\"><\/div><\/div><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Celtic (Title Odds: 5\/6)<\/strong> <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Celtic head into the 2026\/27 season as the clear favourites to lift the trophy once again, priced at 5\/6 to win the Scottish Premiership. The Glasgow club is defending a remarkable run, having secured their fifth consecutive league title on the very last day of the 2025\/26 season. That victory was sealed with a vital 3-1 home win against Heart of Midlothian. Under the guidance of their experienced manager, Martin O&#8217;Neill, Celtic has the squad depth and the winning knowledge required for a long campaign. Their status as the frontrunners is based purely on their recent dominance and their ability to perform under high pressure when the season reaches its final weeks.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Rangers (Title Odds: 13\/10)<\/strong> <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As Celtic\u2019s traditional and most fierce rivals, Rangers are the second favourites to win the league, closely priced at 13\/10. The club from Ibrox is determined to close the gap and stop Celtic&#8217;s consecutive streak. Over the summer, Rangers made a significant change by bringing in Derek McInnes as their new manager in June 2026. McInnes brings a wealth of Scottish football experience and is tasked with building a squad capable of sustaining a title challenge across all 38 matches. The close odds suggest that the market views Rangers as a very real threat to Celtic, rather than just an outside challenger.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Heart of Midlothian (Title Odds: 13\/2)<\/strong> <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Heart of Midlothian, commonly known as Hearts, enters the season as the third favourite with odds of 13\/2. While they are priced slightly further back than the two Glasgow giants, Hearts proved last season that the traditional two-club script is no longer guaranteed. They spent an incredible 250 days at the top of the table during the previous campaign, turning the league into a genuine three-way title fight. Now managed by Wouter Vrancken, who was appointed in late June 2026, the Edinburgh club remains a very serious contender. Their strong performances have earned them a great deal of respect, making them a wildcard team that cannot be ignored in the championship conversation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">williamhillpag2<\/p>\n\n\n\n<h2 id=\"h-an-overview-of-other-key-markets\" class=\"wp-block-heading\">An Overview of Other Key Markets<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Beyond the main title race, there are several other interesting markets that provide a broader picture of how the 2026\/27 season might unfold.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Top Goalscorer<\/strong> <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The race for the top goalscorer is always highly anticipated. Currently, Lawrence Shankland leads the market at 7\/2. He is closely followed by Celtic&#8217;s Benjamin Nygren at 11\/2. Rangers&#8217; forward Youssef Chermiti is priced at 7\/1, while Camilo Duran stands at 15\/2. Tawanda Maswanhise and Claudio Braga are both available at 8\/1.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>To Finish Bottom of the Table<\/strong> <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">At the other end of the league, the battle to avoid relegation is expected to be extremely tight. Three clubs currently share the lowest odds to finish at the bottom: Dundee, the newly promoted St Johnstone, and St Mirren are all priced at 4\/1. Kilmarnock and Falkirk are also firmly in the mix to struggle, both standing at 9\/2. This suggests a highly competitive lower half of the table, where every single point will be crucial for survival.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Top 6 Finish<\/strong> <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">After 33 matches, the Scottish Premiership splits into a top six and a bottom six. Unsurprisingly, Celtic (1\/1000) and Rangers (1\/750) are almost certainties to make the top half, followed closely by Hearts at 1\/8. Hibernian (1\/3), Aberdeen (1\/2), and Motherwell (11\/10) are also strongly expected to finish in the upper half of the league, showcasing who the stronger teams are expected to be before the split occurs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Trophy Multiples<\/strong> <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For those looking at domestic dominance, the Trophy Multiples market looks at teams winning more than one competition. For Celtic, winning both the Scottish Premiership and the Scottish League Cup is priced at 9\/4, while winning the Premiership and The Scottish Cup is 5\/2. For Rangers, the odds of winning the Premiership and the League Cup stand at 4\/1, and the Premiership combined with The Scottish Cup is 9\/2.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In summary, the 2026\/27 Scottish Premiership promises to be a thrilling season of football, with fascinating storylines at both the top and the bottom of the table.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A comprehensive guide to the 2026\/27 Scottish Premiership, covering title favourites Celtic, Rangers, Hearts, and key odds.<\/p>\n","protected":false},"author":1,"featured_media":2063,"comment_status":"open","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"cat_apostas":[117],"hub_relacionado":[118],"class_list":["post-2056","apostas","type-apostas","status-publish","has-post-thumbnail","hentry","cat_apostas-scottish-premiership","hub_relacionado-scottish-premiership"],"acf":{"hreflang_group":""},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.3.1 (Yoast SEO v28.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>2026\/27 Scottish Premiership Odds &amp; Season Preview<\/title>\n<meta name=\"description\" content=\"A comprehensive guide to the 2026\/27 Scottish Premiership, covering title favourites Celtic, Rangers, Hearts, and key odds.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/boldgambler.com\/uk\/sports-betting\/scottish-premiership\/scottish-premiership-promotion-relegation-odds\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"2026\/27 Scottish Premiership Preview: Title Favourites &amp; Market Overview\" \/>\n<meta property=\"og:description\" content=\"A comprehensive guide to the 2026\/27 Scottish Premiership, covering title favourites Celtic, Rangers, Hearts, and key odds.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/boldgambler.com\/uk\/sports-betting\/scottish-premiership\/scottish-premiership-promotion-relegation-odds\/\" \/>\n<meta property=\"og:site_name\" content=\"Bold Gambler UK\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-31T01:41:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/boldgambler.com\/uk\/wp-content\/uploads\/sites\/7\/2026\/07\/scottish-premiership-2026-27-title-favourites.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"674\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/boldgambler.com\\\/uk\\\/sports-betting\\\/scottish-premiership\\\/scottish-premiership-promotion-relegation-odds\\\/\",\"url\":\"https:\\\/\\\/boldgambler.com\\\/uk\\\/sports-betting\\\/scottish-premiership\\\/scottish-premiership-promotion-relegation-odds\\\/\",\"name\":\"2026\\\/27 Scottish Premiership Odds & Season Preview\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/boldgambler.com\\\/uk\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/boldgambler.com\\\/uk\\\/sports-betting\\\/scottish-premiership\\\/scottish-premiership-promotion-relegation-odds\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/boldgambler.com\\\/uk\\\/sports-betting\\\/scottish-premiership\\\/scottish-premiership-promotion-relegation-odds\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/boldgambler.com\\\/uk\\\/wp-content\\\/uploads\\\/sites\\\/7\\\/2026\\\/07\\\/scottish-premiership-2026-27-title-favourites.webp\",\"datePublished\":\"2026-07-28T13:37:24+00:00\",\"dateModified\":\"2026-07-31T01:41:14+00:00\",\"description\":\"A comprehensive guide to the 2026\\\/27 Scottish Premiership, covering title favourites Celtic, Rangers, Hearts, and key odds.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/boldgambler.com\\\/uk\\\/sports-betting\\\/scottish-premiership\\\/scottish-premiership-promotion-relegation-odds\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/boldgambler.com\\\/uk\\\/sports-betting\\\/scottish-premiership\\\/scottish-premiership-promotion-relegation-odds\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/boldgambler.com\\\/uk\\\/sports-betting\\\/scottish-premiership\\\/scottish-premiership-promotion-relegation-odds\\\/#primaryimage\",\"url\":\"https:\\\/\\\/boldgambler.com\\\/uk\\\/wp-content\\\/uploads\\\/sites\\\/7\\\/2026\\\/07\\\/scottish-premiership-2026-27-title-favourites.webp\",\"contentUrl\":\"https:\\\/\\\/boldgambler.com\\\/uk\\\/wp-content\\\/uploads\\\/sites\\\/7\\\/2026\\\/07\\\/scottish-premiership-2026-27-title-favourites.webp\",\"width\":1200,\"height\":674},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/boldgambler.com\\\/uk\\\/sports-betting\\\/scottish-premiership\\\/scottish-premiership-promotion-relegation-odds\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\\\/\\\/boldgambler.com\\\/uk\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Scottish Premiership\",\"item\":\"https:\\\/\\\/boldgambler.com\\\/uk\\\/sports-betting\\\/scottish-premiership\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"2026\\\/27 Scottish Premiership Preview: Title Favourites &amp; Market Overview\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/boldgambler.com\\\/uk\\\/#website\",\"url\":\"https:\\\/\\\/boldgambler.com\\\/uk\\\/\",\"name\":\"Bold Gambler UK\",\"description\":\"Trusted and Genuine Information on Online Games\",\"publisher\":{\"@id\":\"https:\\\/\\\/boldgambler.com\\\/uk\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/boldgambler.com\\\/uk\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/boldgambler.com\\\/uk\\\/#organization\",\"name\":\"Bold Gambler UK\",\"url\":\"https:\\\/\\\/boldgambler.com\\\/uk\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/boldgambler.com\\\/uk\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/boldgambler.com\\\/uk\\\/wp-content\\\/uploads\\\/sites\\\/7\\\/2025\\\/10\\\/cropped-Bold-Gambler-Transparente-Home.webp\",\"contentUrl\":\"https:\\\/\\\/boldgambler.com\\\/uk\\\/wp-content\\\/uploads\\\/sites\\\/7\\\/2025\\\/10\\\/cropped-Bold-Gambler-Transparente-Home.webp\",\"width\":1535,\"height\":614,\"caption\":\"Bold Gambler UK\"},\"image\":{\"@id\":\"https:\\\/\\\/boldgambler.com\\\/uk\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"2026\/27 Scottish Premiership Odds & Season Preview","description":"A comprehensive guide to the 2026\/27 Scottish Premiership, covering title favourites Celtic, Rangers, Hearts, and key odds.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/boldgambler.com\/uk\/sports-betting\/scottish-premiership\/scottish-premiership-promotion-relegation-odds\/","og_locale":"en_GB","og_type":"article","og_title":"2026\/27 Scottish Premiership Preview: Title Favourites &amp; Market Overview","og_description":"A comprehensive guide to the 2026\/27 Scottish Premiership, covering title favourites Celtic, Rangers, Hearts, and key odds.","og_url":"https:\/\/boldgambler.com\/uk\/sports-betting\/scottish-premiership\/scottish-premiership-promotion-relegation-odds\/","og_site_name":"Bold Gambler UK","article_modified_time":"2026-07-31T01:41:14+00:00","og_image":[{"width":1200,"height":674,"url":"https:\/\/boldgambler.com\/uk\/wp-content\/uploads\/sites\/7\/2026\/07\/scottish-premiership-2026-27-title-favourites.webp","type":"image\/webp"}],"twitter_card":"summary_large_image","twitter_misc":{"Estimated reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/boldgambler.com\/uk\/sports-betting\/scottish-premiership\/scottish-premiership-promotion-relegation-odds\/","url":"https:\/\/boldgambler.com\/uk\/sports-betting\/scottish-premiership\/scottish-premiership-promotion-relegation-odds\/","name":"2026\/27 Scottish Premiership Odds & Season Preview","isPartOf":{"@id":"https:\/\/boldgambler.com\/uk\/#website"},"primaryImageOfPage":{"@id":"https:\/\/boldgambler.com\/uk\/sports-betting\/scottish-premiership\/scottish-premiership-promotion-relegation-odds\/#primaryimage"},"image":{"@id":"https:\/\/boldgambler.com\/uk\/sports-betting\/scottish-premiership\/scottish-premiership-promotion-relegation-odds\/#primaryimage"},"thumbnailUrl":"https:\/\/boldgambler.com\/uk\/wp-content\/uploads\/sites\/7\/2026\/07\/scottish-premiership-2026-27-title-favourites.webp","datePublished":"2026-07-28T13:37:24+00:00","dateModified":"2026-07-31T01:41:14+00:00","description":"A comprehensive guide to the 2026\/27 Scottish Premiership, covering title favourites Celtic, Rangers, Hearts, and key odds.","breadcrumb":{"@id":"https:\/\/boldgambler.com\/uk\/sports-betting\/scottish-premiership\/scottish-premiership-promotion-relegation-odds\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/boldgambler.com\/uk\/sports-betting\/scottish-premiership\/scottish-premiership-promotion-relegation-odds\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/boldgambler.com\/uk\/sports-betting\/scottish-premiership\/scottish-premiership-promotion-relegation-odds\/#primaryimage","url":"https:\/\/boldgambler.com\/uk\/wp-content\/uploads\/sites\/7\/2026\/07\/scottish-premiership-2026-27-title-favourites.webp","contentUrl":"https:\/\/boldgambler.com\/uk\/wp-content\/uploads\/sites\/7\/2026\/07\/scottish-premiership-2026-27-title-favourites.webp","width":1200,"height":674},{"@type":"BreadcrumbList","@id":"https:\/\/boldgambler.com\/uk\/sports-betting\/scottish-premiership\/scottish-premiership-promotion-relegation-odds\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/boldgambler.com\/uk\/"},{"@type":"ListItem","position":2,"name":"Scottish Premiership","item":"https:\/\/boldgambler.com\/uk\/sports-betting\/scottish-premiership\/"},{"@type":"ListItem","position":3,"name":"2026\/27 Scottish Premiership Preview: Title Favourites &amp; Market Overview"}]},{"@type":"WebSite","@id":"https:\/\/boldgambler.com\/uk\/#website","url":"https:\/\/boldgambler.com\/uk\/","name":"Bold Gambler UK","description":"Trusted and Genuine Information on Online Games","publisher":{"@id":"https:\/\/boldgambler.com\/uk\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/boldgambler.com\/uk\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/boldgambler.com\/uk\/#organization","name":"Bold Gambler UK","url":"https:\/\/boldgambler.com\/uk\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/boldgambler.com\/uk\/#\/schema\/logo\/image\/","url":"https:\/\/boldgambler.com\/uk\/wp-content\/uploads\/sites\/7\/2025\/10\/cropped-Bold-Gambler-Transparente-Home.webp","contentUrl":"https:\/\/boldgambler.com\/uk\/wp-content\/uploads\/sites\/7\/2025\/10\/cropped-Bold-Gambler-Transparente-Home.webp","width":1535,"height":614,"caption":"Bold Gambler UK"},"image":{"@id":"https:\/\/boldgambler.com\/uk\/#\/schema\/logo\/image\/"}}]}},"taxonomy_info":{"cat_apostas":[{"value":117,"label":"Scottish Premiership"}],"hub_relacionado":[{"value":118,"label":"Scottish Premiership"}]},"featured_image_src_large":["https:\/\/boldgambler.com\/uk\/wp-content\/uploads\/sites\/7\/2026\/07\/scottish-premiership-2026-27-title-favourites-1024x575.webp",1024,575,true],"author_info":{"display_name":"Lucas Portela","author_link":"https:\/\/boldgambler.com\/uk\/author\/loucosporapostasgmail-com\/"},"comment_info":0,"_links":{"self":[{"href":"https:\/\/boldgambler.com\/uk\/wp-json\/wp\/v2\/apostas\/2056","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/boldgambler.com\/uk\/wp-json\/wp\/v2\/apostas"}],"about":[{"href":"https:\/\/boldgambler.com\/uk\/wp-json\/wp\/v2\/types\/apostas"}],"author":[{"embeddable":true,"href":"https:\/\/boldgambler.com\/uk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/boldgambler.com\/uk\/wp-json\/wp\/v2\/comments?post=2056"}],"version-history":[{"count":5,"href":"https:\/\/boldgambler.com\/uk\/wp-json\/wp\/v2\/apostas\/2056\/revisions"}],"predecessor-version":[{"id":2064,"href":"https:\/\/boldgambler.com\/uk\/wp-json\/wp\/v2\/apostas\/2056\/revisions\/2064"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/boldgambler.com\/uk\/wp-json\/wp\/v2\/media\/2063"}],"wp:attachment":[{"href":"https:\/\/boldgambler.com\/uk\/wp-json\/wp\/v2\/media?parent=2056"}],"wp:term":[{"taxonomy":"cat_apostas","embeddable":true,"href":"https:\/\/boldgambler.com\/uk\/wp-json\/wp\/v2\/cat_apostas?post=2056"},{"taxonomy":"hub_relacionado","embeddable":true,"href":"https:\/\/boldgambler.com\/uk\/wp-json\/wp\/v2\/hub_relacionado?post=2056"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}