Download README.md from Hugdrigo/decisionforge-strategic-intelligence: direct link, hf CLI and curl.
- Browser
- Download file 14 kB
-
https://huggingface.co/spaces/Hugdrigo/decisionforge-strategic-intelligence/resolve/main/README.md
- Command line
-
hf download hf://spaces/Hugdrigo/decisionforge-strategic-intelligence/README.md
-
curl -L -o README.md https://huggingface.co/spaces/Hugdrigo/decisionforge-strategic-intelligence/resolve/main/README.md
title: DecisionForge | Strategic Decision Intelligence
emoji: π§
colorFrom: indigo
colorTo: blue
sdk: static
app_file: index.html
pinned: false
license: mit
short_description: Strategic decision analysis and scenario testing.
tags:
- decision-support
- multi-criteria-decision-analysis
- strategic-planning
- scenario-analysis
- operations-research
- sensitivity-analysis
DecisionForge | Strategic Decision Intelligence
Project #78 in the Hugdrigo portfolio | Free, responsive, self-contained Hugging Face Static Space.
Short description: Strategic decision analysis and scenario testing.
DecisionForge is a professional, transparent multi-criteria decision analysis (MCDA) application. It compares strategic alternatives, reveals weighted score contributions, examines priority changes through one-way sensitivity sweeps, and stress-tests uncertain assumptions in a seeded Monte Carlo simulation. It runs completely in the browser with no backend, no package installation, no external APIs, no accounts, no paid services, no telemetry, and no AI-model inference.
Important: This is explainable decision-support software, not a trained prediction model or a source of verified financial, safety, strategic, or legal outcomes. The supplied strategic options and all their metrics are fictional demonstration data.
1. Capabilities
| Area | Implemented functionality |
|---|---|
| Decision dashboard | Live ranking, leading option, leader margin, simulated win frequency, criterion contribution bars, Pareto-dominance flags |
| Editable options | Add, rename, change data values, or delete strategic alternatives |
| Editable criteria | Add, edit or delete factors; define descriptive units, preference orientation, low/high reference anchors, and raw priority weights |
| Scenario laboratory | Instant reweighting, four demonstration presets, dynamically normalized priorities |
| Sensitivity | 21-step one-way sweep of each criterion's normalized weight from 0% to 100% with a multi-option line chart |
| Uncertainty lab | 1,200 seeded perturbation draws, win frequencies with fractional tie treatment, p10 / median / p90 weighted-score ranges |
| Portable data | Browser-local persistence, workspace JSON export/import with schema validation, example JSON, ranked CSV export |
| Accessibility | Semantic navigation, accessible input names, visible focus styles, keyboard interaction, responsive layouts, browser print summary |
| Security and privacy | Self-contained source, no third-party code, no network requests, escaped user-authored text, explicit confirmation before destructive actions |
Workspace bounds: 2β12 alternatives, 2β8 criteria, 1β60 characters for an option name, 1β55 characters for a criterion name, finite numeric values, max 300 KB imported JSON, uncertainty setting 0β25% of each criterion's reference span. No time-based historical data or external datasets are required.
2. Publish as a free Hugging Face Space
- Sign in to Hugging Face at https://huggingface.co/ and open https://huggingface.co/new-space.
- Owner:
Hugdrigo - Space name:
decisionforge-strategic-intelligence - Short description:
Strategic decision analysis and scenario testing. - License:
MIT. - SDK / Space type:
Static. - Visibility:
Public. - Create the Space and add exactly the following three files to the root of the repository:
README.mdindex.htmlLICENSE
- Commit the files and open the Space's App tab. The app requires no dependencies, tokens, payment details, environment variables, GPU, backend, or build step.
The README must begin directly with the YAML frontmatter at its first line. Its essential settings are:
sdk: static
app_file: index.html
license: mit
Official documentation: https://huggingface.co/docs/hub/spaces-sdks-static
Run locally
Open index.html in a modern browser. It is fully standalone. Depending on browser security settings, local-file origins may restrict persistent storage or some downloads; standard HTTP hosting and the Hugging Face Static runtime do not have that local-file-origin limitation. The application remains usable even when local storage is blocked (with temporary in-memory edits).
3. Using the studio
- Overview: Read the preferred option and scores. The initial results use fictional business investment alternatives.
- Decision matrix: Enter raw measurements for each alternative, such as revenue potential, months to launch, or operational risk.
- Edit criteria: Set the units, high/low anchors, whether higher or lower values are desirable, and each criterion's weight. Choose independent factors to avoid double counting.
- Scenarios: Try changing priority weights. Presets target the five example criteria. With custom criteria, tune their weights individually.
- Sensitivity: Select one criterion; follow how each option's score and rank changes as its normalized weight grows from 0 to 100%.
- Uncertainty: Select an illustrative perturbation size and examine 1,200 reproducible simulated rankings and score intervals.
- Export: Save the editable workspace as JSON before resetting or clearing browser data. Export a ranked CSV for offline analysis, or use Report to print an executive summary.
- Import: Import a previously exported
decisionforge-workspace.json. Invalid files are rejected and existing data remain unchanged; valid imports require explicit confirmation before overwriting local changes.
Edits save automatically to the browser's localStorage, when permitted. JSON export is the portable backup mechanism. No cloud synchronization is provided or claimed.
4. Reference data (fictional)
The starter workspace contains four made-up project alternatives:
- SaaS Expansion
- Regional Partnership
- Process Automation
- New Market Entry
Five illustrative, user-editable criteria:
| Criterion | Preference | Fixed low anchor | Fixed high anchor | Baseline raw weight |
|---|---|---|---|---|
Strategic fit (pts) |
Higher is better | 0 | 100 | 25 |
Annual net value ($k) |
Higher is better | 0 | 1000 | 30 |
Time to launch (months) |
Lower is better | 1 | 24 | 15 |
Delivery risk (pts) |
Lower is better | 0 | 100 | 20 |
Sustainability (pts) |
Higher is better | 0 | 100 | 10 |
All default values are synthetic and are not measured company performance. Anchors are explicit references selected by the analyst and do not auto-adjust when the analyst adds, edits, or removes options. This avoids the often-surprising rank perturbations caused solely by changing a relative min-max normalization population.
5. Numerical methodology
5.1 Criterion scoring
For criterion j, with low anchor L_j, high anchor H_j, and raw performance x_ij for option i:
t = clamp((x_ij - L_j) / (H_j - L_j), 0, 1)
criterion_utility_ij = 100 * t if higher is better
criterion_utility_ij = 100 * (1 - t) if lower is better
H_j > L_j is mandatory. Values outside the selected anchor range are capped, so they do not increase scores above 100 or below 0. The analyst must decide whether each anchor range is realistic and meaningful.
5.2 Criterion weights and option utility
All raw criterion weights are nonnegative integers between 0 and 100; at least one must be positive.
normalized_weight_j = raw_weight_j / sum(raw_weight_all_criteria)
weighted_score_i = sum(normalized_weight_j * criterion_utility_ij)
Every option's weighted score lies between 0 and 100. Equal results are ordered alphabetically for display. Small scoring gaps should not be interpreted as established differences in real outcomes.
5.3 Pareto-dominance flag
Option A dominates option B when all A's normalized criterion scores are at least B's and A is strictly superior in at least one criterion. A Pareto-dominated alternative cannot maximize a strictly positive-weight sum when its dominator's superior criterion has positive weight. The badge is informational and uses all criteria, including those currently weighted zero.
5.4 One-way sensitivity analysis
For a chosen criterion k, sweep its normalized importance p through [0, 0.05, 0.10, ..., 1].
- Assign criterion
kthe exact weightp. - Allocate remaining weight
(1-p)proportionally across the other criteria, using their existing raw weights. - If all other criteria have raw weight zero, split the remaining weight equally across those other criteria.
- Recalculate the scores across all alternatives at all 21 settings.
The chart is not a probabilistic forecast. It reveals how ranks depend on the stated preference weights.
5.5 Illustrative uncertainty stress test
Each raw performance input is independently perturbed 1,200 times using a deterministic pseudorandom generator seeded from the exact current model state. The scenario's uncertainty slider u ranges from 0 to 0.25:
U1, U2 ~ Uniform(0, 1) # two pseudorandom draws
triangular_shift = (U1 + U2 - 1) * u * (H_j - L_j)
shocked_value = clamp(x_ij + triangular_shift, L_j, H_j)
shocked_utility = weighted_score(shocked_values)
This is a symmetric triangular perturbation with maximum absolute deviation of u * (H_j - L_j). For each simulation:
- Each option's weighted score is recorded.
- Each winning option receives one win. Any exact tie splits that win evenly across the tied leaders.
- Win rate = win credits Γ· 1,200.
- The 10th, 50th and 90th percentiles use linear interpolation between sorted samples.
For unchanged inputs, the same sample sequence is reused; users can reproduce exact results. Independence, triangular error shape, identical relative uncertainty across criteria, and the choice of u are modeling assumptions rather than empirically estimated uncertainty distributions. Simulated win frequencies are not the objective probability that a business decision will succeed.
6. Data schema and export limits
JSON follows this structure:
{
"version": 1,
"criteria": [
{"id": "fit", "name": "Strategic fit", "unit": "pts", "direction": "higher", "low": 0, "high": 100, "weight": 25}
],
"options": [
{"id": "saas", "name": "SaaS Expansion", "values": {"fit": 92}}
],
"uncertainty": 12
}
This snippet shows the field contract but is not a valid import by itself because a workspace requires at least two complete criteria and two complete options. Use Example JSON to obtain a ready-to-import valid workspace.
The ranked CSV contains rank, option name, weighted score, illustrative simulated win share, each raw input and each normalized criterion score. A BOM is not prepended. CSV text cells are RFC-style quoted with embedded quotation marks doubled. Imported workspaces are validated before replacing active data.
7. Scientific and operating limitations
- Weighted additive models assume preferences can reasonably be represented by a sum of normalized utilities. Criteria may not be independent and can encode subjective judgments or duplicate each other.
- Fixed linear anchors and clipping are useful for interpretable trade-offs, but the real value of some metrics is nonlinear, discontinuous, or contextual.
- Sample strategic options are hypothetical, not actual investment or operating recommendations. No market data or user-specific records are retrieved.
- Simulation results are sensitive to the analyst's chosen perturbation range and the independence/distribution assumptions. There is no model training, statistical fitting, predictive AI, live API, or verified probability calibration.
- This tool does not solve constraints, optimize integer projects, assign resources, or perform a rigorous causal impact evaluation.
- Browser-local data can be lost when users clear site storage or switch browsers/devices. Export JSON to retain work; the app does not upload or sync it.
- Printing uses standard browser print-to-PDF if the user chooses it. No server-generated reports or backend are included.
8. QA and reproducibility
Local static validation, 15,504 numerical property checks, and headless Chromium interaction checks were run before packaging. Tests covered:
- JavaScript syntax parsing and interactive rendering.
- Validity of default normalizations, orientation handling and clipping.
- Weighted score bounds and total normalized weight of 100%.
- Monte Carlo seeded reproducibility and 100% allocation of win credits.
- Sensitivity charts, all four initial alternatives, scenario presets and changed-weight calculations.
- Editing and persistence of matrix values; creation of alternative and criterion; weight guard against zeroing every criterion.
- JSON, CSV, and example dataset exports; valid JSON import, invalid JSON rejection, alternative removal, and criterion editing.
- Empty/invalid schema rejection, zero-uncertainty tie handling, malicious HTML text escaping, and non-destructive reset confirmation.
- Desktop viewport and 390-pixel mobile layout with internally scrollable matrix and no viewport-level horizontal overflow.
- No browser uncaught JavaScript errors on tested interactions.
Scope of QA: Local browser checks are not equivalent to a deployed Space's production smoke test. After publication, open the Hugging Face App page and independently confirm that it renders, edits, exports, imports, and persists local state under the hosted origin.
9. Project structure and licensing
DecisionForge_Project_78/
βββ README.md # Hugging Face frontmatter, usage, methodology
βββ index.html # Entire application: HTML + CSS + JavaScript
βββ LICENSE # MIT License (copyright Hugdrigo, 2026)
Hugging Face Static Space documentation: https://huggingface.co/docs/hub/spaces-sdks-static
Author: Hugdrigo | Project: #78 | License: MIT | Dependencies: None.