Upload index.html with huggingface_hub
Browse files- index.html +45 -19
index.html
CHANGED
|
@@ -1,19 +1,45 @@
|
|
| 1 |
-
<!doctype html>
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Construction Project Dashboard Template — Earned Value, Float & RFI Control (Power BI)</title><meta name="description" content="Your team already pays $14 per user/month for Power BI Pro (Microsoft list price effective 1 April 2025) and it still opens on an empty canvas. Point this at your cost report, your P6/MS Project export and your RFI register, hit Refresh, and read CPI, SPI, Forecast at Completion, worst float and ove"><style>
|
| 2 |
+
:root{color-scheme:light dark}
|
| 3 |
+
body{font:16px/1.55 system-ui,-apple-system,"Segoe UI",sans-serif;margin:0;padding:22px;
|
| 4 |
+
max-width:960px;margin-inline:auto}
|
| 5 |
+
h1{font-size:1.4rem;margin:0 0 .3rem}
|
| 6 |
+
.sub{opacity:.78;margin:0 0 1.3rem}
|
| 7 |
+
h2{font-size:1.06rem;margin:1.8rem 0 .5rem}
|
| 8 |
+
h3{font-size:.98rem;margin:1.1rem 0 .35rem}
|
| 9 |
+
table{border-collapse:collapse;width:100%;font-size:.93rem}
|
| 10 |
+
th,td{border:1px solid #8884;padding:.42rem .55rem;text-align:left;vertical-align:top}
|
| 11 |
+
th{font-weight:600;opacity:.85}
|
| 12 |
+
code{font:.9em ui-monospace,SFMono-Regular,Menlo,monospace;background:#8881;
|
| 13 |
+
padding:.12rem .34rem;border-radius:5px;word-break:break-word}
|
| 14 |
+
.f{border:1px solid #8884;border-radius:10px;padding:12px 14px;margin:.55rem 0}
|
| 15 |
+
.f p{margin:.35rem 0 0}
|
| 16 |
+
.hdr{display:block;padding:.6rem .7rem;overflow-x:auto;white-space:pre}
|
| 17 |
+
ul{margin:.4rem 0 0;padding-left:1.15rem}
|
| 18 |
+
.buy{margin-top:26px;border:1px solid #8884;border-radius:11px;padding:16px}
|
| 19 |
+
.buy a{display:inline-block;margin-top:.6rem;padding:.55rem 1rem;border:1px solid currentColor;
|
| 20 |
+
border-radius:8px;text-decoration:none;color:inherit;font-weight:600}
|
| 21 |
+
</style><script data-grow-initializer="">!(function(){window.growMe||((window.growMe=function(e){window.growMe._.push(e);}),(window.growMe._=[]));var e=document.createElement("script");(e.type="text/javascript"),(e.src="https://faves.grow.me/main.js"),(e.defer=!0),e.setAttribute("data-grow-faves-site-id","U2l0ZTphZjljMzgyMC0yMmU5LTRhYjgtYTIxNS03OTRhMGY1N2ExYzM=");var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t);})();</script>
|
| 22 |
+
<!--yj-canon-s101--><link rel="canonical" href="https://getreadystack.com/tools/construction-project-dashboard-template"></head><body>
|
| 23 |
+
<h1>Construction Project Dashboard Template — Earned Value, Float & RFI Control (Power BI)</h1><p class="sub">Your team already pays $14 per user/month for Power BI Pro (Microsoft list price effective 1 April 2025) and it still opens on an empty canvas. Point this at your cost report, your P6/MS Project export and your RFI register, hit Refresh, and read CPI, SPI, Forecast at Completion, worst float and overdue RFIs on three pages.</p>
|
| 24 |
+
<h2>Measures included (DAX) (8)</h2>
|
| 25 |
+
<div class="f"><b>Cost Performance Index</b> <span>(Table: Cost Ledger)</span><p>DAX: <code>DIVIDE(SUM('Cost Ledger'[Earned Value]), SUM('Cost Ledger'[Actual Cost to Date]))</code></p><p>Uses: <code>'Cost Ledger'[Earned Value]</code>, <code>'Cost Ledger'[Actual Cost to Date]</code></p><p>Format: <code>0.00</code></p></div>
|
| 26 |
+
<div class="f"><b>Schedule Performance Index</b> <span>(Table: Cost Ledger)</span><p>DAX: <code>DIVIDE(SUM('Cost Ledger'[Earned Value]), SUM('Cost Ledger'[Planned Value]))</code></p><p>Uses: <code>'Cost Ledger'[Earned Value]</code>, <code>'Cost Ledger'[Planned Value]</code></p><p>Format: <code>0.00</code></p></div>
|
| 27 |
+
<div class="f"><b>Forecast at Completion</b> <span>(Table: Cost Ledger)</span><p>DAX: <code>DIVIDE(SUM('Cost Ledger'[Original Budget]) + SUM('Cost Ledger'[Approved Change Orders]), DIVIDE(SUM('Cost Ledger'[Earned Value]), SUM('Cost Ledger'[Actual Cost to Date])))</code></p><p>Uses: <code>'Cost Ledger'[Original Budget]</code>, <code>'Cost Ledger'[Approved Change Orders]</code>, <code>'Cost Ledger'[Earned Value]</code>, <code>'Cost Ledger'[Actual Cost to Date]</code></p><p>Format: <code>#,##0</code></p></div>
|
| 28 |
+
<div class="f"><b>Uncommitted Budget</b> <span>(Table: Cost Ledger)</span><p>DAX: <code>SUM('Cost Ledger'[Original Budget]) + SUM('Cost Ledger'[Approved Change Orders]) - SUM('Cost Ledger'[Committed Cost])</code></p><p>Uses: <code>'Cost Ledger'[Original Budget]</code>, <code>'Cost Ledger'[Approved Change Orders]</code>, <code>'Cost Ledger'[Committed Cost]</code></p><p>Format: <code>#,##0</code></p></div>
|
| 29 |
+
<div class="f"><b>Average Finish Variance Days</b> <span>(Table: Schedule Tasks)</span><p>DAX: <code>AVERAGE('Schedule Tasks'[Finish Variance Days])</code></p><p>Uses: <code>'Schedule Tasks'[Finish Variance Days]</code></p><p>Format: <code>0.0</code></p></div>
|
| 30 |
+
<div class="f"><b>Worst Float Days</b> <span>(Table: Schedule Tasks)</span><p>DAX: <code>MIN('Schedule Tasks'[Total Float Days])</code></p><p>Uses: <code>'Schedule Tasks'[Total Float Days]</code></p><p>Format: <code>0</code></p></div>
|
| 31 |
+
<div class="f"><b>Overdue Items</b> <span>(Table: Open Items)</span><p>DAX: <code>SUM('Open Items'[Is Overdue])</code></p><p>Uses: <code>'Open Items'[Is Overdue]</code></p><p>Format: <code>0</code></p></div>
|
| 32 |
+
<div class="f"><b>Exposure from Open Items</b> <span>(Table: Open Items)</span><p>DAX: <code>SUM('Open Items'[Cost Impact])</code></p><p>Uses: <code>'Open Items'[Cost Impact]</code></p><p>Format: <code>#,##0</code></p></div>
|
| 33 |
+
<h2>Columns your data must have (28)</h2>
|
| 34 |
+
<h3>Cost Ledger</h3><table><tr><th>Column</th><th>Type</th><th>Summarize by</th></tr><tr><td><code>Project Name</code></td><td>string</td><td></td></tr><tr><td><code>Cost Code</code></td><td>string</td><td></td></tr><tr><td><code>Work Package</code></td><td>string</td><td></td></tr><tr><td><code>Period End Date</code></td><td>dateTime</td><td></td></tr><tr><td><code>Original Budget</code></td><td>decimal</td><td></td></tr><tr><td><code>Approved Change Orders</code></td><td>decimal</td><td></td></tr><tr><td><code>Committed Cost</code></td><td>decimal</td><td></td></tr><tr><td><code>Actual Cost to Date</code></td><td>decimal</td><td></td></tr><tr><td><code>Earned Value</code></td><td>decimal</td><td></td></tr><tr><td><code>Planned Value</code></td><td>decimal</td><td></td></tr></table>
|
| 35 |
+
<p>Header row: <code class="hdr">Project Name,Cost Code,Work Package,Period End Date,Original Budget,Approved Change Orders,Committed Cost,Actual Cost to Date,Earned Value,Planned Value</code></p>
|
| 36 |
+
<h3>Schedule Tasks</h3><table><tr><th>Column</th><th>Type</th><th>Summarize by</th></tr><tr><td><code>Project Name</code></td><td>string</td><td></td></tr><tr><td><code>Activity ID</code></td><td>string</td><td></td></tr><tr><td><code>Activity Name</code></td><td>string</td><td></td></tr><tr><td><code>Baseline Finish</code></td><td>dateTime</td><td></td></tr><tr><td><code>Forecast Finish</code></td><td>dateTime</td><td></td></tr><tr><td><code>Total Float Days</code></td><td>int64</td><td></td></tr><tr><td><code>Finish Variance Days</code></td><td>int64</td><td></td></tr><tr><td><code>Percent Complete</code></td><td>double</td><td></td></tr><tr><td><code>Is Critical</code></td><td>int64</td><td></td></tr></table>
|
| 37 |
+
<p>Header row: <code class="hdr">Project Name,Activity ID,Activity Name,Baseline Finish,Forecast Finish,Total Float Days,Finish Variance Days,Percent Complete,Is Critical</code></p>
|
| 38 |
+
<h3>Open Items</h3><table><tr><th>Column</th><th>Type</th><th>Summarize by</th></tr><tr><td><code>Project Name</code></td><td>string</td><td></td></tr><tr><td><code>Item Type</code></td><td>string</td><td></td></tr><tr><td><code>Reference</code></td><td>string</td><td></td></tr><tr><td><code>Date Raised</code></td><td>dateTime</td><td></td></tr><tr><td><code>Response Due Date</code></td><td>dateTime</td><td></td></tr><tr><td><code>Days Open</code></td><td>int64</td><td></td></tr><tr><td><code>Is Open</code></td><td>int64</td><td></td></tr><tr><td><code>Is Overdue</code></td><td>int64</td><td></td></tr><tr><td><code>Cost Impact</code></td><td>decimal</td><td></td></tr></table>
|
| 39 |
+
<p>Header row: <code class="hdr">Project Name,Item Type,Reference,Date Raised,Response Due Date,Days Open,Is Open,Is Overdue,Cost Impact</code></p>
|
| 40 |
+
<h2>Report pages (3)</h2><ul><li><b>Cost Control — Earned Value</b> — Visuals (6): Cost Performance Index, Schedule Performance Index, Forecast at Completion, Uncommitted Budget by Cost Code, Forecast at Completion by Period End Date, Project Name</li><li><b>Programme — Float & Slippage</b> — Visuals (6): Average Finish Variance Days, Worst Float Days, Average Finish Variance Days by Activity Name, Total Float Days by Activity Name, Slippage Register — Baseline Finish vs Forecast Finish, Project Name</li><li><b>RFIs, Submittals & Cost Impact</b> — Visuals (6): Overdue Items, Exposure from Open Items, Overdue Items by Item Type, Exposure from Open Items by Item Type, Open Register — Reference, Raised, Response Due, Project Name</li></ul>
|
| 41 |
+
|
| 42 |
+
<section data-yj-cta="paid" style="margin:3rem auto;max-width:46rem;padding:1.5rem 1.25rem;border:1px solid #d8dee9;border-radius:12px;background:#fbfcfe;font:16px/1.6 system-ui,-apple-system,Segoe UI,sans-serif"><h2 style="margin:0 0 .5rem;font-size:1.25rem">Get the complete version <span class="yj-price">$69</span></h2><p style="margin:.25rem 0 1rem;color:#41505f">This page is the working piece. The full pack has everything below.</p><p style="margin:0 0 1rem;color:#41505f">Your team already pays $14 per user/month for Power BI Pro (Microsoft list price effective 1 April 2025) and it still opens on an empty canvas. Point this at your cost report, your P6/MS Pro</p><p style="margin:0 0 1rem;color:#5b6b7c;font-size:.94rem">Microsoft's published list price is $14 per user/month for Power BI Pro and $24 per user/month for Premium Per User, both effective 1 April 2025. The licence is already bought — what is missing is the model that sits on it. This t</p><a href="https://buy.polar.sh/polar_cl_uCvb8DKSUVO0odic4HfTq8Z8zOZ2y1yaUBArJ3QBHCm" rel="nofollow" style="display:inline-block;padding:.7rem 1.3rem;border-radius:8px;background:#1b64f2;color:#fff;text-decoration:none;font-weight:600">Send it to me</a></section>
|
| 43 |
+
<section class="yj-related" style="max-width:920px;margin:56px auto 40px;padding:0 20px"><h2 style="font:600 21px/1.3 system-ui,sans-serif;margin:0 0 6px;color:#1b1f24">More from ReadyStack</h2><p style="font:400 14.5px/1.5 system-ui,sans-serif;margin:0 0 20px;color:#5b6570">Ready-to-use files. One-time download, no subscription.</p><div style="display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px"><a class="yj-rel-c" href="https://getreadystack.com/tools/teacher-resume-template"><span class="yj-rel-t">Teacher Resume Template — 6 Fill-In Word Resumes for U.S. K-12 Hiring: First T</span><span class="yj-rel-p">$29</span></a><a class="yj-rel-c" href="https://getreadystack.com/tools/revit-door-family"><span class="yj-rel-t">Revit Door Family Blocks - 14 ADA-Dimensioned US Commercial Doors (DXF, import</span><span class="yj-rel-p">$100</span></a><a class="yj-rel-c" href="https://getreadystack.com/tools/engineer-resume-template"><span class="yj-rel-t">Engineer Resume Template — 6 Fill-In Word Résumés: Software, Mechanical New-Gr</span><span class="yj-rel-p">$29</span></a><a class="yj-rel-c" href="https://getreadystack.com/tools/terraform-module-kubernetes-namespace"><span class="yj-rel-t">Terraform Module Kubernetes Namespace for Platform Teams - quota, LimitRange, </span><span class="yj-rel-p">$3</span></a><a class="yj-rel-c" href="https://getreadystack.com/tools/charter-boat-booking-wordpress-plugin"><span class="yj-rel-t">Charter Boat Booking Requests — 6-Passenger Limit</span><span class="yj-rel-p">$60</span></a><a class="yj-rel-c" href="https://getreadystack.com/tools/revit-furniture-families"><span class="yj-rel-t">Revit Furniture Families - 14 Plan Blocks at Real Furniture Dimensions + 2010 </span><span class="yj-rel-p">$100</span></a></div><style>.yj-rel-c{display:flex;flex-direction:column;gap:8px;padding:15px 16px;border:1px solid #e2e6ea;border-radius:6px;text-decoration:none;background:#fff}.yj-rel-c:hover{border-color:#b9c2cb;background:#fafbfc}.yj-rel-t{font:500 14.5px/1.42 system-ui,sans-serif;color:#1b1f24}.yj-rel-p{font:600 13px system-ui,sans-serif;color:#0a6238}</style></section><!--yj-share-s101--><div style="margin:28px 0 8px;text-align:center"><button id="yjcp" type="button" style="font:inherit;padding:10px 18px;border:1px solid #8884;border-radius:10px;background:transparent;cursor:pointer">Copy link</button></div><script>(function(){var b=document.getElementById("yjcp");if(!b)return;var t=b.textContent;b.addEventListener("click",function(){var u=location.href.split("#")[0];function d(){b.textContent="Link copied";setTimeout(function(){b.textContent=t;},1800);}if(navigator.clipboard&&navigator.clipboard.writeText){navigator.clipboard.writeText(u).then(d,function(){prompt("",u);});}else{prompt("",u);}});})();</script>
|
| 44 |
+
<script data-yj="yj-view-beacon">(function(){try{var p=location.pathname;var k='yjv:'+p;if(sessionStorage.getItem(k))return;sessionStorage.setItem(k,'1');fetch('/api/ev',{method:'POST',keepalive:true,headers:{'Content-Type':'application/json'},body:JSON.stringify({path:p,lang:"en"})}).catch(function(){});}catch(e){}})();</script>
|
| 45 |
+
<div class="yj-home-find"><div class="yj-lgbar"><a href="/" class="yj-lg on">EN</a><a href="/de/" class="yj-lg">DE</a><a href="/ja/" class="yj-lg">JA</a><a href="/es/" class="yj-lg">ES</a><a href="/pt/" class="yj-lg">PT</a></div><section class="yj-find"><h2>Find a tool</h2><input id="yjq" type="search" autocomplete="off" placeholder="Type a product name, format or task"><div id="yjr"></div></section><style>.yj-lgbar{position:absolute;top:14px;right:18px;display:flex;gap:6px;z-index:60}.yj-lg{font:600 12px/1 system-ui,sans-serif;padding:6px 9px;border-radius:4px;text-decoration:none;color:#8b96a3;border:1px solid rgba(140,150,165,.28)}.yj-lg:hover{color:#e8eaed;border-color:rgba(160,175,195,.6)}.yj-lg.on{color:#0e1116;background:#cfd6de;border-color:#cfd6de}.yj-find{max-width:760px;margin:34px auto 8px;padding:0 20px}.yj-find h2{font:600 20px/1.3 system-ui,sans-serif;margin:0 0 10px}#yjq{width:100%;box-sizing:border-box;padding:13px 15px;font:400 15.5px system-ui,sans-serif;border:1px solid rgba(140,150,165,.34);border-radius:8px;background:rgba(255,255,255,.04);color:inherit}#yjq:focus{outline:none;border-color:#7FD1C4}#yjr{margin-top:10px;display:flex;flex-direction:column;gap:6px}#yjr a{display:flex;justify-content:space-between;gap:12px;padding:11px 14px;border:1px solid rgba(140,150,165,.22);border-radius:6px;text-decoration:none;font:400 14.5px/1.4 system-ui,sans-serif;color:inherit}#yjr a:hover{border-color:#7FD1C4}#yjr .pr{font:600 13px system-ui,sans-serif;color:#5fbf9a;white-space:nowrap}</style><script>(function(){var q=document.getElementById("yjq"),r=document.getElementById("yjr"),D=null;function load(){if(D)return Promise.resolve(D);return fetch("/search-index.json").then(function(x){return x.json();}).then(function(j){D=j;return j;}).catch(function(){D=[];return D;});}function esc(t){return String(t).replace(/[&<>"]/g,function(c){return {"&":"&","<":"<",">":">",'"':"""}[c];});}function run(){var v=q.value.trim().toLowerCase();if(v.length<2){r.innerHTML="";return;}load().then(function(j){var w=v.split(/\s+/),o=[];for(var i=0;i<j.length&&o.length<12;i++){var t=j[i].t.toLowerCase();var ok=true;for(var k=0;k<w.length;k++){if(t.indexOf(w[k])<0){ok=false;break;}}if(ok)o.push(j[i]);}r.innerHTML=o.length?o.map(function(x){return "<a href=\""+esc(x.u)+"\">"+"<span>"+esc(x.t)+"</span>"+(x.p?"<span class=\"pr\">$"+x.p+"</span>":"")+"</a>";}).join(""):"";});}q.addEventListener("input",run);q.addEventListener("focus",load);})();</script></div></body></html>
|