# SpiceLogic Inc > SpiceLogic builds .NET UI components and decision-analysis software: the WinForms and WPF HTML Editor controls, Analytic Hierarchy Process (AHP) software, Decision Tree Pro, and related tools. This file indexes the product documentation and summarizes each page; follow a link for the complete page. An MCP server with live documentation and API tools is also available for the HTML Editor controls at https://mcp.spicelogic.com/mcp. ## Free online tools - [AHP priority calculator](https://spicelogic.com/ahp-calculator) - [Markov chain calculator](https://spicelogic.com/markov-chain-calculator) - [Certainty equivalent calculator](https://spicelogic.com/certainty-equivalent-calculator) ## Analytic Hierarchy Process Software ### [Getting Started](https://spicelogic.com/docs/ahp-software/intro/335) A step-by-step AHP tutorial for buying a car, showing how to define the goal, add criteria, perform pairwise comparisons, and rank alternatives. **Key points:** - AHP follows six steps: define decision problem and criteria, define alternatives, use pairwise comparison for priorities, check consistency, calculate weights and rank alternatives, review with sensitivity analysis. - Example: compare two cars on safety, comfort, and cost by pairwise comparison. - Criteria priorities update as you enter comparisons (chart updates live). - Compare each alternative one criterion at a time; software ranks by overall priority. - Can add, edit, or delete criteria and alternatives during the model. - Sensitivity analysis shows how changes in judgments affect the final ranking. **Answers questions like:** how do I get started with AHP, pairwise comparison example, how does AHP ranking work ### [Consistency Ratio and Transitivity Rule](https://spicelogic.com/docs/ahp-software/intro/ahp-consistency-ratio-transitivity-rule-388) Explains how the consistency ratio measures whether your pairwise comparisons follow basic logic, and how the transitivity rule reduces comparisons needed. Covers the mathematical calculation of the ratio and Saaty's recommended threshold. **Key points:** - Consistency ratio ranges from 0 (perfectly consistent) to higher numbers as judgments become less consistent; Saaty recommended keeping it below 0.1. - Calculated as Consistency Index divided by Random Index; the software highlights values above 0.1 in red. - Transitivity rule: if A is 2 times B and B is 3 times C, then A should be 6 times C; enforcing this rule cuts comparison count from n(n-1)/2 down to n-1. - When transitivity is enforced, consistency ratio becomes 0 because software prevents intransitive judgments. - The page shows step-by-step calculation using eigenvalue methods for a concrete 3-item matrix. **Answers questions like:** What does consistency ratio mean, how do I reduce the number of comparisons, what is transitivity in AHP, when should I fix inconsistent judgments ### [Sensitivity Analysis](https://spicelogic.com/docs/ahp-software/intro/ahp-sensitivity-analysis-390) Shows three practical methods for testing which criteria and judgments most influence your final AHP decision. Use this to identify which inputs truly matter before presenting recommendations. **Key points:** - Slider-based real-time sensitivity: watch chart results change instantly as you move pairwise comparison sliders to gauge influence. - Criteria sensitivity: turn off one criterion in the Weighted Attributes chart to see if the winner changes. - One-way sensitivity analysis: expand the Sensitivity Analyzer tab to rank variables by sensitivity; sensitivity rank = 100% minus the percentage change needed to alter the decision. - Sensitivity charts show the breakpoint where the winning option switches to another choice. - All charts support export to Excel, copy to clipboard, and data table display via right-click context menu. **Answers questions like:** Which inputs matter most to my decision, how sensitive is my choice to changes, when does the winner change, which criteria have the biggest effect ### [Managing Criteria and Subcriteria](https://spicelogic.com/docs/ahp-software/intro/ahp-sub-criteria-392) Step-by-step guide to adding, editing, deleting, and reorganizing criteria and subcriteria in your AHP hierarchy. Shows diagram navigation and how to manage pairwise comparisons for each level. **Key points:** - Add a criterion or subcriterion: select any node, click the plus sign in the fly-over menu. - Rename: double-click a node name to edit and press Enter; press Esc to cancel. - Delete: select a node and press Delete, or right-click for context menu; Delete Children removes the entire subtree. - Change pairwise comparisons: select a node and use the Priority Trade-offs panel at the bottom; check Matrix view to see the full comparison matrix. - Diagram Navigator tab lets you zoom, pan, adjust node width and spacing. **Answers questions like:** How do I add criteria to my model, how do I rename criteria, how do I restructure my hierarchy, how do I change comparisons after creating criteria ### [Managing Options](https://spicelogic.com/docs/ahp-software/intro/397) Shows how to add, edit, and delete options (alternatives) in your AHP model. Covers both inline editing and wizard-based addition of multiple options. **Key points:** - Add option: click "Add New Option" button or right-click the options panel. - Edit: double-click an option name to rename it inline. - Delete: right-click and choose Delete, or select and press Delete key. - Adding multiple new options opens a wizard; when finished, the software automatically asks for required pairwise comparisons. - If Matrix view was selected, comparisons appear in matrix form instead of step-by-step during wizard. **Answers questions like:** How do I add alternatives to my model, how do I rename options, how do I remove an option, how do I add multiple options at once ### [Results and Charts](https://spicelogic.com/docs/ahp-software/intro/394) Overview of all chart types available in AHP Software for understanding decision results. Explains how to access, customize, and export chart data. **Key points:** - Criteria Weight Results: pie charts and column charts in the Pairwise Comparison panel show priority distribution. - Option Results: see each option's attribute distribution across criteria. - Overall Decision Results: Priorities, Attributes Radar, and Weighted Attributes charts in Options Analyzer panel. - Weighted Attributes chart enables quick sensitivity: click a legend to hide one criterion and see which option wins without it. - All charts support data labels (hidden by default for clean display), data table export to Excel, clipboard copy, PNG/JPG save, and filtering by legend click. **Answers questions like:** What charts does AHP provide, how do I interpret the results, how do I export chart data, how do I compare options visually ### [AHP Calculation Methods](https://spicelogic.com/docs/ahp-software/intro/ahp-calculation-methods-396) Complete reference for the four priority calculation methods available in AHP: Approximate Eigenvector (default), Largest Eigenvector, Geometric Mean, and Fuzzy Geometric Mean. Also covers weighted sum versus weighted product for final option scoring. **Key points:** - Approximate Eigenvector (default): normalize each column, then average each row; works well with low inconsistency. - Largest Eigenvector: uses dominant eigenvalue of comparison matrix; slower but more rigorous. - Geometric Mean: calculate geometric mean of each row, normalize by dividing by sum of all geometric means. - Fuzzy Geometric Mean: for fuzzy AHP analysis; follows a specific academic formula. - Final option value uses Weighted Sum (default) or Weighted Product; Weighted Sum is standard and recommended. **Answers questions like:** Which calculation method should I use, how are priorities calculated, what is the difference between methods, when should I use weighted product instead of weighted sum ### [Group Decision Making](https://spicelogic.com/docs/ahp-software/intro/ahp-group-decision-making-395) Explains how to aggregate decisions from multiple decision-makers into one group recommendation using two methods: Aggregation of Individual Judgments (AIJ) or Aggregation of Individual Priorities (AIP). **Key points:** - No cloud setup required; all members must use identical decision structure (same criteria, subcriteria, and options). - AIJ aggregates each member's pairwise comparisons using weighted geometric mean, then calculates priorities from the aggregated matrices. - AIP takes each member's final calculated priorities and averages them arithmetically; simpler but less sophisticated. - Member Manager window lets you add, edit, or delete group members and their project-file paths. - Select aggregation method via radio buttons in Group Decision tab; click info button to see visual explanation of each method. **Answers questions like:** How do I combine decisions from multiple people, what is AIJ versus AIP, how do I load member project files, how do I aggregate group decisions ### [Reporting and Printing](https://spicelogic.com/docs/ahp-software/intro/391) Describes how to generate PDF or Excel reports of your AHP model and analysis. Covers print preview and file creation options for sharing results. **Key points:** - Click PDF button in Reporting menu to create a PDF report; click Excel button for Excel export. - Print Preview uses a built-in PDF viewer; may require administrator access on some Windows systems. - If Print Preview gives an error, you can still create the PDF report from Reporting menu and print from your PDF viewer instead. - File menu also has Print command; if it fails, use the PDF report workaround. - The software shows an error message if you try to report before creating a model. **Answers questions like:** How do I print my AHP model, how do I export results to PDF or Excel, how do I share my analysis ### [Data Collection](https://spicelogic.com/docs/ahp-software/misc/449) Methodology for gathering the pairwise judgments that drive AHP models. Covers the entire data-collection workflow: preparing participants, asking focused questions at the right scale, and validating results via the consistency ratio. **Key points:** - Judgments come from a single decision-maker, groups, surveys, expert interviews, or workshops - Hierarchy must be clear before judging - participants need to understand goal, criteria, and alternatives - Ask focused questions tied to one criterion to keep answers to the scale the software expects - After entry, check consistency ratio; high values indicate one or two judgments causing most variance **Answers questions like:** how do I collect AHP data, what scale should I use, how do I involve stakeholders, what does consistency ratio mean ## Decision Tree Pro ### [Getting Started](https://spicelogic.com/docs/decision-tree-software/intro/decision-tree-290) Tutorial on building a decision tree: creating nodes, setting probabilities, assigning payoffs, and interpreting expected value and recommended policy. **Key points:** - Root node: start with Decision Node, Chance Node, or Markov Chance Node. - Build actions and events: drag nodes from fly-over menu; copy/paste to reuse subtrees. - Probabilities: principle of indifference (0.5 default for two events); click question mark to customize. - Payoff types: numeric, subjective, Boolean, cost-effectiveness. - Policy: green highlight shows recommended action path; Expected Value on each node guides the choice. **Answers questions like:** how to build a decision tree, decision tree tutorial, actions and events, expected value, recommended policy ### [Decision Tree Elements](https://spicelogic.com/docs/decision-tree-software/intro/decision-tree-elements-332) Covers the six core node types in Decision Tree Pro - decision nodes (square), chance nodes (circle), parallel nodes, terminal nodes - plus how to configure probabilities and payoffs. Essential reference for anyone building a decision tree model. **Key points:** - Decision nodes represent choices and contain action nodes; chance nodes represent uncertainty and contain events with probabilities; both can serve as root nodes. - When probability values are unspecified, the software applies the principle of indifference, treating all events as equally likely; it auto-scales probabilities to sum to 1. - Payoffs can be profit, cost, time, utility, or subjective measures; configured as numeric, subjective, Boolean, or cost-effectiveness based in a setup window. - Parallel nodes (SpiceLogic extension) model simultaneous decision trees or non-mutually-exclusive events; terminal nodes are optional and display total payoff for a terminal path without changing calculations. - Nodes are edited by double-clicking; fly-over menus show only valid child node types for the selected node; conversion between decision and chance nodes is supported. **Answers questions like:** what are decision and chance nodes, how do I set probabilities in a decision tree, how do payoffs work, what is a parallel node ### [Manipulate the Tree Elements](https://spicelogic.com/docs/decision-tree-software/intro/293) Edit decision tree elements: cut, copy, paste, replace, delete, and insert nodes to reshape the model. **Key points:** - Vertical arrangement: drag nodes up/down to reorder actions. - Convert node type: right-click decision or chance node to swap types. - Copy/paste node or subtree: select, press Ctrl+C, select destination, Ctrl+V. - Replace a node: copy desired subtree, select target, choose Replace; works for root too. - Delete node or children: context menu option; careful, irreversible. - Insert decision or chance node between two connected nodes to add a layer. **Answers questions like:** edit decision tree, restructure tree, copy paste nodes, delete branches ### [Planning Point](https://spicelogic.com/docs/decision-tree-software/intro/295) Shift the planning point (root of analysis) to recalculate tree from a mid-tree decision node after earlier branches are assumed. **Key points:** - Current planning point: root node by default. - Change planning point: select mid-tree decision node, use fly-over menu to set as planning point. - Effect: calculations, policy, and charts update from that node onward; earlier branches are frozen. **Answers questions like:** planning point, what-if from decision node, recalculate from midpoint ### [Diagram View Manipulation](https://spicelogic.com/docs/decision-tree-software/intro/296) Control decision tree diagram layout: pan, zoom, adjust node width, and spacing using the Diagram Overview panel. **Key points:** - Pan/Zoom: rectangle in Overview panel controls view; zoom slider and fit-to-screen buttons. - Node Width slider: widen nodes to show full text (default truncated with ellipsis). - Horizontal spacing slider: gap between left/right siblings. - Vertical spacing slider: gap between levels. **Answers questions like:** diagram layout, zoom tree, adjust node size, diagram spacing ### [Decision Criteria](https://spicelogic.com/docs/decision-tree-software/intro/decision-criteria-333) Explains seven decision criteria for analyzing trees based on different risk attitudes and decision-maker preferences. The default is Maximize Expected Utility. **Key points:** - Maximize Expected Utility (default) - selects highest expected utility; define utility functions for outcomes like money or time. - Maximin - chooses action with best worst-case outcome; for cautious, pessimistic decision-makers. - Maximax - chooses action with best best-case outcome; for optimists comfortable with downside risk. - Minimax Regret - minimizes maximum regret (opportunity cost); balances regret against other criteria. - Most Likely - assumes highest-probability event occurs at each chance node, selects best payoff. - Hurwicz Optimism-Pessimism Rule - combines best and worst outcomes with adjustable alpha (0-1) degree of optimism; alpha 0 = Maximin, alpha 1 = Maximax. - Laplace Principle of Indifference - treats all outcomes as equally likely (probability 1/N) when unknown. **Answers questions like:** how do I choose a decision criterion, which criterion to use for risk-averse decisions, Maximin vs Maximax difference ### [Decision Making Under Uncertainty: 5 Decision Rules](https://spicelogic.com/docs/decision-tree-software/intro/decision-making-under-uncertainty-rules-497) Compares five decision rules for choosing under uncertainty when probabilities are unknown: Maximin (play it safe), Maximax (aim for the best), Minimax Regret (avoid kicking yourself), Hurwicz (balance hope and caution), Laplace (treat all outcomes as equal). Each reflects a different risk attitude. **Key points:** - Maximin chooses the option with the best worst case; Maximax chooses the best best case; Minimax Regret minimizes regret, not payoff. - Hurwicz mixes best and worst cases using alpha (optimism level 0 to 1); Laplace averages all outcomes assuming equal likelihood. - Decision Tree Analyzer applies all five rules on one payoff table. - Use Maximin when bad outcomes hurt badly; Maximax when you can chase the upside; Hurwicz when you control your optimism. **Answers questions like:** which decision rule should I use, how do I decide under uncertainty without probabilities, what is the Maximin criterion, what is Minimax Regret ### [Getting Started](https://spicelogic.com/docs/decision-tree-software/cost-effectiveness/decision-tree-cost-effectiveness-analysis-409) Introduction to Cost-Effectiveness Analysis in the Decision Tree software. Explains how to measure both cost and benefit of treatment options side by side to identify the best value. **Key points:** - Cost-Effectiveness Plane plots effectiveness (x-axis) versus cost (y-axis); efficiency frontier shows smart buys. - Effectiveness measures: QALY (quality-adjusted life years), DALY (disability-adjusted life years), or custom variable (cases cured, infections prevented). - ICER (Incremental Cost-Effectiveness Ratio) shows extra cost per extra unit of benefit between options (e.g., $10,000 per QALY). - Dominated options sit above the efficiency frontier; strongly dominated (red) costs more for less benefit; extended dominated (orange) costs more for only slightly more benefit. - Standard Care baseline: pick one option as reference and see every other option's cost and benefit relative to it. **Answers questions like:** What is cost-effectiveness analysis, how do I analyze treatment options by cost and benefit, what does ICER mean, how do I use the efficiency frontier ### [Cost-Effectiveness with QALY](https://spicelogic.com/docs/decision-tree-software/cost-effectiveness/qaly-quality-adjusted-life-year-402) Explains Quality Adjusted Life Years (QALY) as an effectiveness measure combining length and quality of life into one metric. Shows how software calculates QALY using two formulas and how to set up payoff editors. **Key points:** - Traditional QALY = utility times length of life; 1 year in perfect health = 1 QALY, half-quality year = 0.5 QALY. - Complex-number version: QALY = square root of (life-years squared + utility squared); less common but available. - In payoff editor, enter Utility (0 to 1) and Time (years) separately; software calculates QALY automatically. - Alternative: enter a pre-calculated QALY directly as a single custom variable with Minimum and Maximum bounds. - Worked example compares two treatments: first gives 4 years at 0.7 utility (2.8 QALY), second gives 7 years at 0.4 utility (2.8 QALY). **Answers questions like:** What is a QALY, how do I calculate quality-adjusted life years, which QALY formula should I use, how do I enter QALY in the software ### [Cost-Effectiveness with DALY](https://spicelogic.com/docs/decision-tree-software/cost-effectiveness/daly-disability-adjusted-life-year-403) Explains Disability Adjusted Life Years (DALY) as an effectiveness measure counting healthy life lost to illness or early death. Shows how software calculates DALY using the Murray integral formula or simpler YLL plus YLD direct entry. **Key points:** - DALY = Years of Life Lost (YLL) plus Years Lived with Disability (YLD); lower DALY is better. - Murray formula includes optional age weighting and disability weight (0 = full health, 1 = worst case). - Two input methods: full Murray formula (asks for cases, duration, disability weight, etc.) or direct YLL and YLD values. - Worked example: woman with bipolar depression starting at age 35, living 10 years then dying; DALY without treatment = 21.75, with treatment = 7.94. - Software calculates DALY and recommends option with lower DALY (minimizes healthy years lost). **Answers questions like:** What is a DALY, what does disability-adjusted life years measure, how do I calculate DALY, when should I use DALY versus QALY ### [Dominance and the Cost-Effectiveness Plane](https://spicelogic.com/docs/decision-tree-software/cost-effectiveness/cost-effectiveness-plane-438) Explains dominance concepts on the Cost-Effectiveness Plane: strong dominance (costs more, gives less), extended dominance (ruled out by a third option), and efficiency frontier (smart buys). **Key points:** - Strong dominance (red dot): option costs more and delivers less benefit; clearly worst choice. - Extended dominance (orange dot): option costs more than a cheaper one and gives more benefit, but a third even-pricier option gives so much more benefit the middle option becomes uneconomical. - Efficiency frontier: line connecting genuinely worth-considering options; slope of each segment is the ICER between consecutive options. - Willingness-to-pay threshold: if willing to pay $21,000 per QALY, options meeting or beating that ICER are highlighted in light green. - Relative to standard care: shift axes so standard care sits at (0, 0) and see every other option's cost and benefit relative to current practice. **Answers questions like:** What does dominance mean in cost-effectiveness, what is the efficiency frontier, how do I identify dominated options, what is ICER ### [Cost-Effectiveness Analysis: ICER, CE Plane, Dominance](https://spicelogic.com/docs/decision-tree-software/cost-effectiveness/cost-effectiveness-analysis-icer-dominance-498) Cost-effectiveness analysis for health treatments comparing cost and health gain (measured in QALYs). Covers ICER (incremental cost-effectiveness ratio), cost-effectiveness plane, dominance, efficiency frontier, and net monetary benefit. **Key points:** - ICER is the extra cost per extra QALY gained; lower is better. - Strong dominance: an option that costs less and gives more health; extended dominance: an option whose ICER is higher than a better option's ICER. - Efficiency frontier connects options that give best health for the money; dominated options sit above it. - Net monetary benefit (threshold x QALYs - cost) converts cost and health into one number; choose the option with highest NMB at your willingness-to-pay threshold. **Answers questions like:** what is ICER, how do I find dominated options, what is the cost-effectiveness plane, is $20,000 per QALY a good deal ### [Introduction to the Markov Models](https://spicelogic.com/docs/decision-tree-software/markov-models/markov-decision-process-399) Comprehensive introduction to Markov Chain and Markov Decision Process concepts in Decision Tree Software. Explains when Markov models fit, the setup wizard, states, transitions, actions, and reading results. **Key points:** - Markov models handle cyclic behavior over time; a patient can be Healthy, get Sick, recover, and get Sick again. - States are situations the system can be in; transition probabilities define the odds of moving between states each cycle. - Cohort simulation runs an imaginary group through states cycle by cycle; settings control cohort size, cycle count, convergence, and discounting. - Initial probabilities: specify how likely each state is at the start (often everyone in one state). - Markov Decision Process: add actions inside states so the model determines the best action for each situation. **Answers questions like:** When should I use a Markov model, how do I set up states and transitions, what is cohort simulation, what is a Markov Decision Process ### [Life Expectancy with Time variant probability](https://spicelogic.com/docs/decision-tree-software/markov-models/markov-model-life-expectancy-398) Detailed example of building a life expectancy Markov model where transition probabilities vary by age. Shows how to import age-based death rates from Excel and interpret survival results. **Key points:** - Model follows 10,000 people through age-based survival rates; states are "Well" and "Dead." - Time-variant probabilities: mark the checkbox and use a lookup table to set different death chances for each cycle. - Import from Excel: paste two columns (cycle number and death chance) directly into the lookup table. - Absorbing state: mark "Dead" as absorbing so no transitions leave that state. - Result shows expected life years; charts display cohort traces showing how the group moves between states cycle by cycle. **Answers questions like:** How do I build a life expectancy model, how do I use age-based probabilities, how do I import data from Excel, how do I interpret survival curves ### [QALY and Cost with Markov Model](https://spicelogic.com/docs/decision-tree-software/markov-models/markov-model-qaly-healthcare-430) Worked example combining Markov Chain modeling with Cost-Effectiveness Analysis in Decision Tree software. Shows how to track both life years and cost through health state transitions. **Key points:** - Model tracks 100,000 people through states: Well, Recurrence, Dying by Disease, Dead. - Transition probabilities define yearly movement between states; costs and life years attach to each state. - Setup wizard collects states, simulation settings (55 cycles = 55 years), transition probabilities, initial state (Well), and payoffs. - Cost-Effectiveness Analysis in Healthcare option tracks both life years and dollars side by side. - Result: expected life years and expected cost shown in Markov Analyzer tooltip when hovering over the Markov node. **Answers questions like:** How do I build a Markov model with costs, how do I track life years and money together, how do I set payoffs for health states, how do I interpret Markov results ### [Choosing between two treatment plans](https://spicelogic.com/docs/decision-tree-software/markov-models/431) Real example placing two Markov Chains inside a Decision Tree to compare Surgery versus Medication over 10 years. Shows how Markov Decision Process determines optimal treatment if complications occur. **Key points:** - Surgery path: states are Well (0.89 QALY), Recurrence (0.5 QALY), Dead (0). - Medication path: states are Somewhat Good (0.68 QALY), Severe Side Effect (0.2 QALY), Dead. - Result: Medication yields 4.17 QALY over 10 years versus Surgery's 2.89 QALY; software highlights best path in green. - Markov Decision Process: add actions inside states (e.g., if Severe Side Effect, choose Surgery or Change Medication) so model finds best response per state. - Markov Analyzer panel shows detailed year-by-year traces; verify surprising results there before deciding. **Answers questions like:** How do I compare treatments with Markov chains, how do I track outcomes over time, what is a Markov Decision Process, how do I add decisions inside Markov states ### [Gambler's ruin](https://spicelogic.com/docs/decision-tree-software/markov-models/markov-chain-gambler-ruin-433) Classic Gambler's Ruin problem worked example using Decision Tree software's Markov model feature. Shows step-by-step setup and how to interpret absorption probabilities. **Key points:** - Gambler brings $50, bets $25 per spin (50-50 chance), stops if broke ($0) or reaches $75 (wins $25). - Wizard setup: add four states ($0, $25, $50, $75), no actions needed, set transition probabilities, pick starting state. - Transition probabilities: $0 and $75 are absorbing (1 back to self, 0 elsewhere); $25 and $50 each have 50-50 moves. - Starting from $50: 33% chance broke, 67% chance reaches $75; closer to target = better odds. - Change starting state anytime to see how different initial amounts affect winning versus losing probabilities. **Answers questions like:** How do I set up a Markov model, how do I define absorbing states, how do I interpret absorption probabilities, what does starting state affect ### [Decision Policy](https://spicelogic.com/docs/decision-tree-software/analysis/decision-policy-338) Explains how the software highlights the recommended decision path through the tree and displays policy as a set of clear rules for each situation. **Key points:** - Recommended strategy edges are drawn in green; action nodes along best paths turn green too. - Shows the right move at each decision point, not just one overall answer; adapts as uncertain events unfold. - Policy Window lists policy as plain rules (e.g. "if trial is positive, go ahead with full launch"). - Access rule set via right-click on diagram or View menu. - Useful for explaining decisions to others, sharing in email or report, or as an instruction sheet. - Green coloring especially valuable in large trees with many branches. **Answers questions like:** how do I see the recommended strategy, what does green mean in a decision tree, how do I view the policy rules ### [Decision Tree Node Analysis](https://spicelogic.com/docs/decision-tree-software/analysis/decision-tree-analysis-294) Node tooltips show expected value, probability, and other metrics; gray numbers on diagram display expected values for quick comparison. **Key points:** - Hover over node: tooltip shows metrics (expected value, payoff, probability). - Gray numbers on diagram: default Expected Value visible at a glance; can hide all or per-node. - Switch metric display: right-click diagram to show Total Payoff instead of Expected Value. - Node Analysis tab: risk profile breakdown shows best/worst cases and outcome spread for selected node. - Monte Carlo Simulation: if node or children have distributions, risk profile reflects full outcome range. **Answers questions like:** node metrics, expected value on diagram, risk profile, worst case analysis ### [Various Risk Metrics](https://spicelogic.com/docs/decision-tree-software/analysis/risk-metrics-323) Decision Tree Analyzer offers wide range of risk metrics: Expected Value, Standard Deviation, Semi-Variance, Skewness, Maximum Regret, Risk Measures, Entropy, Value at Risk, Expected Shortfall, Range. **Key points:** - Expected Value: average outcome weighted by probability. - Standard Deviation: how spread out results are (low = predictable, high = risky). - Semi-Variance: spread of bad outcomes only (below aspiration level). - Baumol's Risk Measure: E - k×σ (how much below average you can afford to go). - Roy's Safety-First: probability of falling below aspiration level. - Value at Risk: worst loss at chosen confidence level (e.g., 95% sure you won't lose more than X). - Entropy: how unpredictable the outcome is; higher = more surprise. - Range chart: lowest to highest possible payoff at a glance. **Answers questions like:** risk metrics, standard deviation, downside risk, confidence level loss, entropy ### [Risk Profile](https://spicelogic.com/docs/decision-tree-software/analysis/risk-profile-319) Risk Profile: chart showing all possible payoffs and their probabilities; reveals spread, best/worst cases, and stochastic dominance between options. **Key points:** - Default: Probability Density Function (PDf) or bar chart for discrete outcomes. - Views: Cumulative Distribution (CDF, "at most X"), Survival Function (SF, "at least X"), Value Set (individual values). - Stochastic Dominance: one option beats another at every probability level (FSD = First-Order, SSD = Second-Order, TSD = Third-Order). - Monte Carlo Simulation: if distributions attached, risk profile auto-generated from 10,000+ samples. - Show top X options: filter to strongest contenders when many actions compete. **Answers questions like:** probability distribution of outcomes, compare risk, worst case, best and worst scenarios ### [Value of Information](https://spicelogic.com/docs/decision-tree-software/analysis/value-of-information-320) Expected Value of Perfect Information (EVPI): fair price to pay for info that removes all uncertainty; if info costs more, it's not worth buying. **Key points:** - Formula: EVPI = (Expected Value With Perfect Info) - (Expected Value Without). - Example: item at Market 1 or 2, each unknown price. Without info, spend $17.50 on average. With both prices known, spend $16.25. EVPI = $1.25. - Interpretation: never pay more than EVPI for information. - Software calculates automatically in Options Analyzer; ranks inputs by info value. **Answers questions like:** how much to pay for information, is this data worth buying, research ROI ### [Sensitivity Analysis](https://spicelogic.com/docs/decision-tree-software/analysis/sensitivity-analysis-330) Sensitivity Analysis identifies which inputs drive the decision most; shows how far each number must move before recommendation flips. **Key points:** - Metric: Sensitivity Index = 100 - (% change needed to flip decision); high = sensitive, low = robust. - Workflow: build tree, read recommendation, expand Sensitivity Analyzer, sort by index. - Chart: plot Expected Value of each option vs. input range; see crossing point where decision switches. - Decision criteria: change criterion (Expected Value, Maximin, Minimax Regret, etc.) to resensitize inputs. - Filtering: show only probability or payoff inputs for focused analysis. - Quick check: hand button on input field opens sensitivity chart immediately. **Answers questions like:** which input matters most, sensitivity analysis, robust decision, which assumption to verify ### [Monte Carlo Simulation](https://spicelogic.com/docs/decision-tree-software/analysis/monte-carlo-simulation-321) Monte Carlo Simulation: run a decision thousands of times, drawing random samples from probability distributions, to build the output distribution. **Key points:** - Why: when Profit = Revenue - Expense and both are uncertain (distributions), you can't just subtract one number from another. - How: repeat 10,000+ times: draw random Revenue sample, draw random Expense sample, compute Profit, tally result. - Histogram: sort results into bins; each bin's count / 10,000 = probability for that payoff range. - Automatic: when probability distributions are attached to payoffs, software runs Monte Carlo and displays Risk Profile. - Customizable: number of iterations (accuracy), max bin count (granularity). **Answers questions like:** Monte Carlo method, uncertain payoffs, probability distribution calculations, simulation ### [Stochastic Dominance](https://spicelogic.com/docs/decision-tree-software/analysis/stochastic-dominance-324) Stochastic Dominance: ranked hierarchy of preferences between risky options when expected value alone misleads; FSD > SSD > TSD, plus Deterministic and Mean-Variance. **Key points:** - First-Order (FSD): option A outranks B if A has ≥ probability of reaching ANY payoff level, and > at some level. - Second-Order (SSD): A has higher expected value AND lower risk (CDF shows A≥B cumulative prob at all payoffs). - Third-Order (TSD): weaker ranking; prefer higher expected value but with less pronounced risk difference. - Deterministic: A's minimum > B's maximum (A always wins). - Mean-Variance: A has higher mean AND lower standard deviation. - Software shows all ranking types in dominance diagram; useful for risk-averse decision-makers. **Answers questions like:** compare risky options, which investment is safer, stochastic ordering, dominance hierarchy ### [Introduction to Utility Function](https://spicelogic.com/docs/decision-tree-software/utilityfunction/utility-function-297) Utility quantifies satisfaction from an outcome; payoff value (money, storage) maps to utility (0-1 or 0-100 scale) to reveal non-linear preferences. **Key points:** - Utility scale: 0 = no satisfaction, 1 = full satisfaction; negative utility = disutility (bad outcome). - Key insight: more is not always better; satisfaction plateau once need is met ("satisficing"). - Use cases: multi-criteria trade-off (storage vs. cost), risky gambles (avoid bigger but riskier payoff). - Built-in utility function types: Exponential (risk aversion for money), Bernoulli (diminishing returns), custom piecewise/expression. - Wizard: lottery game helps deduce your personal utility function from certainty equivalents. **Answers questions like:** utility function, satisfaction curve, diminishing returns, risk aversion function ### [Eliciting Utility Function by Game Play](https://spicelogic.com/docs/decision-tree-software/utilityfunction/298) Game-based wizard elicits personal utility function by asking simple lottery questions (certainty equivalents). **Key points:** - Workflow: Objectives Manager > Edit objective > "Find my Utility Map" link. - Lottery: software shows a bet (e.g., 50% win $X, 50% lose $Y); you name a sure payoff you'd accept instead. - That sure amount = Certainty Equivalent; software solves for utility curve. - Multiple rounds: play several lotteries, refine curve, click "Use the Generated Utility Function" to adopt it. **Answers questions like:** elicit utility, certainty equivalent game, personal utility curve, how risk averse am I ### [Exponential Utility Function](https://spicelogic.com/docs/decision-tree-software/utilityfunction/exponential-utility-function-299) Exponential Utility Function captures risk aversion using e^(-x/R) formula; R (Risk Tolerance) determines curve shape and how much risk the decision-maker can stomach. **Key points:** - Formula: U(x) = 1 - e^(-x/R); R is Risk Tolerance (larger R = flatter curve = less risk-averse). - Risk Tolerance R = biggest payoff you'd gamble for (50% win X, 50% lose X/2). - Scaling parameters a, b normalize utility to user's min/max payoff range; software calculates them. - Absolute Risk Aversion = 1/R (constant, independent of wealth). - Marginal Utility, Absolute/Relative Risk Aversion functions all shown in utility editor; software solves math automatically. **Answers questions like:** exponential utility, risk tolerance, how to measure risk aversion, money utility curve ### [Bernoulli Utility Function](https://spicelogic.com/docs/decision-tree-software/utilityfunction/bernoulli-utility-function-300) Bernoulli Utility Function models diminishing marginal utility (richer you are, less an extra dollar matters); log-based formula U(W) = ln(W). **Key points:** - Concept: marginal utility inversely proportional to wealth; dU/dW = a/W. - Formula: U(W) = b + a × ln(W); constants a, b scale to user's payoff range. - Properties: more realistic than exponential for wealthy persons; relative risk aversion decreases as wealth grows. - Caveat: ln(0) undefined; minimum payoff must be > 0 (use $1 if $0 possible). - Scaling parameters, Marginal Utility, Absolute/Relative Risk Aversion all derived and shown in editor. **Answers questions like:** Bernoulli utility, logarithmic utility, wealth and happiness, money satisfaction curve ### [Custom Utility Function Equation](https://spicelogic.com/docs/decision-tree-software/utilityfunction/utility-function-equation-301) Write custom utility function using math expressions instead of plotting points; full expression editor supports functions, operators, and piecewise rules. **Key points:** - Workflow: Objective Editor > "Associated Utility Function" tab > Custom Expressions button. - Example: 1 - exp(-x / 5000) maps payoff x to utility. - Charts tab: view curve in real-time as you edit expression. - Full math support: sqrt, log, exp, sin, cos, tan, abs, pow, round, ln, factorial, gamma, beta, binomial, erf, trig inverse, +, -, *, /, ^, (), conditionals (AND, OR, ==, !=, <, <=, >, >=). **Answers questions like:** custom utility formula, write utility function, math expression utility ### [Certainty Equivalent Calculation](https://spicelogic.com/docs/decision-tree-software/utilityfunction/certainty-equivalent-calculation-302) Certainty Equivalent (CE) is the guaranteed payoff amount you'd accept instead of a risky gamble; inversely related to risk aversion and utility function. **Key points:** - Definition: CE is sure money that feels equivalent to a risky opportunity (e.g., risk $50k to gain $400k vs. accept sure $60k). - Formula: CE = U^(-1)(Expected Utility), where U is your utility function. - Working backward: if U(400k) = 1 and U(-50k) = 0, EU = 0.5, then CE ≈ $60k (read from utility curve at 0.5). - Software computes automatically; higher CE under same payoff range = more risk-tolerant person. **Answers questions like:** certainty equivalent, sure payoff equivalent, how much to accept instead of gamble, risk premium calculation ### [Risk Premium Calculation](https://spicelogic.com/docs/decision-tree-software/utilityfunction/risk-premium-303) Risk Premium (RP) is money you'd sacrifice to eliminate risk; gap between Expected Monetary Value and Certainty Equivalent = cost of peace of mind. **Key points:** - Formula: RP = EMV - CE. - Example: $175k EMV, $60k CE = $114.96k risk premium (person pays $115k in expected value to avoid the gamble). - Larger RP = more risk-averse (willing to lose more for certainty). - Chart: Decision Tree software shows Risk Premium in Options Analyzer carousel alongside Certainty Equivalent. **Answers questions like:** risk premium, cost of uncertainty, insurance premium, how much to pay to avoid risk ### [Multiple-criteria decision analysis](https://spicelogic.com/docs/decision-tree-software/multicriteria/multi-criteria-decision-analysis-306) Multiple-criteria decision analysis (MCDA) weighs several competing objectives (price, quality, comfort) to rank options fairly. **Key points:** - Workflow: name objectives (Maximize X, Minimize Y), set criterion type (Number, Subjective, Boolean, Categorical), define utility functions. - Scoring: convert each criterion to 0-1 utility, weight each by importance, sum to total value = sum(weight × utility). - Weight methods: Pairwise comparison (AHP eigenvector), direct assignment (sliders 1-9), Custom expression (e.g., 2×[Quality] - 3×[Cost]). - Consistency Ratio: checks pairwise logic (recommend ≤ 10%); transitivity rule reduces comparisons from n(n-1)/2 to n-1. - Disable criterion: test "what if I drop this goal?" without deleting it. **Answers questions like:** multiple criteria, weighing objectives, trade-off analysis, multi-goal decision ### [Criterion Data Types](https://spicelogic.com/docs/decision-tree-software/multicriteria/334) Describes five data types for modeling criteria in decision trees, allowing each criterion to match its real-world nature rather than forcing everything into a single number. **Key points:** - Subjective - judgments without exact numbers (e.g. spaciousness, neighborhood quality). - Boolean - yes/no facts (e.g. "has built-in GPS"). - Number - measured values (distance, time, weight). - Monetary - amounts of money (price, yearly cost). - Categorical - fixed set of choices (car body type: Truck, SUV, Sedan). - Each type shows the correct input screen automatically (toggle for Boolean, money box for Monetary, etc.). - Prevents data-entry mistakes and ensures scores match how you actually think about the choice. **Answers questions like:** what data types are available, how to model different kinds of criteria, which data type to use for money ### [Subjective criterion](https://spicelogic.com/docs/decision-tree-software/multicriteria/307) Subjective Criterion: rate outcomes on a gut-level 0-100% slider when no exact number captures what you care about (comfort, appeal, satisfaction). **Key points:** - Use when: outcome quality is felt, not measured (e.g., garage feels cramped vs. 200 sq ft). - Interface: slider with smiley face (happy = good for Maximize, sad = good for Minimize); reverses if objective flips. - Setup: pick Maximize or Minimize, type criterion name, select Subjective type. - Pros: fast, intuitive; no units or formulas needed. **Answers questions like:** subjective scoring, gut-feel criterion, how to rate comfort, satisfaction measure ### [Boolean Criterion](https://spicelogic.com/docs/decision-tree-software/multicriteria/308) Boolean Criterion: simple yes/no judgment (Has GPS? True/False) for hard requirements and nice-to-haves. **Key points:** - Scoring: "Must have" fails = 0 (hard requirement); "Should contain" fails = 50 (soft preference); passes = 100. - Setup: choose conditional (Must have, Must not have, Should contain, Should be, etc.), type criterion name, select Boolean type. - Payoff: radio button or checkbox on node; switch default to pre-select common answer. - Allows mixing hard requirements and soft preferences in same tree. **Answers questions like:** yes or no criterion, requirement vs nice-to-have, hard constraint, Boolean goal ### [Numerical criterion](https://spicelogic.com/docs/decision-tree-software/multicriteria/309) Numerical Criterion: measure payoff as a number (salary, cost, distance, hours) and optionally attach utility function for non-linear satisfaction. **Key points:** - Setup: pick Maximize (salary, profit) or Minimize (cost, time), set min/max range, unit optional. - Default utility: straight-line (twice the value = twice the satisfaction). - Enhancements: Probability Distribution (describe range, not single guess); Table entry (itemize costs, auto-sum); Aspiration level (payoff below which result fails); Satisficing level (payoff above which no extra credit). - Utility function: turns raw number into 0-100 satisfaction; accounts for risk aversion, diminishing returns. **Answers questions like:** numerical payoff, profit or cost, quantified objectives, probability ranges, table entry ### [Categorical criterion](https://spicelogic.com/docs/decision-tree-software/multicriteria/311) Categorical Criterion: rank choices from a fixed list (truck/SUV/sedan, downtown/suburb office) by assigning utility to each category. **Key points:** - Setup: choose "best category", type categories (Truck=70 utils, SUV=50, Sedan=20), assign utility scores. - Payoff: dropdown list per node; if only one criterion, appears on node itself; else in payoff window. - Edit: double-click category or value to change; context menu to add/remove/reorder. - Scores reflect preference strength: gap between 50 and 70 means truck is moderately preferred over SUV. **Answers questions like:** category preference, choose among options, ranked list, best car type ### [Incorporating Probability Distribution](https://spicelogic.com/docs/decision-tree-software/probabilitydistribution/probability-distribution-325) Probability Distribution Tool: describe uncertain payoff (not fixed number) as a range with built-in gallery (Normal, Poisson, Exponential, etc.) or custom shape. **Key points:** - Access: click distribution button next to Number Criterion payoff. - Gallery: presets for common cases (Normal for clustering, Poisson for counts, Triangular for 3-point estimates). - Customize: set parameters, truncate min/max (e.g., delivery time ≥ 0), view as PDF, CDF, Survival, Hazard. - Calculator: drag sliders to read probability of range (e.g., chance cost falls between $95k and $105k). - Monte Carlo: software auto-runs simulation when distribution is attached; tree uses full outcome spread, not single guess. **Answers questions like:** uncertain values, cost range, project duration, probability bands ### [Custom Continuous Distribution](https://spicelogic.com/docs/decision-tree-software/probabilitydistribution/326) Custom Continuous Distribution: build your own probability density function using piecewise expressions or data points when no textbook distribution fits. **Key points:** - Piecewise expression: write formula with conditions (if x ≥ 125, use bell curve; else, 0). - Data points table: enter x values and density y; software connects with straight lines. - Function Domain: set min/max range for x. - Scaling: software normalizes area under curve to 1 (valid probability distribution); your shape stays same, just scaled. **Answers questions like:** custom probability, non-standard distribution, real data curve ### [Custom Discrete Distribution](https://spicelogic.com/docs/decision-tree-software/probabilitydistribution/327) Custom Discrete Distribution: define probability of countable outcomes (die roll 1-6, customer count 0-100, gym visits 1-25) via formula or table. **Key points:** - Piecewise expression: write one rule per range; software checks which condition x falls under. - Data table options: Probability Mass Function (PMF, direct probabilities), Survival Function (SF, "at least X"), Cumulative Distribution (CDF, "at most X"). - Function Domain: set min/max for x. - Scaling: software normalizes PMF so probabilities sum to 1. **Answers questions like:** discrete outcomes, countable events, custom probability table ### [Modeling with Survival Function](https://spicelogic.com/docs/decision-tree-software/probabilitydistribution/survival-function-328) Survival Function table: define discrete distribution by specifying probability of "at least X" for key values; software auto-derives PMF and CDF. **Key points:** - Intuitive for time-to-failure, gym attendance, etc.; ask "how likely to survive past this point?" - Example: P(at least 1 visit) = 1.0, P(at least 2) = 0.99, P(at least 15) = 0.1, P(at least 25) = 0. - Constraints: must include SF(X) = 0 at some max value; function must be non-increasing (each row ≤ row above). - Software converts SF to PMF (individual probabilities) and CDF automatically. **Answers questions like:** survival probabilities, time-to-event, likelihood of lasting past point ### [Modeling Cumulative Distribution Function](https://spicelogic.com/docs/decision-tree-software/probabilitydistribution/cumulative-distribution-function-329) Cumulative Distribution Function (CDF) table: define discrete distribution by specifying P(at most X); software normalizes to valid distribution. **Key points:** - Intuitive: "chance task finishes in 10 days or less" = 0.8 CDF at 10. - Constraints: must reach CDF = 1 at some max value; function non-decreasing (each row ≥ row above). - Software auto-converts CDF to PMF (individual probabilities) and SF. **Answers questions like:** cumulative probability, P(at most X), running total likelihood ### [Update belief by Bayesian Inference](https://spicelogic.com/docs/decision-tree-software/misc/bayesian-inference-update-belief-305) Update Chance node probabilities using Bayesian Inference after collecting real evidence and observations. **Key points:** - Workflow: select Chance node, click Experiment button, lock prior belief, add experiments and observations. - Causal Discovery: set likelihood of observation given each hypothesis; software applies Bayes' theorem. - Result: updated probabilities reflect evidence; tree recalculates recommendation. - Key benefit: replace gut feel with data; sensitivity analysis finds which assumptions drive decision most. **Answers questions like:** update probabilities, Bayesian inference in trees, how to change my belief with evidence ### [Custom Expression Editor](https://spicelogic.com/docs/decision-tree-software/misc/304) Custom Expression Editor allows piecewise functions (conditional rules) for probability distributions and utility functions where standard formulas don't fit. **Key points:** - Piecewise syntax: condition ? formula1 : formula2 (e.g., if x >= 125, normal bell curve; else, 0). - Boolean conditions: >, <, >=, <=, ==, !=, AND (&&), OR (||). - Supported: arithmetic (+, -, *, /, ^), functions (exp, log10, sin, cos, tan, sqrt, abs, pow, round, ln, factorial, gamma, beta, binomial, erf, arcsin, arccos, arctan). - Constants: pi, e. **Answers questions like:** piecewise function, conditional formula, custom probability, complex utility ### [Decision Tree Machine Learning](https://spicelogic.com/docs/decision-tree-software/misc/decision-tree-machine-learning-339) Contrasts normative (how rational people should decide) and descriptive (how people actually decide) decision theory; shows machine learning for building classification and regression trees from data. **Key points:** - Classification Decision Tree - predicts a category (Yes/No, Low/Medium/High) from past behavior; example: weather predicts whether tennis players show up. - Reads data from CSV, Excel, or SQL Server; you select relevant columns and mark the outcome column. - Confusion Matrix tests tree accuracy on a dataset; shows right/wrong predictions; testing on fresh data is better validation. - Regression Tree - predicts a continuous number (salary, house price) instead of a category. - Breast Cancer example dataset available; test tree shows which factors point toward recurrence. - Adjust predictions without restarting: Rebuild (same data), Columns (change factors), Data Source (new file). **Answers questions like:** how do I use machine learning with decision trees, classify data from past records, predict categories or numbers ### [Reporting, Printing and Exporting Diagram](https://spicelogic.com/docs/decision-tree-software/misc/337) Shows how to export and share decision models via PDF report, Excel file, diagram image, or print, with options to copy directly to clipboard or save as JPG/PNG/BMP. **Key points:** - PDF report includes complete analysis, parameters, results, metrics, sensitivity charts; reader can follow reasoning without the software. - Excel report allows editing, what-if testing, and further spreadsheet work. - Right-click diagram to copy to clipboard, paste into Word/Paint, or save as image; fastest method. - Diagram export also available in Reporting menu or Application menu. - Print and Print Preview; preview shows exactly what will print. - Print Preview requires Administrator mode; workaround is to export PDF and print from PDF viewer. **Answers questions like:** how do I export my decision tree, save as PDF or Excel, print a decision model ### [Data Collection](https://spicelogic.com/docs/decision-tree-software/misc/448) Page has no published content. ## SpiceLogic Rational Will ### [Overview](https://spicelogic.com/docs/rational-will/gettingstarted/189) Rational Will helps users think through decisions by listing options and weighting priorities. User ranks options against what matters; software calculates which fits best. **Key points:** - Decision support tool for choosing between multiple options (job offers, vendors, etc.) - User workflow: list options, list priorities (what matters), software ranks fit - Example: two job offers; priorities are pay, commute, work content, growth opportunity; software shows winner - Modern, easy-to-use interface for decision analysis - Avoids gut-feel decision making; data-driven ranking - Multiple scenarios and what-if analysis supported - Export and save decisions for documentation **Answers questions like:** What is Rational Will, how does it work, can I compare multiple options, how does weighting work ### [Getting Started](https://spicelogic.com/docs/rational-will/decisiontree/340) Page has no published content. **Answers questions like:** N/A ### [Decision Tree Elements](https://spicelogic.com/docs/rational-will/decisiontree/341) Page has no published content. **Answers questions like:** N/A ### [Manipulate the Tree Elements](https://spicelogic.com/docs/rational-will/decisiontree/342) Page content redirects to https://spicelogic.com/docs/decision-tree-software/intro/293 for Decision Tree Elements. **Answers questions like:** where is decision tree elements documentation ### [Planning Point](https://spicelogic.com/docs/rational-will/decisiontree/343) Page has no published content. **Answers questions like:** N/A ### [Diagram view manipulation](https://spicelogic.com/docs/rational-will/decisiontree/344) Page has no published content. **Answers questions like:** N/A ### [Decision Criteria](https://spicelogic.com/docs/rational-will/decisiontree/345) Page has no published content. **Answers questions like:** N/A ### [Getting Started](https://spicelogic.com/docs/rational-will/cost-effectiveness/424) Page has no published content. **Key points:** - This documentation page is empty or not yet published. **Answers questions like:** (No content to answer) ### [Cost-Effectiveness with QALY](https://spicelogic.com/docs/rational-will/cost-effectiveness/425) Page has no published content. **Key points:** - This documentation page is empty or not yet published. **Answers questions like:** (No content to answer) ### [Cost-Effectiveness with DALY](https://spicelogic.com/docs/rational-will/cost-effectiveness/426) Page has no published content. **Key points:** - This documentation page is empty or not yet published. **Answers questions like:** (No content to answer) ### [Dominance and the Cost-Effectiveness Plane](https://spicelogic.com/docs/rational-will/cost-effectiveness/439) Page has no published content. **Key points:** - This documentation page is empty or not yet published. **Answers questions like:** (No content to answer) ### [Introduction to the Markov Models](https://spicelogic.com/docs/rational-will/markov-models/291) Introduction to Markov Models within Rational Will decision analysis software. **Key points:** - Page content currently empty, placeholder only. **Answers questions like:** Markov models introduction, what is a Markov model ### [Life Expectancy with Time variant probability](https://spicelogic.com/docs/rational-will/markov-models/417) Page has no published content. **Key points:** - This documentation page is empty or not yet published. **Answers questions like:** (No content to answer) ### [QALY and Cost with Markov Model](https://spicelogic.com/docs/rational-will/markov-models/434) Page has no published content. **Key points:** - This documentation page is empty or not yet published. **Answers questions like:** (No content to answer) ### [Choosing between two treatment plans](https://spicelogic.com/docs/rational-will/markov-models/435) Page has no published content. **Key points:** - This documentation page is empty or not yet published. **Answers questions like:** (No content to answer) ### [Gambler's ruin](https://spicelogic.com/docs/rational-will/markov-models/436) Page has no published content. **Key points:** - This documentation page is empty or not yet published. **Answers questions like:** (No content to answer) ### [What Is a Markov Chain? States, Matrices, Steady State](https://spicelogic.com/docs/rational-will/markov-models/what-is-a-markov-chain-496) Explains Markov chains: systems with discrete states where the next state depends only on the current state (memory-less property). Shows how steady state eventually becomes independent of starting conditions. **Key points:** - States and transition matrix describe what happens when the system moves from each state; rows sum to 1 because something must happen. - Steady state is the long-run probability split that stays constant after one more step; found by solving for balance equations. - Absorbing states are permanent exit points (like "broke" in a gambler's ruin model). - Markov Chain Calculator builds these models, finds steady state, runs the chain forward, and draws charts. **Answers questions like:** what is a Markov chain, how do I find the steady state, what are absorbing states, do I need probabilities for every branch ### [Decision Policy](https://spicelogic.com/docs/rational-will/analysis/422) Page has no published content. **Key points:** - This documentation page is empty or not yet published. **Answers questions like:** (No content to answer) ### [Decision Tree Node Analysis](https://spicelogic.com/docs/rational-will/analysis/423) Page has no published content. **Key points:** - This documentation page is empty or not yet published. **Answers questions like:** (No content to answer) ### [Various Risk Metrics](https://spicelogic.com/docs/rational-will/analysis/356) Page has no published content. **Answers questions like:** N/A ### [Risk Profile](https://spicelogic.com/docs/rational-will/analysis/357) Page has no published content. **Answers questions like:** N/A ### [Value of Information](https://spicelogic.com/docs/rational-will/analysis/358) Page has no published content. **Answers questions like:** N/A ### [Sensitivity Analysis](https://spicelogic.com/docs/rational-will/analysis/359) Page has no published content. **Answers questions like:** N/A ### [Monte Carlo Simulation](https://spicelogic.com/docs/rational-will/analysis/360) Page has no published content. **Answers questions like:** N/A ### [Stochastic Dominance](https://spicelogic.com/docs/rational-will/analysis/361) Page has no published content. **Answers questions like:** N/A ### [Introduction to Utility Function](https://spicelogic.com/docs/rational-will/utilityfunction/347) Page has no published content. **Answers questions like:** N/A ### [Eliciting Utility Function by Game Play](https://spicelogic.com/docs/rational-will/utilityfunction/348) Page has no published content. **Answers questions like:** N/A ### [Exponential Utility Function](https://spicelogic.com/docs/rational-will/utilityfunction/349) Page has no published content. **Answers questions like:** N/A ### [Bernoulli Utility Function](https://spicelogic.com/docs/rational-will/utilityfunction/350) Page has no published content. **Answers questions like:** N/A ### [Custom Utility Function Equation](https://spicelogic.com/docs/rational-will/utilityfunction/351) Page has no published content. **Answers questions like:** N/A ### [Certainty Equivalent Calculation](https://spicelogic.com/docs/rational-will/utilityfunction/352) Page has no published content. **Answers questions like:** N/A ### [Risk Premium Calculation](https://spicelogic.com/docs/rational-will/utilityfunction/353) Page has no published content. **Answers questions like:** N/A ### [Utility Functions: Bernoulli and Exponential Explained](https://spicelogic.com/docs/rational-will/utilityfunction/bernoulli-exponential-utility-functions-495) Explains Bernoulli (logarithmic) and exponential utility functions that model how people value risky money: the Bernoulli function is simple and classic; exponential has constant absolute risk aversion. Includes worked example of certainty equivalent and risk premium. **Key points:** - Bernoulli function U(x) = ln(x); exponential function U(x) = 1 - e^(-x / R) where R is risk tolerance. - Diminishing marginal utility: each extra dollar matters less than the one before, making utility curves bend downward (concave) for risk-averse people. - Certainty equivalent is the sure amount that feels as good as a gamble; risk premium is the gap between average payoff and certainty equivalent. - Rational Will fits a utility function to your own choices and computes both figures for any decision. **Answers questions like:** what is the Bernoulli utility function, how do I compute a risk premium, what is a certainty equivalent, should I take the gamble or the sure thing ### [Multiple-criteria decision analysis](https://spicelogic.com/docs/rational-will/multicriteria/362) Page has no published content. **Answers questions like:** N/A ### [Criterion Data Types](https://spicelogic.com/docs/rational-will/multicriteria/363) Page has no published content. **Answers questions like:** N/A ### [Subjective criterion](https://spicelogic.com/docs/rational-will/multicriteria/364) Page has no published content. **Answers questions like:** N/A ### [Boolean criterion](https://spicelogic.com/docs/rational-will/multicriteria/365) Page has no published content. **Answers questions like:** N/A ### [Numerical criterion](https://spicelogic.com/docs/rational-will/multicriteria/366) Page has no published content. **Answers questions like:** N/A ### [Categorical criterion](https://spicelogic.com/docs/rational-will/multicriteria/368) Page has no published content. **Answers questions like:** N/A ### [Incorporating Probability Distribution](https://spicelogic.com/docs/rational-will/probabilitydistribution/372) Page has no published content. **Answers questions like:** N/A ### [Custom Continuous Distribution](https://spicelogic.com/docs/rational-will/probabilitydistribution/373) Page has no published content. **Answers questions like:** N/A ### [Custom Discrete Distribution](https://spicelogic.com/docs/rational-will/probabilitydistribution/374) Page has no published content. **Answers questions like:** N/A ### [Modeling with Survival Function](https://spicelogic.com/docs/rational-will/probabilitydistribution/375) Page has no published content. **Answers questions like:** N/A ### [Modeling Cumulative Distribution Function](https://spicelogic.com/docs/rational-will/probabilitydistribution/376) Page has no published content. **Answers questions like:** N/A ### [Getting Started with AHP](https://spicelogic.com/docs/rational-will/ahp/analytic-hierarchy-process-software-213) Introductory Analytic Hierarchy Process (AHP) tutorial for RationalWill. **Key points:** - Page content currently empty, placeholder only. **Answers questions like:** AHP tutorial, getting started with AHP, how to use AHP ### [Consistency ratio and Transitivity Rule](https://spicelogic.com/docs/rational-will/ahp/410) Page has no published content. **Key points:** - This documentation page is empty or not yet published. **Answers questions like:** (No content to answer) ### [Sensitivity Analysis](https://spicelogic.com/docs/rational-will/ahp/411) Page has no published content. **Key points:** - This documentation page is empty or not yet published. **Answers questions like:** (No content to answer) ### [Managing Criteria and Sub-criteria](https://spicelogic.com/docs/rational-will/ahp/412) Page has no published content. **Key points:** - This documentation page is empty or not yet published. **Answers questions like:** (No content to answer) ### [Managing Options](https://spicelogic.com/docs/rational-will/ahp/413) Page has no published content. **Key points:** - This documentation page is empty or not yet published. **Answers questions like:** (No content to answer) ### [Results and Charts](https://spicelogic.com/docs/rational-will/ahp/414) Page has no published content. **Key points:** - This documentation page is empty or not yet published. **Answers questions like:** (No content to answer) ### [Calculation Methods](https://spicelogic.com/docs/rational-will/ahp/453) Page has no published content. ### [Group Decision Making](https://spicelogic.com/docs/rational-will/ahp/452) Page has no published content. ### [Introduction to the Bayesian Tools](https://spicelogic.com/docs/rational-will/bayesian-network-inference/442) Introduction to two Bayesian analysis tools in Rational Will: Bayesian Network (visual diagram of variable dependencies) and Bayesian Inference (step-by-step evidence collection). **Key points:** - Bayesian analysis: start with belief, update as new evidence arrives; handles real-life scenarios where proof comes gradually. - Bayesian Network: draw nodes (random variables) and connect them to show dependencies; ask "if grass is wet, how likely did it rain?" and the network calculates the answer. - Bayesian Inference: list competing hypotheses, add observations one at a time, watch beliefs update with each new piece of evidence. - Use Bayesian Network for modeling how multiple variables interact; use Bayesian Inference for testing hypotheses against incoming evidence. - Both tools rest on the same idea: starting belief plus evidence updates, done mathematically instead of by guessing. **Answers questions like:** What is Bayesian analysis, what is a Bayesian Network, what is Bayesian Inference, how do I update beliefs with new evidence ### [Getting Started with the Bayesian Network](https://spicelogic.com/docs/rational-will/bayesian-network-inference/443) Page has no published content. **Key points:** - This documentation page is empty or not yet published. **Answers questions like:** (No content to answer) ### [Getting Started with the Bayesian Inference](https://spicelogic.com/docs/rational-will/bayesian-network-inference/444) Page has no published content. **Key points:** - This documentation page is empty or not yet published. **Answers questions like:** (No content to answer) ### [Decision Tree with Bayesian Inference](https://spicelogic.com/docs/rational-will/bayesian-network-inference/445) Page has no published content. ### [Example: Modeling Base Rate Fallacy](https://spicelogic.com/docs/rational-will/bayesian-network-inference/446) Page has no published content. ### [Custom Expression Editor](https://spicelogic.com/docs/rational-will/misc/370) Page has no published content. **Answers questions like:** N/A ### [Decision Tree Machine Learning](https://spicelogic.com/docs/rational-will/misc/421) Page has no published content. **Key points:** - This documentation page is empty or not yet published. **Answers questions like:** (No content to answer) ### [Reporting, Printing and Exporting Diagram](https://spicelogic.com/docs/rational-will/misc/371) Page has no published content. **Answers questions like:** N/A ### [Data Collection](https://spicelogic.com/docs/rational-will/misc/447) Software telemetry and crash reporting. Covers how RationalWill collects usage data (never personally identifying), how to opt out via Settings, and the crash-report flow where clicking Report sends technical details to help with bug fixes. **Key points:** - Telemetry collection is opt-in with a Settings toggle; disabling stops all telemetry immediately - Crash reporting is separate: clicking Report Crash sends the log even when telemetry is off - Crash logs contain only technical details, never user documents or personal data - Choice is always under user control with no hidden data collection **Answers questions like:** how does RationalWill collect data, can I turn off telemetry, what happens if the app crashes, is my data private ## Markov Chain Calculator ### [Getting Started: Predicting health state](https://spicelogic.com/docs/markov-chain-calculator/intro/277) Build and analyze a simple Markov Chain model for patient health state transitions (Well, Post-stroke, Dead). **Key points:** - Transition probabilities: define odds of moving from one state to another per time step (default yearly). - Absorbing state: mark terminal states (e.g., Dead) where patient cannot leave. - Initial state selection: choose starting point; adjust iterations for trend clarity. - Analysis: Probability Forecast chart, State Occupation, Expected Rewards; custom expressions (e.g., Survival = 1 - P(Dead)); export to Excel. **Answers questions like:** Markov chain tutorial, health state transitions, absorbing states, long-term predictions ### [Changing input](https://spicelogic.com/docs/markov-chain-calculator/intro/428) Shows how to edit a Markov Chain model after building it with the wizard. Covers changing transition probabilities, adding states, renaming, and deleting states. **Key points:** - Change transition probabilities: select a state and edit the numbers directly; probabilities leaving one state must sum to 1 (100%). - Add state: type new state name in input box and press Enter; joins the chain immediately with default zero probabilities to set. - Edit or delete state: right-click for context menu options to Edit (rename), Delete single, or Delete All. - Delete All clears everything; use only when starting fresh. Single Delete is safer for removing just one state. - Changes take effect immediately; tweak one number at a time to see how results shift. **Answers questions like:** How do I change a Markov model after building it, how do I add a state, how do I rename a state, how do I edit transition probabilities ### [Example: Weather Forecasting](https://spicelogic.com/docs/markov-chain-calculator/intro/markov-chain-weather-forecast-440) Simple weather forecasting example using Markov Chain Calculator. Demonstrates state transitions and custom expressions to forecast multi-day weather patterns. **Key points:** - Three states: Nice, Rain, Snow; transition probabilities based on weather patterns (nice days rarely repeat, rain/snow tend to persist). - Starting from Nice weather today: 20% chance of Nice weather one week from now. - Custom Expression Editor: ask "is it NOT raining in one week?" by typing "NOT Rain" to get 60% probability. - Markov Chain rules: next day depends only on today's weather, not on history. - Decision Graph menu option shows all states and transition arrows in one diagram for easy visualization. **Answers questions like:** How do I forecast weather patterns, how do I use custom expressions in Markov models, what is a simple Markov model example, how do I set up weather states ### [Example: Gambler's ruin](https://spicelogic.com/docs/markov-chain-calculator/intro/markov-chain-gambler-ruin-429) Classic Gambler's Ruin problem worked example showing how Markov Chains predict long-run outcomes. Demonstrates how starting position changes the odds of winning versus losing. **Key points:** - Gambler starts with $50, plays $25 per spin with 50% win rate, stops at $0 (broke) or $75 (ahead 25). - States: $0, $25, $50, $75; absorbing states are $0 and $75 (no transitions out). - Starting from $50: 33% chance of going broke, 67% chance of reaching $75 (closer to $75 than $0). - Starting from $25: odds flip to 67% broke, 33% winning (much closer to $0). - Shows that initial state strongly affects outcomes even in a fair 50-50 game. **Answers questions like:** How do I model a gambling problem, what is Gambler's Ruin, how do I set up absorbing states, how does starting position affect outcomes ### [Custom Expression Editor and Chart](https://spicelogic.com/docs/markov-chain-calculator/intro/386) Shows how to build and chart composite states in Markov Chain models using logical operators. Use this when you need to forecast complex conditions combining multiple states rather than single-state forecasts. **Key points:** - Build composite states by joining states with AND, OR, and NOT operators in the Custom Expression panel. - Example: "Active AND Paid" or "Trial and NOT Cancelled" lets you ask about combined conditions. - The chart displays probability over time just like single-state forecasts. - A helpful sanity check: if your expression covers all non-overlapping states, the result stays flat at 1 (100%), confirming your states add up correctly. - Help is built into the editor; click the Help icon to see available math functions without leaving the page. **Answers questions like:** How do I forecast the chance of multiple conditions happening together, combining states with logic operators, custom probability expressions in Markov models ### [Data Collection](https://spicelogic.com/docs/markov-chain-calculator/misc/451) Page has no published content. ## Bayesian Doctor ### [Getting Started](https://spicelogic.com/docs/bayesian-network-software/intro/196) Bayesian Doctor combines two modeling tools: Bayesian Network and Bayesian Inference for probabilistic analysis and decision support. **Key points:** - Bayesian Network modeling for probabilistic graphical models - Bayesian Inference for querying networks and updating beliefs with evidence - Two tools bundled in single product - Probabilistic reasoning under uncertainty - Graphical visualization of model relationships **Answers questions like:** What is Bayesian Doctor, what tools does it include, how are the tools different ### [Getting Started](https://spicelogic.com/docs/bayesian-network-software/bayesiannetwork/bayesian-network-200) Bayesian networks (belief networks) are probabilistic graphical models representing random variables and conditional dependencies via directed acyclic graph (DAG). SpiceLogic tool lets users create networks, query them, and observe evidence updates. **Key points:** - Bayesian network (belief network) is directed acyclic graph (DAG) of random variables - Edges represent conditional dependencies between variables - Evidence instantiation: set observed variable state; whole network updates based on evidence - Intuitive charts show Root Cause Variables and Ultimate Symptoms variables - Tool supports network creation, querying, and dynamic evidence observation - Probabilistic reasoning with graphical model representation - Queries return posterior probabilities given evidence **Answers questions like:** What is a Bayesian network, how do conditional dependencies work, how does evidence propagate, what are root cause variables ### [Multi State Variables](https://spicelogic.com/docs/bayesian-network-software/bayesiannetwork/259) Bayesian Doctor can model random variables with more than two states instead of the typical binary approach. **Key points:** - Default: binary (2-state) variables for simplicity; conditional probability tables auto-calculate opposite state. - Multi-state variables: check radio button to enable; manually define state names and edit probabilities. - Probability constraint: all state probabilities for a given condition must sum to 1. - Fix tool: hammer button scales probabilities to enforce the sum-to-1 rule automatically. **Answers questions like:** multi-state Bayesian variables, more than two states, three-state variables, conditional probability with multiple outcomes ### [Working with a big Diagram](https://spicelogic.com/docs/bayesian-network-software/bayesiannetwork/274) Manage large Bayesian Network diagrams by increasing canvas, panning, and zooming. **Key points:** - Canvas size: click button to expand workspace. - Pan/Zoom: use Overview tab controls to navigate large diagrams, zoom in/out, fit to screen, reset zoom. **Answers questions like:** large diagram navigation, zooming in decision trees, panning networks ### [Rejecting Hypotheses](https://spicelogic.com/docs/bayesian-network-software/bayesiannetwork/275) Set a probability threshold below which a hypothesis is displayed in gray and marked as rejected. **Key points:** - Default: no rejection threshold set. - Configure in Bayesian Network toolbar; set threshold percentage (e.g., 40%). - When a state probability falls below threshold after observation, node turns gray to indicate rejection. **Answers questions like:** reject hypotheses, probability threshold, gray nodes, confidence cutoff ### [Getting Started](https://spicelogic.com/docs/bayesian-network-software/bayesianinference/bayesian-inference-273) Step-by-step Bayesian Inference tutorial using a medical symptom example to update belief in competing hypotheses. **Key points:** - Prior belief: start with initial probability estimate (e.g., 70% Peptic Ulcer, 30% Viral Gastroenteritis). - Lock prior, add observations (Nausea, Vomiting), use Elicit window to set likelihood of each symptom given each hypothesis. - Update Beliefs button: applies Bayes' theorem; shows updated belief and Belief History chart over multiple observations. - Adding new evidence: re-run causal discovery and update, watch belief shift as each new observation arrives. **Answers questions like:** how to update beliefs, Bayesian inference tutorial, Bayes theorem example, updating probabilities with evidence ### [Mutually Non Exclusive Hypotheses](https://spicelogic.com/docs/bayesian-network-software/bayesianinference/260) Model hypotheses in Bayesian Inference that don't need to be mutually exclusive. **Key points:** - Real-world problems often have overlapping causes (e.g., car won't start; battery down AND spark plug damaged are possible together). - Lock button controls whether hypotheses are mutually exclusive or independent. - Workflow: list hypotheses, lock assumptions, record observations, run causal discovery, update beliefs. **Answers questions like:** non-exclusive hypotheses, overlapping causes, dependent hypotheses, mixed mutually exclusive events ### [Modeling Base Rate Fallacy](https://spicelogic.com/docs/bayesian-network-software/examples/base-rate-fallacy-276) Model the base rate fallacy (neglect of prior probability) using Bayesian inference and networks to correctly assess disease probability from test results. **Key points:** - Base rate: general prior probability (e.g., 1% of women have breast cancer). - Test accuracy: sensitivity (80% detect cancer if present) and false-positive rate (9.6% positive when absent). - Formula: Pr(Cancer|Positive) = Pr(Positive|Cancer) × Pr(Cancer) / [Pr(Positive|Cancer) × Pr(Cancer) + Pr(Positive|Not Cancer) × Pr(Not Cancer)]. - Result: only 7.76% probability of cancer despite positive test; ignoring base rate leads to overestimating disease risk. **Answers questions like:** base rate fallacy, test accuracy and disease probability, false positives, interpreting test results ### [Data Collection](https://spicelogic.com/docs/bayesian-network-software/misc/450) Page has no published content. ## WPF HTML Editor Control ### [Getting Started with WPF HTML editor control](https://spicelogic.com/docs/wpf-html-editor-control/startup/139) Getting started with WPF HTML Editor control. Drop-in WYSIWYG editor for WPF with MVVM support, customizable toolbar, spell check, Word-compatible paste, image/table editing, and dual-binding. **Key points:** - Supports .NET 4.6.1, 4.7.2, 4.8, .NET 5, 6, 7, 8 (x86, x64) - Install via NuGet: SpiceLogic.HtmlEditor.WPF (trial and licensed editions in one package) - Four editor modes: WysiwygDesign (full editing), HtmlEdit (raw source), ReadOnlyPreview (display), Uninitialized - Built-in WYSIWYG toolbar scales to all screen sizes; two-way BodyHtml binding for MVVM - Inline spell check (US English embedded; user dictionary supported) - Image and table editing with dialogs - Paste from Word with auto-cleanup - Rich API for programmatic document manipulation **Answers questions like:** What frameworks does it support, how do I install it, what are the editor modes, is there spell check built-in ### [Sample projects on GitHub](https://spicelogic.com/docs/wpf-html-editor-control/startup/sample-projects-on-github-508) Lists ten runnable sample projects on GitHub (github.com/spicelogic/wpf-html-editor-control-samples) covering WPF HTML Editor features: quickstart, MVVM data binding, theme and appearance, toolbar customization, mail merge, localization, custom spell checker, custom dialogs, context menu, and full demo. **Key points:** - Each sample is small WPF app referencing the shipping NuGet package; MIT licensed code can be copied into your app. - Samples ship C# and VB.NET twins in matching folders; target net48 by default but support net45, net472, net48, net8.0-windows, net10.0-windows. - Ten samples: 01-Quickstart, 02-MvvmDataBinding (read bound values after UpdateBindings), 03-ThemeAndAppearance, 04-ToolbarCustomization, 05-MailMergeTemplate, 06-Localization, 07-CustomSpellChecker, 08-CustomDialog, 09-CustomContextMenu, 10-FullEditorDemo. - Clone and build on Windows with matching SDK; run with dotnet or open in Visual Studio. **Answers questions like:** where do I find sample code, which MVVM sample should I start with, do samples run without license, can I copy sample code ### [How to License the WPF HTML Editor](https://spicelogic.com/docs/wpf-html-editor-control/startup/how-to-license-wpf-html-editor-152) License key activation for WPF HTML Editor replacing older DLL-swap workflow. Install one NuGet package; unlock licensed mode at runtime with license key. **Key points:** - Install SpiceLogic.HtmlEditor.WPF via NuGet (works for trial and licensed use) - Set WpfHtmlEditor.LicenseKey static property at runtime to unlock licensed features - No DLL swap, Visual Studio cache clear, or separate "unlocked build" needed - Developer License: purchase license key from account - Source Code License: download ZIP with full C# source instead - Two things available from My Account after purchase: license key or source code ZIP **Answers questions like:** How do I license the WPF editor, where do I get the license key, how do I activate it, what if I bought source code ### [Getting and Setting HTML Value](https://spicelogic.com/docs/wpf-html-editor-control/startup/141) Two ways to get and set HTML in WPF HTML Editor depending on where markup goes next. Distinction between body fragment (for embedding in outer documents) and full HTML document. **Key points:** - BodyHtml property (dependency and CLR variants): inner markup between
tags only - use when content embeds in outer shell (email template, database column for email body) - DocumentHtml property: complete ... tree - use when storing standalone documents - GetBodyHtml(bool getInXhtml) returns body HTML; pass true for well-formed XHTML, false for raw - SetBodyHtml replaces body HTML only; preserves head - GetDocumentHtml, SetDocumentHtml for full document - Body fragment avoids nested DOCTYPEs and conflicting blocks in mail clients - Two-way binding works with BodyHtml only (DocumentHtml is CLR property) **Answers questions like:** Should I store BodyHtml or DocumentHtml, what's the difference, how do I export for email, what property should I bind to in MVVM ### [Inserting HTML at current Caret position](https://spicelogic.com/docs/wpf-html-editor-control/startup/173) Inserting HTML snippets at caret in WPF editor for reusable content fragments. Library of boilerplate kept separate and spliced into existing document on demand. **Key points:** - Use IContentService.InsertHtml(htmlText, keepSelected) to inject at caret - keepSelected true leaves fragment highlighted; false places caret after - InsertText escapes HTML entities; InsertHtml treats content as markup - Fragments stay portable; relative src/href values resolve against editor's BaseUrl - Alternative to swap-whole-document (preserves user formatting) and string search-replace (breaks with markup shifts) - Common pattern: library of boilerplate clauses, signature blocks, merge sections, template pieces - Method called from custom buttons, menu items, or programmatic logic **Answers questions like:** How do I insert boilerplate, how do I splice snippets without breaking markup, how do I insert text vs. HTML ### [Design-time configuration: the Properties window and XAML](https://spicelogic.com/docs/wpf-html-editor-control/startup/design-time-configuration-491) Configures the WPF HTML Editor at design time through the Visual Studio Properties window, XAML, and a Quick Setup panel (Framework hosts only). Covers commonly-configured properties and explains why there is no WPF Smart Tag. **Key points:** - Design-time configuration happens in Properties window or XAML IntelliSense; no WinForms-style Smart Tag on WPF. - Quick Setup panel appears on Framework targets only (.NET 4.5-4.8); modern .NET (.NET 5+) uses Properties window and XAML only. - Commonly-configured properties: Language, EditorMode, Options.DefaultHtmlType, Options.EnterKeyResponse, SpellCheckOptions.FireInlineSpellCheckingOnKeyStroke, table cell merge, body style, base URL, charset. - Toolbar items are added in code, XAML, or binding - not through design-time UI. **Answers questions like:** how do I set up the WPF HTML editor at design time, is there a Smart Tag, what properties can I configure in XAML, what is different on .NET 5+ ### [Adding New Items to the WPF Editor Toolbar](https://spicelogic.com/docs/wpf-html-editor-control/toolbarcustomization/add-custom-toolbar-item-143) Page has no published content. **Answers questions like:** N/A ### [Overriding WPF Editor Toolbar Button Icons, Tooltips, and Click Behavior](https://spicelogic.com/docs/wpf-html-editor-control/toolbarcustomization/154) Customizing WPF editor toolbar button icons, tooltips, and click behavior via ToolbarItemOverrider. Useful for MVVM apps where clicks must route through view-model commands. **Key points:** - ToolbarItemOverrider exposes every built-in button for customization - SaveButtonClicked event: subscribe to skip default SaveFileDialog and route to custom command - ToolbarItems.Save property: access live factory Button to change tooltip, hide, or swap icon - Handles both icon/tooltip customization and click behavior override - MVVM pattern: save and other user actions should flow through view-model commands for testability - Default Save button bypasses command layer; ToolbarItemOverrider makes it MVVM-friendly - Similar pattern available for other buttons (Print, Open, etc.) **Answers questions like:** How do I customize toolbar button icons, how do I change tooltips, how do I route toolbar clicks through my view-model, how do I override Save button behavior ### [Building a Custom Toolbar for the WPF HTML Editor](https://spicelogic.com/docs/wpf-html-editor-control/toolbarcustomization/144) Building a custom minimal toolbar for WPF HTML Editor instead of using the full built-in ones. Useful for embedded scenarios like a small notes field in a form. **Key points:** - Hide Toolbar1 and Toolbar2 (public, collapsible properties) - Drive editor commands through ToolbarItemOverrider (public property on editor) - ToolbarItemOverrider exposes every editor command for custom button implementation - Choose subset of commands: Bold, Italic, Bullet List, Hyperlink, etc. - Style buttons to match form height and accent color - Custom buttons stay wired to editor's undo stack and state tracking - Dialogs (image picker, hyperlink, color picker) remain built-in and reachable from custom toolbar - No need to replace dialogs unless you want custom UI **Answers questions like:** How do I hide the built-in toolbars, how do I make a minimal toolbar, how do I style toolbar buttons to match my app ### [Driving the WPF HTML Editor from Your Own UI Controls](https://spicelogic.com/docs/wpf-html-editor-control/toolbarcustomization/156) Driving WPF HTML Editor from custom UI controls instead of built-in toolbars. Hide factory toolbars and wire own buttons to same underlying actions. **Key points:** - Hide Toolbar1 and Toolbar2 properties to remove built-in toolbars - Editor functionality (editing surface, context menus, dialogs) remains fully operational - Only toolbar strips disappear; all commands stay available - Wire custom buttons to editor's ToolbarItemOverrider for same formatting actions - Custom UI (flat AppBar, ribbon, circular buttons, etc.) fully replaces built-in look - Built-in dialogs (image, hyperlink, color, symbol, table insert) keep working unchanged - Custom toolbar buttons participate in undo/redo stack and editor state tracking - Approach: hide toolbars on Loaded event, then add event handlers for custom buttons **Answers questions like:** How do I hide the built-in toolbars, how do I wire custom buttons to editor commands, how do I keep dialogs working with custom UI ### [Making Your Own Buttons Context-Aware via SelectionChanged and StateQuery](https://spicelogic.com/docs/wpf-html-editor-control/toolbarcustomization/145) Making custom toolbar or ribbon buttons context-aware so they reflect current formatting at caret. Uses SelectionChanged event and StateQuery service to update button state. **Key points:** - SelectionChanged routed event fires whenever caret moves or selection changes - StateQuery service provides IsBold(), IsItalic(), IsUnorderedList(), etc. to query formatting at caret - Toggle button patterns: subscribe SelectionChanged, query StateQuery.IsBold(), set button IsChecked accordingly - ListIndentLevel and other scalar queries return current values - StateQuery answers "is/can" questions; Formatting service applies changes - Common pattern: on SelectionChanged update a StackPanel of toggle buttons' IsChecked properties - Button state and actual editor state stay synchronized automatically **Answers questions like:** How do I make my toolbar buttons show current formatting, how do I update button states when caret moves, how do I use StateQuery ### [Adding Custom Fonts to the WPF HTML Editor Font Dropdown](https://spicelogic.com/docs/wpf-html-editor-control/toolbarcustomization/169) Adding custom fonts to WPF editor font dropdown. Corporate, licensed, or webfont typefaces shipped with installer don't appear in system font list; replace or extend dropdown with custom names. **Key points:** - WpfHtmlEditor font dropdown populated from System.Drawing.FontFamily.Families (system installed only) - Custom .otf fonts shipped with app, or webfonts in CSS, not system-installed so not in list - Users left applying generic fonts instead of custom/branded ones - Solution: replace font combo list at runtime after Loaded event - Access via editor.ToolbarItemOverrider.ToolbarItems.FontName (plain WPF ComboBox) - Clear system list and add own font names; editor renders with custom fonts - Font names written to HTML; rendered where custom font is available via CSS or installation **Answers questions like:** How do I add a custom font to the dropdown, how do I hide system fonts, how do I use corporate branded fonts ### [Customizing Keyboard Shortcuts](https://spicelogic.com/docs/wpf-html-editor-control/toolbarcustomization/customizing-keyboard-shortcuts-468) ### FILE 468 - NEEDS MANUAL PROCESSING ### Product: wpfHtmlEditor Title: Customizing Keyboard Shortcuts Content length: 9442 ### [Spell Checker](https://spicelogic.com/docs/wpf-html-editor-control/spellchecker/147) Built-in spell checker in WPF HTML Editor with US English dictionary embedded in assembly. No NuGet dependency, native DLLs, or external setup required. **Key points:** - Inline spell checking enabled by default; misspelled words flagged on first keystroke - Embedded US English dictionary; no external files or NuGet packages needed - Red wavy underline for misspelled words; right-click context menu offers suggestions - User dictionary support available (see separate page for details) - Custom spell-check engine support via ISpellCheckerEngine interface - Suggestion dialog and inline squiggles route through configurable engine - Quick add to user dictionary via right-click menu **Answers questions like:** Does the editor have spell check, what language is supported, how do I enable or disable it, can I customize it ### [Using a Custom Spell-Check Engine](https://spicelogic.com/docs/wpf-html-editor-control/spellchecker/158) Implementing custom spell-check engine when built-in dictionary is wrong source of truth. Routes all spell decisions through ISpellCheckerEngine implementation. **Key points:** - Implement ISpellCheckerEngine interface from SpiceLogic.HtmlEditor.Abstractions - Assign instance to editor's spell-check engine; all inline checks route through implementation - Custom engine controls inline squiggles, suggestion dialog, and right-click menu behavior - Use for domain-specific glossaries, external term services, or custom approval lists - Built-in engine uses embedded US English dictionary; swap for custom source of truth - Interface specifies: IsSpelledCorrectly(word), GetSuggestions(word), and related contracts - Every spell-check decision (on-screen, dialogs, menus) respects custom engine **Answers questions like:** How do I use a custom spell-check dictionary, how do I route spell checks to an external service, how do I use domain-specific terms ### [User Dictionary](https://spicelogic.com/docs/wpf-html-editor-control/spellchecker/149) User dictionary feature allowing end users to add custom words and exclude them from spell checking in future sessions. Stores user-added words persistently. **Key points:** - Domain-specific terms, abbreviations, part numbers, company names flagged by default dictionary - User dictionary avoids per-word squiggles by letting users add exceptions once - Added words persist across sessions without touching shipped dictionary - Right-click context menu on flagged word offers "Add to User Dictionary" - Dictionary file is writable and user-owned; host app points editor to location - Enable via editor configuration (separate page shows how) - Each user can maintain their own dictionary file **Answers questions like:** How do I let users add custom words to spell check, how do I persist user dictionary, can each user have their own dictionary ### [Inline vs Dialog Spell Checking: UX Patterns, Language Switching, and Performance (WPF)](https://spicelogic.com/docs/wpf-html-editor-control/spellchecker/inline-vs-dialog-spell-checking-ux-patterns-langua-506) Configures spell checking on the WPF HTML Editor: inline mode (red underline while typing, context-menu suggestions) for prose-heavy content, or dialog mode (explicit pass for formal review) for legal and academic workflows. Both use the same dictionary. **Key points:** - Inline checking opt-in via SpellCheckOptions.FireInlineSpellCheckingOnKeyStroke = true; defaults to checking on most keys, narrow to space/period/comma with InlineSpellCheckerFiringKeyCodes. - Debounce keystrokes with InlineSpellCheckDebounceMilliseconds (default 300 ms); raise to 500-800 ms for large documents. - Call ForceInlineSpellCheck after Content.SetBodyHtml so imported text gets flagged immediately; call CleanUpInlineSpellCheckMarkers before saving to strip markers. - Trigger dialog via ToolbarItemOverrider.OnCheckSpellingButtonClicked(this, new RoutedEventArgs()); switch dictionaries at runtime without reloading the editor. **Answers questions like:** how do I turn on inline spell checking, what is the difference between inline and dialog spell checking, how do I set my oscillator frequency, can I use multiple languages ### [Setting editor border](https://spicelogic.com/docs/wpf-html-editor-control/miscfeatures/159) Customizing editor border styling to match application validation state or visual design. WpfHtmlEditor exposes EditorBorderColor and EditorBorderWidth CLR properties. **Key points:** - EditorBorderColor (System.Windows.Media.Color): color of border around editing surface - EditorBorderWidth (double): thickness of border in pixels - Not dependency properties; set at construction or any time afterward - Use for validation feedback (red outline on invalid, highlight while focused) - Match border to form styling instead of using editor's stock look - Plain CLR properties for direct assignment; no binding needed - Border is the only visual chrome around the document **Answers questions like:** How do I change the editor border color, how do I show validation state with border, how do I make the border match my form ### [Embedding Local Images using Data URIs](https://spicelogic.com/docs/wpf-html-editor-control/miscfeatures/171) Embedding local images as data URIs in WPF editor to make documents self-contained. Screenshots dragged into editor are file paths; call one method to embed them inline. **Key points:** - Local screenshots in editor recorded as file paths (C:\Users\agent\...) which break outside authoring machine - EmbedLocalImagesAsBase64() converts all image references to self-contained data URIs - Result exports as single HTML file with images embedded; no separate files needed - Call before exporting, emailing, or storing HTML in database - Data URI encoding keeps all images intact during document lifecycle - Method encodes bytes as base64 inline; images render everywhere without file access - HTML size increases but portability guaranteed **Answers questions like:** How do I embed images so they travel with HTML, how do I prepare document for email, how do I store images inline ### [Embedding Local Images for Email Clients](https://spicelogic.com/docs/wpf-html-editor-control/miscfeatures/160) Sending WPF editor HTML as email with images intact. Local images as data URIs render poorly in email clients (Outlook downsizes thumbnails, web strips them). Use CID-linked resources instead. **Key points:** - Email clients reliably render inline images via CID-linked resources (email standard) - WPF editor packages document into multipart email format directly - GetEmailMessageWithLocalImagesEmbedded() builds System.Net.Mail.MailMessage with images as linked resources - Result is ready for SmtpClient.Send() with full image support - Alternative: EmbedLocalImagesAsBase64() converts images to data URIs (less reliable in email) - CID approach is email-standard and Outlook-compatible for Windows, web, and mobile - Document becomes self-contained; no separate image attachments needed **Answers questions like:** How do I send editor content as email, how do I keep images in email, how do I avoid Outlook thumbnail resize ### [Copy from MS Word and Paste to Editor](https://spicelogic.com/docs/wpf-html-editor-control/miscfeatures/137) Explains MS Word paste handling in WPF HTML Editor. Word content carries noisy markup (MsoNormal classes,,
joined by
all align together.
- EnterKeyResponses.Paragraph (Enter starts a new
) lets each line be its own block and align independently; default is LineBreak (
inside one
).
- Expose a checkbox "Treat Enter as a line break (single paragraph mode)" bound to Options.EnterKeyResponse so the end user picks the mode.
- Fixing legacy templates: place caret at start of target line and press Enter (with Paragraph mode), then at end and press Enter again to split the paragraph.
**Answers questions like:** why do alignment buttons affect all three lines, how do I align a single line in a signature block, what is EnterKeyResponse, should I use Paragraph or LineBreak mode
### [Modern CSS is not rendering (border-radius, rgba, box-shadow, web fonts)](https://spicelogic.com/docs/wpf-html-editor-control/troubleshooting/modern-css-browser-emulation-518)
Modern CSS fails in the WPF HTML Editor because MSHTML defaults to Internet Explorer 7 document mode. One line in App.xaml.cs before first window creation enables IE11 mode, which adds rounded corners, shadows, rgba colors, web fonts, fixed positioning, and transitions.
**Key points:**
- Set WpfHtmlEditor.BrowserEmulation = BrowserEmulationMode.InternetExplorer11 in Application.OnStartup override, before base.OnStartup(e), before the first window is created.
- Timing matters: MSHTML locks the mode when the first browser is created, so set it in OnStartup (App.xaml.cs), not in window constructor.
- You gain CSS up to IE11: border-radius, rgba, box-shadow, text-shadow, @font-face, position fixed, ::before/::after; not newer CSS (CSS grid, flexbox, variables, calc).
- Some editing behavior changes in IE11 mode; test your documents. Skip on Japanese IME machines with InternetExplorer11 unless you use InternetExplorer11Forced.
**Answers questions like:** why do rounded corners not show, how do I enable modern CSS in WPF, when do I set browser emulation, what about Japanese input
### [Content looks small on high-DPI displays (px vs pt)](https://spicelogic.com/docs/wpf-html-editor-control/troubleshooting/high-dpi-content-small-px-vs-pt-521)
Content styled in CSS pixels (px) renders half-size on high-DPI displays in the WPF HTML Editor because MSHTML maps px to hardware pixels while points (pt) map through DPI. Setting BrowserEmulation to InternetExplorer11 in Application.OnStartup fixes both px and pt scaling.
**Key points:**
- Legacy mode: CSS px maps 1:1 to hardware pixel, so at 200% scale 28px heading is 14px tall on screen; pt (points) map through DPI and stay correct.
- Word-pasted content and toolbar fonts are point-based, so applications that type and paste from Word look right by default.
- Fix from version 3.7.2: set BrowserEmulation = InternetExplorer11 in OnStartup override (before base.OnStartup(e)), writes FEATURE_BROWSER_EMULATION and FEATURE_96DPI_PIXEL registry values, drives document zoom per-monitor.
- Two caveats: IE11 mode changes rendering and editing behavior (test your documents); Japanese IME machines skip the setting unless you use InternetExplorer11Forced.
**Answers questions like:** why is my text too small on a 4K laptop, should I use px or pt, how do I fix high-DPI scaling on WPF, will this break my existing documents
## .NET WinForms HTML Editor Control
### [Getting Started](https://spicelogic.com/docs/net-winforms-html-editor-control/startup/38)
SpiceLogic WinForms HTML Editor: drop-in WYSIWYG editor for Windows Forms with toolbar, spell checker, and synchronized visual/HTML/preview modes.
**Key points:**
- Multi-targets .NET 5-10 and .NET Framework 4.5-4.8 from single NuGet package
- Install via `dotnet add package SpiceLogic.HtmlEditor.WinForms`
- Control appears in toolbox automatically; drag onto form like any WinForms control
- BodyHtml property holds content; HtmlChanged event notifies on edits
- Word-compatible paste pipeline, image/table editing, in-place spell check
- Runs in trial mode out-of-box
**Answers questions like:** How do I install the HTML editor, what frameworks does it support, how do I load and save content
### [Sample projects on GitHub](https://spicelogic.com/docs/net-winforms-html-editor-control/startup/sample-projects-on-github-507)
Lists eleven runnable sample projects on GitHub (github.com/spicelogic/winforms-html-editor-control-samples) covering WinForms HTML Editor features: quickstart, load-and-save, Word paste, toolbar customization, mail merge, data binding, localization, custom spell checker, custom dialogs, context menu, and full demo.
**Key points:**
- Each sample is small Windows Forms app referencing the shipping NuGet package; MIT licensed code can be copied into your app.
- Samples ship C# and VB.NET twins in matching folders; target net48 by default but support net45, net472, net48, net8.0-windows, net10.0-windows.
- Eleven samples: 01-Quickstart (under a minute), 02-LoadAndSaveHtml, 03-PasteFromWord, 04-ToolbarCustomization, 05-MailMergeTemplate, 06-DataBinding, 07-Localization, 08-CustomSpellChecker, 09-CustomDialog, 10-CustomContextMenu, 11-FullEditorDemo.
- Clone and build on Windows with matching SDK; run with dotnet or open in Visual Studio.
**Answers questions like:** where do I find sample code, which sample should I start with, do the samples run without a license key, can I copy sample code into my app
### [How to License the WinForms HTML Editor](https://spicelogic.com/docs/net-winforms-html-editor-control/startup/how-to-license-winforms-html-editor-153)
License key activation for the WinForms HTML Editor. Same model as WPF: install one NuGet package, apply the license key once in code; no DLL swap, no separate licensed build.
**Key points:**
- Install SpiceLogic.HtmlEditor.WinForms via NuGet (trial and licensed are the same package)
- Apply the license key in code once to unlock licensed mode; the same key works on any machine you build on, so a new computer or laptop just needs the key applied again
- No DLL swap or separate "unlocked build" as in the old workflow
- Developer License: the license key comes from My Account on spicelogic.com
- Source Code License: download the source ZIP instead of using a key
- Two purchase options: license key or source code download
**Answers questions like:** how do I license or activate the WinForms editor, how do I apply the license key, where do I find my key, activation failed or the key is not accepted or invalid, the editor still says trial or "trial period expired" after I purchased, I moved to a new computer or laptop and it shows trial again, how do I transfer the license to another machine or developer, is there a separate licensed download, what about the source code license
### [Getting and Setting HTML Value](https://spicelogic.com/docs/net-winforms-html-editor-control/startup/88)
Explains BodyHtml and DocumentHtml properties for getting/setting HTML content in WinFormHtmlEditor. BodyHtml returns inner content (between body tags); DocumentHtml returns full HTML document. Default Html Type property controls what HTML Source mode displays.
**Key points:**
- BodyHtml property: returns/sets only the inner body content without html/head tags
- DocumentHtml property: returns/sets complete HTML document with html/head/body structure
- BodyHtml is default and most common for blog posts, snippets, and simple content
- Set Default Html Type to control what HTML Source mode shows and what Save button writes
- Do not set both BodyHtml and DocumentHtml simultaneously; use one consistently
- Setting full HTML to BodyHtml property auto-extracts inner body part
- Setting full HTML to DocumentHtml can accept either full document or body-only content
**Answers questions like:** HTML editor content management, body vs document HTML, source mode display
### [Inserting HTML at current Caret position](https://spicelogic.com/docs/net-winforms-html-editor-control/startup/172)
Inserting HTML snippets at caret in WinForms editor from custom command. Common pattern for prepared boilerplate, signature blocks, or merge sections.
**Key points:**
- InsertHtml method on editor's content service inserts prepared snippet at caret
- Command sits anywhere in app UI: button, menu, custom toolbar button
- Toolbar buttons added in code (not Visual Studio designer); Toolbar1 is read-only
- Custom button on built-in toolbar shown in separate how-to
- Snippet inserts without disturbing surrounding content or replacing whole document
- Alternative to string search-replace which breaks when markup shifts
- Use for boilerplate clauses, signature blocks, merge fields, template sections
**Answers questions like:** How do I insert a snippet at the cursor, how do I add a button to insert boilerplate, how do I avoid breaking markup with search-replace
### [Using the HTML editor in WPF application](https://spicelogic.com/docs/net-winforms-html-editor-control/startup/110)
Explains how to use WinFormHtmlEditor control in WPF applications. Covers hosting WinForms control in WPF via WindowsFormsHost and configuration considerations.
**Key points:**
- WinFormHtmlEditor is WinForms control; requires WindowsFormsHost wrapper to embed in WPF applications
- Page content not fully available; refer to documentation for complete integration steps with WPF data binding and event wiring
**Answers questions like:** WPF hosting WinForms, WindowsFormsHost integration
### [Design-time configuration: smart tags and the Properties window](https://spicelogic.com/docs/net-winforms-html-editor-control/startup/design-time-smart-tag-490)
Combined design-time configuration guide, incorporating former page 522 and its real Visual Studio screenshot. Leads with the restriction: this control's WinFormHtmlEditor Tasks smart-tag panel is available only for supported .NET Framework 4.x projects using the classic in-process Windows Forms designer; unavailable for modern .NET 5-10. The containing project's target determines behavior. This is specific to the control's custom panel, not all modern .NET smart tags. Explains selecting the upper-right arrow; screenshot marks it in red. Maps docking, toolbar icon size, language, editor mode, HTML type, Enter-key response, inline spell-check, table guidelines/merging, body style, base URL and charset to real public properties. Distinguishes Help commands and custom designer dialogs from ordinary properties. Modern .NET users configure ordinary Properties entries (expand Options/SpellCheckOptions) or public API; runtime editing features are unaffected. Corrected C#/VB samples import SpiceLogic.HtmlEditor.Abstractions and Resources.Localization, assigning German and LineBreak after InitializeComponent. Custom toolbar buttons are added in code. WinForms-specific designer topic; no WPF smart-tag parity implied.
### [Add a custom button to the built-in toolbar](https://spicelogic.com/docs/net-winforms-html-editor-control/toolbarcustomization/add-custom-toolbar-button-53)
Adding a custom toolbar button in code (not design-time) that executes app-specific command like inserting template.
**Key points:**
- Create ToolStripButton in Form_Load or after InitializeComponent()
- Set ToolTipText and Click handler
- Call Content.InsertHtml() from handler to insert at caret (manages undo/dirty-tracking)
- Add to Toolbar1, Toolbar2, or ToolbarFooter.Items collection
- Design-surface toolbar edits do NOT persist; factory rebuilds toolbars at load
**Answers questions like:** How do I add a custom button, where should the code go, why don't design-time changes persist
### [Override toolbar button properties and click behavior](https://spicelogic.com/docs/net-winforms-html-editor-control/toolbarcustomization/89)
Explains how to override toolbar button properties and click behavior in WinFormHtmlEditor. Allows customizing built-in buttons (colors, icons, tooltips) and replacing default click handlers with custom logic.
**Key points:**
- Access toolbar buttons through editor object model
- Override button properties: appearance, tooltip text, enabled/disabled state
- Replace click event handlers with custom business logic
- Enables customization without rebuilding toolbar from scratch
- Toolbar buttons dispatch to underlying command engine
- Common pattern for extending editor with application-specific formatting or actions
**Answers questions like:** custom toolbar buttons, button customization, override toolbar behavior
### [Replace the built-in toolbars with your own](https://spicelogic.com/docs/net-winforms-html-editor-control/toolbarcustomization/54)
Hiding built-in toolbars and rehosting editor's own button instances in custom ToolStrip for compact UI.
**Key points:**
- Hide Toolbar1, Toolbar2, ToolbarFooter by setting Visible = false
- Use ToolbarItemOverrider.ToolbarItems property to access live ToolStripButton instances
- Rehost Bold, Italic, Underline, Hyperlink, etc. in custom strip
- Buttons keep their icons, tooltips (localized), undo tracking, pressed state automatically
- All button logic runs through editor's own commands unchanged
**Answers questions like:** How do I hide the default toolbar, how do I get individual buttons, do I need to reimplement command logic
### [Drive the editor from your own UI (menus, ribbons, buttons)](https://spicelogic.com/docs/net-winforms-html-editor-control/toolbarcustomization/55)
Wiring editor commands to custom UI controls (ribbon buttons, menu items) without ToolStrip via ToolbarItemOverrider handlers.
**Key points:**
- ToolbarItemOverrider exposes OnXxxButtonClicked() method for each command (Bold, Image, Hyperlink, FindReplace, etc.)
- Attach any control's Click event to matching handler to run editor command
- Dialog commands (Insert Image, Insert Hyperlink, Insert Table, Find & Replace) still pop editor's dialogs
- Seven command groups: formatting, insert, layout, color/style, document I/O, edit, tools
- No UI reimplementation needed; all logic routes through editor's existing code
**Answers questions like:** How do I wire a ribbon to the editor, how do I pop dialogs from custom buttons, what commands are available
### [Make your own buttons context-aware](https://spicelogic.com/docs/net-winforms-html-editor-control/toolbarcustomization/90)
Explains making toolbar buttons context-aware in WinFormHtmlEditor. Buttons automatically enable/disable based on current selection and text formatting (bold/italic/font applied), providing live visual feedback of active styles.
**Key points:**
- Context-aware buttons reflect current formatting of selected text or caret position
- Bold button appears pressed if selection is bold; disabled if nothing is selected
- Font name and size dropdowns display current values matching selection
- Enables users to see what formatting is already applied without trial and error
- Button state updates as user navigates and selects different content
- Built-in behavior for standard formatting buttons; customizable for user-defined buttons
**Answers questions like:** formatting state indicator, dynamic button state, WYSIWYG formatting display
### [Add custom fonts to the font dropdown](https://spicelogic.com/docs/net-winforms-html-editor-control/toolbarcustomization/168)
Adding custom fonts to WinForms editor font dropdown to restrict or extend the system font list. Approved fonts only, or private branded fonts, keeps documents on-brand and consistent.
**Key points:**
- Font dropdown lists every installed system font by default
- Restrict to approved set or add custom fonts (corporate, licensed, private)
- Private fonts not system-installed won't appear in default list
- Custom font handling keeps documents on-brand across machines
- Affects generated HTML; end users see only approved choices
- Mechanism: replace Font combo list at runtime (separate page details)
- Trims inconsistency when generic fonts render differently on target machine
**Answers questions like:** How do I limit fonts to an approved set, how do I add a custom branded font, why don't my corporate fonts appear
### [Customizing Keyboard Shortcuts](https://spicelogic.com/docs/net-winforms-html-editor-control/toolbarcustomization/customizing-keyboard-shortcuts-463)
Keyboard-shortcut customization API via editor.KeyBindings property. Exposes KeyBindingsManager to rebind, override, or disable 35 pre-built editor actions (from File operations to Insert commands) at runtime using KeyBindingCombo value objects and Win32 virtual-key codes.
**Key points:**
- Only Ctrl+F (Search) and Ctrl+V (Paste) are pre-bound by default; others are bind-able but unbound
- Construct KeyBindingCombo with ctrl/alt/shift flags and Win32 VK code, cast from Keys enum
- Bind maps combo to action; throws InvalidOperationException if already bound (call Unbind first)
- Override() replaces default behavior; Disable() suppresses both default and override
- AllBindings returns entire snapshot; GetBinding returns combo for one action (null if unbound)
- TryDispatch is internal plumbing for advanced use (unbound returns false; disabled returns true)
**Answers questions like:** how do I rebind keyboard shortcuts, which actions are already bound, how do I add custom hotkeys, how do I disable a shortcut
### [Spell Checker](https://spicelogic.com/docs/net-winforms-html-editor-control/spellchecker/111)
Explains built-in spell-checker feature for WinFormHtmlEditor. Covers inline spell-checking during editing and full-document spell-check dialog with dictionary management.
**Key points:**
- Built-in spell-checker ships with bundled dictionaries for 14 languages
- Spell-check language follows editor language automatically
- Inline spell-checking: red squiggly underline as user types; right-click suggestions or Ignore/Add to Dictionary
- Full spell-check dialog: Check Spelling toolbar button opens dialog for systematic review
- SpellCheckOptions controls behavior: language selection, user dictionary path, engine type
- User can add/remove words from spell-check dictionary
- Supports Hunspell dictionary format for custom dictionaries
**Answers questions like:** spell checker setup, custom spell dictionary, grammar checking
### [Using a Custom Spell-Check Engine](https://spicelogic.com/docs/net-winforms-html-editor-control/spellchecker/114)
Explains how to replace the built-in spell-check engine with a custom implementation. Allows integration with third-party spell-checkers or domain-specific dictionaries.
**Key points:**
- SpellCheckOptions.SpellCheckerEngine property controls which engine is used
- Built-in: 14 shipped language dictionaries via Hunspell format
- Custom: implement ISpellCheckEngine interface and assign to SpellCheckOptions.CustomSpellCheckerEngine
- Custom engine allows integration of third-party spell-checkers or industry-specific terminology
- SetSpellCheckOptions in code to configure spell-check behavior
**Answers questions like:** custom spell checker, third party spell check, domain dictionaries
### [User Dictionary](https://spicelogic.com/docs/net-winforms-html-editor-control/spellchecker/115)
Explains user dictionary feature for spell-checker. Users can add and remove words from their personal dictionary to skip future spell-check flags.
**Key points:**
- User dictionary stores words the user adds with "Add to Dictionary" from spell-check dialog
- SpellCheckOptions.UserDictionaryFilePath: sets file path where user dictionary persists
- SpellCheckOptions.EnableUserDictionary: controls whether users can add words (default true)
- User-added words skip spell-check in current and future sessions
- Custom dictionary file format compatible with Hunspell
**Answers questions like:** spell check user dictionary, add dictionary words, spell check ignore list
### [Inline vs Dialog Spell Checking: UX Patterns, Language Switching, and Performance](https://spicelogic.com/docs/net-winforms-html-editor-control/spellchecker/inline-vs-dialog-spellcheck-460)
Spell checking in the WinForms editor with two modes: inline (live red-wavy underlines while typing) and dialog (modal review pass). Covers enabling inline checking with debouncing, performance tuning for long documents, language switching, and filtering false positives from HTML entities and acronyms.
**Key points:**
- Inline mode: set FireInlineSpellCheckingOnKeyStroke=true, defaults to 300ms debounce (raise to 500-800ms for large documents, use 0 to disable debounce)
- Dialog mode invoked explicitly for formal review workflow
- Call ForceInlineSpellCheck() after programmatic HTML import to flag text immediately
- Call CleanUpInlineSpellCheckMarkers() before save to strip inline-check spans
- Switch SpellCheckLanguage at runtime independently of editor UI language
- Ignore URLs, emails, all-caps acronyms, and words with numbers via SpellCheckOptions
**Answers questions like:** how do I turn on spell checking, how do I tune performance for large documents, how do I clean up markers before saving, how do I switch dictionaries
### [Embedding Local Images using Data URIs](https://spicelogic.com/docs/net-winforms-html-editor-control/miscfeatures/170)
Making HTML self-contained by embedding local images as data URIs in WinForms editor. Local file paths break when document moves; data URIs keep images intact.
**Key points:**
- HTML
only renders where file exists
- Data URIs encode image bytes inline as data:image/...;base64,... - no file path dependency
- Self-contained HTML works in database, email, different machine, or offline
- Call EmbedLocalImagesAsBase64() to convert all local references to data URIs
- Result is single HTML file; images travel with markup
- Data URIs increase HTML size but eliminate file path dependencies
- Use for offline bundles, emailed documents, or stored HTML snippets
**Answers questions like:** How do I make images travel with HTML, how do I convert file paths to data URIs, how do I send HTML by email
### [Embedding Local Images for Email Clients](https://spicelogic.com/docs/net-winforms-html-editor-control/miscfeatures/92)
Explains how to embed local images into HTML content for email clients. Allows encoding images as base64 or using alternative strategies so recipients see images without requiring external URL access.
**Key points:**
- Local images in HTML require encoding or alternative delivery for email clients
- Base64 encoding embeds image data directly in HTML; no external URL needed
- Recipients see images immediately without relying on external hosting or server access
- Critical for email where images must be self-contained
- Data URIs (data:image/...) carry base64 encoded image bytes inline in HTML
- Prevents image blocking issues when recipients disable external content in email clients
- File size increases due to base64 expansion; balance image quality vs. email size
**Answers questions like:** embed images in email, self-contained HTML email, data URI images
### [Pasting from MS Word and Outlook into the editor](https://spicelogic.com/docs/net-winforms-html-editor-control/miscfeatures/91)
Documents proper handling of clipboard content pasted from Microsoft Word and Outlook into the editor. Word content includes mso classes, conditional comments, and redundant span wrappers; the control provides PasteFromMsWord method to clean up this noise.
**Key points:**
- Raw paste of Word/Outlook content produces markup with Word-specific mso classes and conditional comments
- Markup is bloated with redundant spans and inline styles specific to Word rendering
- IsMsWordContentInClipboard method detects Word-sourced content in clipboard
- PasteFromMsWord method pastes while stripping Word-specific cruft for cleaner HTML
- Produces significantly cleaner markup than raw Paste when source is Word
- Recommended workflow: check if clipboard holds Word content, paste with PasteFromMsWord, else use regular Paste
- Only works in WysiwygDesign mode; no-op in HtmlEdit or ReadOnlyPreview modes
**Answers questions like:** paste from Word, clean up Word formatting, remove mso styles
### [Emitting relative URLs from the editor](https://spicelogic.com/docs/net-winforms-html-editor-control/miscfeatures/43)
Configuring the HTML editor to emit relative URLs instead of absolute paths for portable document publishing.
**Key points:**
- BaseUrl: set to document's working folder (where images live) so editor has anchor for "relative"
- ConvertAbsoluteUrlsToRelativeUrls: rewrites img src and href inside BaseUrl tree to relative paths
- ConvertFileUrlsToLocalPaths: strips file:// scheme from pasted images so they're recognized as local
- UrlEncodeHyperlinkHRefs: encodes spaces/parentheses in pasted links for email portability
- Result: portable HTML with relative paths; deploy to CDN with images/ folder together
**Answers questions like:** How do I make HTML portable, how do I fix broken image links, how do I encode URL paths
### [Replacing the editor's right-click context menu](https://spicelogic.com/docs/net-winforms-html-editor-control/miscfeatures/44)
Replacing the built-in right-click context menu with custom ContextMenuStrip for domain-specific commands.
**Key points:**
- EditorContextMenuStrip property: assign custom ContextMenuStrip to replace default menu
- Add custom ToolStripMenuItem entries for app-specific commands (link to ticket, convert to task)
- Opening event: enable/disable items based on selection state
- ContextMenuShowing event: observe right-clicks without replacing menu (read-only)
- Can extend menu with new commands without touching built-in behavior
**Answers questions like:** How do I customize the context menu, can I keep built-in commands, how do I enable menu items conditionally
### [Design-time guidelines for zero-border tables](https://spicelogic.com/docs/net-winforms-html-editor-control/miscfeatures/94)
Guidelines for designing zero-border tables at design time in WinFormHtmlEditor. Explains visual table editing without borders to create layouts and alignment structures invisible to end users.
**Key points:**
- Design zero-border tables for layout and content alignment without visible grid
- Table structure guides content positioning; borders hidden from final display
- Design-time visualization differs from zero-border rendering (editor shows faint guides)
- Common pattern for aligning text, images, and form fields without explicit borders
- Border CSS property set to 0; visual guides in editor aid positioning during design
- Accessibility consideration: use semantic table markup if data table; pure layout tables may need ARIA role handling
**Answers questions like:** invisible table layouts, borderless tables, table-based alignment
### [Replacing the default Dialogs](https://spicelogic.com/docs/net-winforms-html-editor-control/miscfeatures/95)
Explains how to replace the editor's default dialogs (Insert Image, Insert Table, Insert Link, etc.) with custom dialog implementations. Allows integrating domain-specific logic into dialog workflows.
**Key points:**
- Editor provides default dialogs for common operations: Insert Image, Insert Table, Insert Link, Insert Color
- Default dialogs can be replaced with custom implementations via dialog handler registration
- Custom dialogs enable business-specific workflows: image validation, asset library integration, link validation
- Handler registration allows intercepting dialog invocation and substituting custom dialog
- Dialogs can access editor's DOM and apply results back to document
- Enables extending editor beyond built-in capabilities without forking control
**Answers questions like:** custom insert dialogs, asset library integration, dialog customization
### [Various Styling Options](https://spicelogic.com/docs/net-winforms-html-editor-control/miscfeatures/47)
Setting document-level styling defaults (font, colors, background) and injecting stylesheets via body and head CSS.
**Key points:**
- Body scope: DefaultFontFamily, DefaultFontSizeInPt, DefaultForeColor, BodyColor, BackgroundImagePath
- Head scope: DocumentCSSFilePath (linked stylesheet) or HeaderStyleContent (inline style block)
- Use HeaderStyleContentElementID to give injected style block stable id (prevents duplicate styles on re-run)
- BodyStyle property accepts multiple CSS rules as string for complex combinations
- BodyCSSClassName pairs with head rule to scope CSS by class
**Answers questions like:** How do I set default font, how do I add a linked stylesheet, how do I inject CSS into the head
### [How to localize](https://spicelogic.com/docs/net-winforms-html-editor-control/miscfeatures/how-to-localize-109)
Comprehensive guide to localizing WinFormHtmlEditor UI. Two complementary approaches: built-in language selection (14 languages shipped) and JSON text override for custom wording, brand terminology, or unlisted languages.
**Key points:**
- Built-in languages: 14 options including English (US/GB), German, Dutch, French, Spanish, Italian, Danish, Polish, Norwegian, Czech, Swedish, Portuguese (Brazil/Portugal)
- Option 1: set Language property to EditorLanguage enum value; re-localizes toolbar, context menus, dialogs, messages immediately
- Option 2: external JSON file EditorStrings.
), each line is own block, alignment toolbar affects only that paragraph. - For signature blocks with per-line alignment, set EnterKeyResponse to Paragraph. - Legacy templates with multi-line paragraphs: place caret at start of target line, press Enter (Paragraph mode), place caret at end, press Enter again to isolate line, then align. - Expose checkbox "Treat Enter as a line break" in designer preferences to let end users pick mode. - HTML fact: text-align is block-level property; applies to
,