Skip to content

v0.5.0

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 06 Oct 04:26

Release: v0.5.0

Release Date: 2026-10-05

⚠️ Breaking Changes:

  • Scoring configuration exchange uses version 3 with explicit environment source_filters; Tableau fields, duplicate environment mappings and reference metadata are removed. Export methodologies again to create files in the new format.
  • Report Templates use Source Dataset instead of CDR source, add Dynamic Rows Field and Dynamic Columns Field after Layout, and store canonical layout names such as Title + 1 rows + 2 columns + comments down. Stored templates are converted automatically at startup; previous formats remain importable, but exported templates cannot be imported by earlier versions.
  • Vendor filters (Vendor, Vendor V3, Operator_Vendor, OP_Vendor) in templates, Dashboards, previews and Query Builder now apply to Vendor_Only. Operator-prefixed values are reduced to their vendor, so Vodafone_Huawei matches Huawei for every operator; review filters that include or exclude a vendor of one specific operator.
  • Vendor_Only stores operators without a mapped vendor as Operator - All (for example EE - All) in processed CDRs, combined tables and exports.
  • Auto-calculated Fields without explicit sources apply to the virtual cdr-all source too; exports that list it cannot be imported by earlier versions.
  • E2E Reporting is now Reporting (old) at /reporting-old, and its API moved from /api/e2e-reporting to /api/reporting-old; page bookmarks to /e2e-reporting redirect. /reporting now opens the new Reporting module. Access to every main module is controlled in Admin → Features Activation.
  • Vendor mapping applies the same rule to Vodafone UK and Three UK: the same Vendor at both endpoints returns <Operator>_<Vendor>, Ericsson at either endpoint with a different or missing Vendor returns <Operator>_Ericsson_Mixed, and every other different or missing combination returns <Operator>_Non-Ericsson_Mixed (Vendor_Only Ericsson_Mixed and Non-Ericsson_Mixed). They replace Vodafone_Mixed Vendor, Vodafone_Other Vendor and 3_Mixed Vendor; map CDRs again to apply it, and review filters or templates that name the former values.

🌟 New Features:

  • Scoring & GAP Analysis calculates configurable NetCheck City/Road scores from Data, Voice and Speech CDRs. Persistent jobs reuse unchanged inputs, retain methodology snapshots and support deletion and CSV/PowerPoint exports.
  • Scoring Methodologies provide workspace-stored KPI definitions, thresholds, interpolation anchors and Linear, Quadratic or Smooth curve mapping. Methodologies have a configurable default and do not depend on local reference files.
  • Configurable Environments define CDR source matching, points, weights and KPI allocations. Environments can be created, renamed or deleted; reference-based point distribution preserves relative KPI weights, including zero-point allocations.
  • Scoring calculations support Operator, Vendor, Region, City and Campaign filters, Main Cities and per-job methodology selection. A configurable aggregation hierarchy controls grouping; campaigns are separated when selected and pooled otherwise.
  • Scoring Tables, GAP Analysis and Scoring Charts provide Summary/Breakdown tables, operator-versus-reference comparisons and Best Network charts by service/category, with maximum-allocation donuts.
  • Scoring configuration transfers support JSON/ZIP, Admin imports, workspace transfers and backup/restore. Export Methodology (JSON) downloads the selected methodology; Admin exports/backups include all methodologies and the default. Import Methodology (JSON) adds or replaces matching methodology IDs while preserving other methodologies and the workspace default.
  • Scoring PowerPoint export includes covers, environment transitions, charts, Scoring tables and combined/individual GAP comparisons, with editable matrices and charts.
  • Network Insights analyses the radio fields of the selected Data, Voice and Speech CDRs: RSRP/SINR CDFs (Operator/Vendor colours, with the latest campaign drawn thickest and older campaigns thinner) and quality classes, low-coverage and high-interference shares against separate LTE and NR thresholds (defaults -110 dBm/0 dB for LTE and -115 dBm/-3 dB for NR) with changes between the two latest campaigns, coverage and interference grid maps with ranked weak areas, observed eNodeBs and bands, licensed spectrum by Low/Mid/High (TDD) class, and NNS/eMOCN/host-network/RAN-vendor site counts from the Vodafone and Three inventories. Every deployment table exports to CSV with a _VF, _3 or _VF_3 suffix for Vodafone, Three or combined tables; Observed Sites/Cells (from CDRs) lists the sites and cells served in the selected CDRs and Full Sites/Cells Inventory shows separate Vodafone and Three tables of every mapped cell, both with Excel-style column filters; the inventory applies the general filters, highlights Operator, Vendor, Vendor_Only, Region, City, Technology and Cluster first, resolves geographical fields from both operators’ source mapping headers, preserves original fields and mapping-file provenance, and exports every matching row per operator or together. Every deployment view offers Export All to CSV alongside its individual table exports. Analysis Selection keeps every control on one row, each CDR type card offers Select All/None, a dialog shows the analysis in progress with its elapsed time, and CDFs and maps have in-chart zoom and pan controls like E2E Dashboards. Network Deployment precedes Cluster Sites Density, which explains the required cluster polygons; Workspace accepts and validates Clusters datasets as GeoJSON/JSON or zipped shapefiles and preserves them through workspace portability and backups with input files. Results group by any combination of Operator, Vendor, Region, City, CDR type and Campaign (Operator and Campaign by default; Operator is checked and disabled unless Vendor is selected), and LTE+NR shows separate LTE and NR overviews, CDFs and maps without pooling them. Each CDR's samples are read in parallel the first time and cached per CDR, so changing the CDR selection or the filters takes seconds, and repeated analyses and deployment tables are reused from a workspace cache, also after a restart, until their CDRs, inventories or mappings change. Filters load from the CDR catalogues, including Main Cities, and selections are remembered per user and workspace. Licensed spectrum is configured in Workspace Config → Spectrum Holdings and travels with Operator & Vendor Maps exports, transfers and backups (package version 3; older packages remain importable).
  • RF Quality template and Dashboard (workspace content, not installed automatically): CDFs with contour and per-Campaign histograms, averages, quality classes, thresholds and maps for all CDR types pooled and for Data, Voice and Speech, keeping LTE and NR separate.
  • Interactive chart legends: clicking a legend entry in the Dashboard viewer, the expanded chart viewer or Network Insights hides or shows that series, bar or stacked segment for every chart type and closes the gap; hidden entries stay faded and struck through. In Dashboards, right-clicking a legend entry or an axis label at any aggregation level offers Keep only, Hide/Show, Hide All and Show All, and axis menus list their hidden values with a Show submenu. Hiding applies to the whole Dashboard and to every series, row, column or category where the value appears at any level, such as every Campaign of a hidden Operator. Dynamic grid cards of a hidden value leave the slide, and the remaining cards fill a smaller grid. PPT exports, their viewer and relaunched jobs reproduce the same state.
  • Reporting: scheduled Reporting Jobs collect a Dataset Analysis and Network Insights reports (PowerPoint and/or Word), Dashboard PPTs and Scoring PPTs, each configured with every option of its own module, and add Network Insights, the same Dashboard or Scoring several times for several configurations (for example NSA and SA, LTE and NR, or different filters). Each artifact type (Datasets Analysis, Network Insights, E2E Dashboards, Scoring & GAP Analysis, Non-Qualified Calls) is checked independently, entry fields share one row and CDRs appear in per-type cards with Select All/None. Dashboard entries choose the NR Mode first and then offer its Dashboards and CDRs, or every ready CDR of that NR Mode at each run; jobs saved with one Network Insights selection keep it as one entry. Jobs run manually, once, daily, weekly or monthly in the application timezone whenever the application is running, for every workspace even when it is closed or another one is open, appear in the background tasks window, keep a run history with downloadable artifacts, and optionally email them with a body describing every artifact and its filters. The jobs table shows artifacts, next run, recurrence, email and last run, with run, download, edit, duplicate, enable/disable and delete actions. Users only include artifacts of modules activated for them, and other modules can register their own artifacts. Reporting Jobs travel with exports, transfers and backups.
  • Features Activation and User Groups: Admin groups users into custom User Groups, and admins and super-admins configure each main module, in tab order, as available to all users or to nobody by default, with Allowed and Forbidden roles, groups and users in which Forbidden always wins (a lower role can grant a feature to a higher role but never remove it, so admins cannot take features away from super-admins); modules that are not active for an account leave its navigation and answer 403. Reporting starts allowed for super-admins, Reporting (old) for super-admins and EJAITUR, and the new Non-Qualified Calls module, under construction, is hidden from everyone.
  • Email Delivery: Application Config configures the SMTP server, encryption, account, sender and attachment size limit for Reporting emails, with a test email; SMTP_* deployment variables provide defaults.
  • Summary exports: Datasets Analysis exports a Summary PowerPoint or Word with every KPI of the selected datasets (all by default), and Network Insights exports its current analysis — RF overview, CDFs, maps, weakest areas, spectrum, both observed and inventory Cluster Sites Density views and every grouped deployment view (including Cluster when polygons or inventory fields are available, with Region and Cluster names taken from imported polygons and inventory fields as the fallback when polygons are absent), excluding the Sites/Cells tables, with LTE and NR in separate sections for LTE+NR — to PowerPoint or Word. The inventory pending-input notice lists only operators in the filtered analysis without ready inventories. Full inventory tables and CSVs include all mapping rows filtered by their attributes, independently of observed CDR cells; CSV downloads are prepared in full before delivery to avoid truncated exports. Its PowerPoint uses the E2E Dashboard template, and both formats fit table widths to their content with single-line cells and readable wide-table layouts.

🚀 Enhancements:

  • Methodology editor: methodologies and titles sit directly in Scoring Setup, with matching dark green Environment, Hierarchy and GAP panels and nested pastel red KPI settings with a clear editing prompt when collapsed. Shortcuts open Methodology Environments, Aggregation hierarchy and KPI Priorities directly. All Save Methodology buttons commit the entire open methodology. Set Default selects future jobs’ methodology and protects it from deletion.
  • Scoring setup: NR Mode precedes CDR selection. Green SVG shortcuts select all or the latest one/two per type, using name dates before upload time and ID. Pastel green subpanels place GAP Reference below aggregation; Calculation buttons and configuration shortcuts share the methodology selector row at matching heights; bold yellow status notices span the panel underneath and expand for long messages. Cached CDR filters, centered point distribution and category-aware KPI priority moves simplify editing.
  • Scoring job navigation: a dropdown and history cards show filters (All Vendors for full vendor selections), CDR sources, methodology, GAP Reference and ordered aggregation levels; methodology and reference values use bold, contrasting colors. Selecting a job restores its calculation inputs for relaunching. Saved selections persist across users/browsers; result tabs, scroll position and display choices restore within the browser session.
  • Scoring responsiveness: cached catalogues, indexed KPI lookups and on-demand result tabs avoid unnecessary source scans and repeated rendering. Export controls remain visible while results load.
  • Environment results: All Environments sums configured maxima and weighted contributions. Global raw KPIs are recalculated from pooled source rows; older jobs require recalculation to populate them. Incomplete coverage keeps original weights, and jobs initially select a complete environment when available.
  • Coverage explanations: one pale yellow Calculation notes card lists each affected combination, excluded KPI names and exact achievable maximum in larger bold text. Incomplete values and N/A* cells use bold red text; PowerPoint slide notes include the same coverage details.
  • Vendor filtering: selectors show vendor names only and match their rows across operators, while retaining operators without vendors unless excluded by the Operator filter. Vendor aggregation displays All for those operators, consistently in web tables/charts and PowerPoint.
  • Scoring table readability: Summary removes the duplicate Category column; Breakdown groups category cells through subtotals and offers optional raw KPI values. Web tables use softer metadata colors, distinct KPI types and consistent total-row fills; best/worst scores are ranked across each entire Summary row, preserving ties, and have a separate legend from KPI score bands.
  • GAP presentation: optional GAP columns appear at the end or beside scores. Individual comparisons sort by signed GAP, with unavailable values last; combined comparisons retain KPI order. Partial GAPs use common valid environment contributions and carry an asterisk. Individual and All Operators GAP tables include column totals in web and PowerPoint.
  • Web chart readability: enlarged previews, context tooltips, adaptive bars, contrasting labels and horizontal scrolling support dense series. Mapped operator colors/order and year-quarter campaign labels remain consistent; chart numbers use decimal points regardless of browser language.
  • Allocation donuts: environment/service/category rings show configured maximum points, percentages and compact icon legends. Service charts stack Data below Voice in web and PowerPoint. Grayscale service/category keys distinguish contributions without duplicating operator legends.
  • PowerPoint layout: environment blocks use consistent display names, mapped operator colors, readable covers/transitions with white titles/field labels, bold yellow filter/aggregation/campaign values and compact lists. Filenames include timestamp and filter selections while respecting filesystem limits; exporting All Environments includes the combined block followed by each environment.
  • PowerPoint chart pagination: exports ask whether to split above 20 Best Network bars or 40 Scoring bars. Splitting keeps categories complete and prioritizes 3, EE and VF_UK together when possible; declining keeps all bars on one slide. Scoring labels become smaller integers above 40 bars and are hidden above 70.
  • PowerPoint chart axes: single aggregation levels use normal labels; multiple levels use editable grids aligned to bar centers, with Category as level 0 where applicable. Each level uses uniform text sizing, and grayscale keys keep a fixed width within the chart area.
  • PowerPoint table layout: Category values are bold and left-aligned; legends align above Scoring tables with their right edges flush with the table. GAP color scales have reserved space below tables, and individual comparisons have a Priority arrow spanning the table and signed KPI averages and column-averaged GAP totals in side notes.
  • Workspace configuration: Main Cities precedes the renamed Operator & Vendor Maps panels. Mapping panels collapse independently; export/backup labels match, and the Backup content menu wraps descriptions on smaller screens.
  • Radio-quality maps: Map KPIs accept an optional third measure after latitude/longitude; Value Bucket grouping and four configured thresholds colour measured quality from red to green in the Dashboard and PPT.
  • Multivendor comparisons: a Vendor comparison selector beside Report type and Scope chooses Vendor Only (All Operators Combined, the default), which pools operators sharing a vendor, or Operator - Vendor. Vendor filters across the application use Vendor_Only with shared vendor ordering; dynamic vendor slides paginate at six values keeping each vendor's operators together, and saved universes and job retries keep the choice.
  • Report Template layouts: fixed grids of rows and columns with comments below, beside or none, dynamic grids whose rows or columns follow the values of a field, and title, transition and logo closing layouts. The CDR-All source combines the selected Data, Voice and Speech CDRs, and CSV imports accept columns in any order. Charts in grids with three or more rows or four or more columns show their title as readable text above the chart in the Dashboard and PPT, with the dynamic value (for example the Operator) in bold.
  • Dashboard and CDR performance: preparing a Dashboard no longer rescans every row of the selected CDRs to validate cached columns. Charts read a per-CDR column cache: each column is read from SQLite once per CDR together with the Dashboard filter columns. Changing CDRs, dates, Operator, Vendor, Region, City, Campaign or other filters, or switching between Operator Comparison and either Vendor Comparison mode, then assembles the rows in memory without reading the CDRs again, with the values, types and row order SQLite returns; preparing that universe counts its rows from the cached filter columns and reuses each CDR's distinct filter values. Charts sharing fields reuse one read and one filtering pass, and dynamic grid cells reuse a common filtered frame. Background Dashboard work runs on one worker, one Dashboard at a time in creation order. While the application is idle, it also builds each Dashboard's default-universe charts in all three comparison modes and caches their columns for the other CDRs, pausing as soon as the application is used again. Operator and Vendor labels are normalised once per distinct value, and CDR processing derives Market, Period and Vendor_Only once per distinct value.
  • Dashboard status: the library shows Pre-Caching Universe while universes are prepared, Data Cached · Charts n/m while the default universe still has charts to render, Rendering Charts n/m while the background worker renders them, and Ready only when every chart of the default universe is rendered.
  • Dashboard viewer responsiveness: the charts of the open slide are calculated before any prefetch: nearby slides prefetch one chart at a time and wait while visible charts are calculated, and a visible chart already being prefetched is requested again with priority. Background pre-caching stops at its next step when a user opens or prepares a Dashboard, instead of holding the preparation slot until it finishes.
  • Chart axis labels: aggregation headers and category labels at every axis level wrap onto two lines, shrink or turn vertical with the room they need, instead of being truncated or rotated diagonally, in the Dashboard viewer and in the PPT.
  • Main tabs: the main tabs follow the order Workspace, Datasets Analysis, Network Insights, E2E Dashboards, Scoring & GAP Analysis, Non-Qualified Calls, Reporting, Reporting (old) and Builders, and each shows a representative icon. Tabs never overlap: below 1800 px wide the main tabs use their short names, below 1400 px they drop the icons, and tabs that do not fit wrap onto further lines without mixing main and administrative tabs on the same line.
  • Public documentation: Help, the Readme and the Changelog open without signing in, with a Sign in link. Every Help chapter is available to every reader except Reporting (old), which requires that feature.
  • Workspace mappings: Map applies Vendor, Region and Cluster mappings to CDRs that are already mapped, replacing the previous result without a prior Clear; a mapping left as "No … mapping" keeps its previous result, and re-mapping only Vendor recalculates it on the stored rows instead of rebuilding the CDR. Clusters — Geospatial polygons fill the CDR Cluster column like Region polygons fill Region, from the Map dialog and from the mapping selectors when importing CDRs.
  • Read-only viewers: the user-viewer role can explore the workspace and generate jobs (Dashboard PPTs with any filters, Scoring, Network Insights, queries and reports) but can no longer upload, delete, reprocess, stop, map or clear datasets, change NR Modes, recreate combined tables or rematerialize fields, or save, rename or delete Dashboards, saved queries and Scoring jobs; the controls are hidden and the server rejects these requests.

🐛 Bug fixes:

  • Interactivity packet-error ratio honors IFNULL loss components while requiring a positive observed Packets_Sent denominator.
  • Road scoring uses the corrected Drive Connecting Roads environment name and Connecting Roads source selector.
  • GAP comparisons fall back to the reference operator's All vendor group when an exact vendor match is unavailable, preserving other aggregation boundaries and removing obsolete missing-baseline warnings.
  • Saving methodologies verifies persisted environment names/source selectors and preserves pending environment edits when saving hierarchy or priorities. Switching after save no longer creates a false unsaved-change warning; historical result labels reflect environment renames without changing calculations.
  • Scoring PowerPoint exports avoid malformed table/chart XML and allocation labels that caused repair prompts or blank slides.
  • Matching scoring selections enable Recalculate instead of Calculate, including jobs saved before engine updates; recalculation updates the existing job, its displayed date/time and results without adding a duplicate. Job lists show the latest calculations first.
  • Threshold Stacked Vertical Bars legends show the configured threshold instead of a fixed 1.6, and explicit Buckets ranges with negative limits use readable, ordered labels such as < -110, -110 to -100 and -80+.
  • Help for users without E2E Reporting access no longer lists E2E Reporting in the Product Overview index or the Datasets Analysis guide.
  • Average and Median bar charts no longer fail when a group has no valid sample; such groups, like any combination without samples, show no bar instead of a 0.00 bar.
  • Retrying a dataset through the legacy /dashboard/retry/{id} route works again.

📚 Documentation:

  • Scoring & GAP Analysis help consolidates workflows, methodology configuration and source references into one structured guide, with practical GAP examples, comparison tables and colored information/tip/warning cards. Internal help links navigate in the same tab.
  • E2E Dashboards help uses task-based navigation, concise workflows, action tables and colored notices covering selections, Apply/Save, live views, exports, cache and portability.
  • Remaining Help chapters, README and contributor guidance use task indexes, shorter explanations, reference tables and visual notices; workspace/scoring configuration, source-value semantics and Dashboard cache guidance reflect current behaviour.
  • New Network Insights help chapter covers the analysis selection, panels, data sources and pending inputs; Workspace Config help documents Spectrum Holdings.