Every subsystem is a box on its planned RFC (Ready For Commissioning) week, stacked into towers. Colour tells the status, the small bar tells ITR progress. One glance answers the two questions every commissioning meeting starts with: what is due when, and is it ready.
Try it now: babarda.com/skyline
Zoomed out, boxes compress to plain colour tiles so a whole project fits on one screen; the View: Detail / Fit button switches between the two. A dashed line marks the current week. Hover any box for the full tooltip (activity ID, station, dates, exact counts).
- Fill the template. Take
data/Skyline_Input.xlsxand replace the sample rows with your subsystems. One row each. Keep the sheet nameSkylineand the exact headers. - Drop it on the page. Open babarda.com/skyline
(or
web/index.htmllocally) and drag your file onto it. Parsing happens in your browser; the file is never uploaded anywhere. - Read the wall. Anything left of TODAY that is not green is late. Pink inside the next month is where to spend your week. Filter stations with the chips; the headline recounts signed / overdue / at-risk for what you filtered.
Sheet Skyline, one row per subsystem:
| Column | What it is |
|---|---|
Activity ID |
The RFC activity ID from your schedule (Primavera P6 or other). Ties each box back to the schedule line that moves it. |
Subsystem ID |
Unique subsystem tag. Printed on each box. |
Subsystem Description |
Free text, shown on the box and in tooltips. |
Station |
Site / plant / area the subsystem belongs to. Drives the station filter. |
RFC Date |
Planned RFC date. The skyline stacks by the week of this date. |
RFC Progress % |
Formula: ITRs Closed / Total ITRs. Leave the formula in place. |
ITRs Closed |
Inspection test records signed for the subsystem. |
Total ITRs |
Total inspection test records for the subsystem. |
The sample content is fictitious: 500 subsystems over six invented stations (Namara, Kivuli, Tembea, Zawadi pump stations, the Mlima pressure reduction station, the Bahari marine terminal). Dates, IDs, descriptions and ITR counts are generated. Nothing in this repository identifies a real project.
Computed from RFC Date and progress, identically in the web tool and Power BI:
| Status | Rule | Colour |
|---|---|---|
| RFC signed | 100% ITRs closed and RFC date passed | #2E6E4E |
| Complete | 100% ITRs closed, RFC date still ahead | #008080 |
| On track | everything else | #C9C6BF |
| At risk | RFC within 4 weeks and progress below 50% | #CB9A9A |
| Overdue | RFC date passed, ITRs still open | #8B1E1E |
| No ITR data | Total ITRs = 0 |
#EFEDE8 |
Styling follows the OVP design language AGRAW (DL-01): white page, warm panel, one teal primary, statuses on the positive / negative axis, minimal decoration.
powerbi/Commissioning Skyline.pbip is a Power BI project with the same Vega
spec inside a Deneb visual, so it cross-filters
with slicers like any native visual.
A .pbip file is only a 1 KB pointer. Power BI Desktop needs the two folders
that sit next to it:
powerbi/
Commissioning Skyline.pbip <- open this one
Commissioning Skyline.Report/ <- pages and visuals
Commissioning Skyline.SemanticModel/ <- tables, columns, the FilePath parameter
Clicking Commissioning Skyline.pbip on GitHub and pressing Download gives you
the pointer alone, and Desktop stops with
ReportDefinition: Required artifact is missing in ...\Commissioning Skyline.Report\definition.pbir.
Instead, download everything in one ZIP: commissioning-skyline-main.zip (same as the green Code > Download ZIP button on the repository home page). Extract it, keep the three items above together in the same folder, and you can move that folder anywhere you like.
The model reads one Excel file, Skyline_Input.xlsx, through a parameter
named FilePath. Its default value is:
C:\Skyline\Skyline_Input.xlsx
Start from the template in the ZIP, data/Skyline_Input.xlsx (also
here), fill it as described in
The input file, and either:
- create the folder
C:\Skylineand save the file there under that exact name, or - keep it wherever you want and point the parameter at it, see step 4.
The skyline itself is a free custom visual. In Power BI Desktop: Insert > More visuals > From AppSource, search Deneb, click Add. Without it the page shows an empty box asking for the visual.
- Double-click
Commissioning Skyline.pbip. On first open Desktop shows two banners, calculated columns need to be manually refreshed and some tables have incomplete or no data. That is normal: a project file carries no data until you refresh. - If your Excel file is not at
C:\Skyline\Skyline_Input.xlsx, or if you later move or rename the folder that holds it: Home > Transform data > Edit parameters, replace theFilePathvalue with the full path of your file (for exampleD:\Projects\MyPlant\Skyline_Input.xlsx), click OK. - Home > Refresh. Both banners disappear and the skyline draws. The station slicer cross-filters it.
Every time the Excel file changes location, repeat step 2 then step 3.
If Refresh fails with file not found or could not find the file, the
FilePath value no longer matches where the file is.
The semantic model computes Status, Status Sort, RFC Week, ITRs Open
and Weeks To RFC as calculated columns, so the input file stays minimal.
- Thresholds: the At-risk rule (4 weeks / 50%) is one
SWITCHinpowerbi/...tables/Skyline.tmdland oneifchain inweb/index.html. - Colours: one ordinal scale (
STATUS/COLORS) in both files. - Detail floors: the Vega signals
detail,nameOn,tbOn,pctOndecide when boxes show text; lower the pixel floors to show it earlier.
MIT. Use it on your project, rename the stations, ship it.
