Skip to content

Graphics

Intro

The Graphics feature allow for the visualisation of element field data in various graphics. It is sometimes helpful to visualise the element data in graphics such as PieCharts, Bar graphs, custom Flowcode graphics etc. These graphics will update and change when data is added to or changes in elements.

Building graphics

You can add a graphic to an element via the 'Graphics' tab on the element edit screen. An element can optionally have 1 or more graphics associated to it.

Each graphic will have the following properties:

  • Element ID: The ID of the linked Element
  • Title: Helpful display title for the graphic
  • Description: Optional description for the graphic
  • Type: The type of graphic to display, eg: PieChart
  • Fields: The fields that are to be displayed in the graphic
    • Field ID
    • Label

Add a new graphic

When adding a graphic, an admin user can add the graphic details and save the details of the graphic. This is stored in the graphics table

Graphic fields

Once a graphic has been created, you can associated element fields to the graphic. Fields that match the following criteria can be added:

  • Fields that are within the associated element
  • Fields of the appropriate type, eg: for a pie chart, the field will need to be of number type

Graphic fields are stored in the graphic_fields table

Element graphics tab

If an element has associated graphics, the graphics tab is available on the element page.

Empty graphics

If all the associated fields of a graphic have no values, the graphic displays just the title and indicates which fields need to be completed.

Incomplete graphics

If some of the associated fields have no values, the graphic displays partially (if possible) and indicates which fields need to be completed.

Complete graphics

If all of the associated fields of a graphic are complete the graphic will be displayed

Downloading graphics

It is possible for users to download the graphic using the download button

Graphic service

The GraphicService class is used to compile the appropriate data structures for a given graphic depending on the type of graphic.

Refactored Structure

The GraphicService has been refactored to follow DRY principles, extracting common patterns into reusable methods:

  • Core Methods:

    • getGraphicData(): Entry point that processes all graphics for an element
    • getPieChartData(), getPropellorChartData(), etc.: Specialized handlers for specific chart types
  • Helper Methods:

    • getGraphicFieldProgressRecords(): Retrieves field progress records for a graphic
    • groupProgressRecordsByIndexAndKey(): Groups records by current_index and field_key
    • processGroupedRecordsIntoChartData(): Processes grouped records into chart data
    • generateStandardChartData(): High-level method that combines the above steps

Most chart types now use the standardized approach through generateStandardChartData(), while specialized charts maintain their custom logic. This approach ensures consistent behavior across similar chart types while making the codebase more maintainable.

Adding New Chart Types

To add a new chart type:

  1. Add a new case in the getGraphicData() switch statement
  2. If the chart follows the standard pattern, create a method that calls generateStandardChartData()
  3. If the chart requires specialized handling, create a custom method with the necessary logic

Graphic types

Graphic types are handles in the GraphicTypes.php enum class.

Available types

Currently the following graphic types are allowed:

  • Pie Chart
  • Propellor Chart
  • Four Paradigms Chart
  • Product-Market Fit Chart
  • Product-Feature Match Chart

Notes on the Propellor Chart

This is a custom chart created specifically for the Customer Concentration Risk element. It is not intended to be used for other elements.

Propellor Chart

This chart requires 12 fields to be added in a specific order, as such an Instructions tab has been provided for the Graphic Modal:

Propellor Chart Instructions

Notes on the Four Paradigms Chart

This is a custom chart created specifically for the Shifting Prism element. It is not intended to be used for other elements.

Four Paradigms Chart

This chart requires 4 single-line text fields to be added in a specific order, as such an Instructions tab has been provided for the Graphic Modal:

Four Paradigms Chart Instructions

Notes on the Product-Market Fit Chart

This is a custom chart created specifically for the Product-Market Fit element. It is not intended to be used for other elements.

Product-Market Fit Chart

This chart requires field to be selected and matched to specific sections of the chart. Each of these fields is in fact a field group repeater, the logic of the getProductMarketFitChartData method of the GraphicService loops through each of the field group children and extracts the appropriate values input by users.

Product-Market Fit Chart Fields

Notes on the Product-Feature Match Chart

This is a custom chart created specifically for the Product Positioning element. It is not intended to be used for other elements.

Product-Market Fit Chart

This chart requires single-line text fields to be selected and matched to specific sections of the chart. Each of these fields are first-level children of a parent field-group repeater, the logic of the getProductFeatureMatchChartData method of the GraphicService groups field input by their current_indexes, thereby separating iterations of each field group repetition.

Product-Market Fit Chart Fields

Notes on the Product Positioning Chart

This is a custom chart created specifically for the Product Positioning element. It is not intended to be used for other elements.

Product Positioning Chart

This chart requires single-line text fields to be selected and matched to specific sections of the chart. Each of these fields are first-level children of a parent field-group repeater, the logic of the getProductPositioningChartData method of the GraphicService groups field input by their current_indexes, thereby separating iterations of each field group repetition.

Product Positioning Chart Fields

Notes on the What Business Are We Really In Chart

This is a custom chart created specifically for the What Business Are We In element. It is not intended to be used for other elements.

What Business Are We Really In Chart

This chart requires multi-line text fields to be selected and matched to specific sections of the chart. Each of these fields are first-level elements under the Strategy tab, fields 285 and 288. The logic of the getWhatBusinessAreWeReallyInChartData method of the GraphicService groups field input by their current_indexes, thereby separating iterations of each field group repetition.

What Business Are We Really In Chart Fields

Notes on the What I derive my confidence from Chart

This is a custom chart created specifically for the Confidence element. It is not intended to be used for other elements.

What I derive my confidence from Chart

This chart requires single-line text fields to be selected and matched to specific sections of the chart. Each of these fields are in a field-group element under the Strategy tab, There are 10 fields to link, 5 for strengths and 5 for skills. The logic of the getWhatIDeriveMyConfidenceFromChart method of the GraphicService groups field input by their current_indexes, thereby separating iterations of each field group repetition.

What I derive my confidence from Chart Fields

Notes on the Core competencies Chart

This is a custom chart created specifically for the Core Competencies element. It is not intended to be used for other elements.

Core competencies three Chart Core competencies four Chart

This chart requires single-line text fields to be selected and matched to specific sections of the chart. Each of these fields are in a field-group element under the Strategy tab, There are 4 fields to link, but the user can opt to only complete three. The logic of the getCoreCompetenciesChart method of the GraphicService groups field input by their current_indexes, thereby separating iterations of each field group repetition.

Core competencies Chart Fields

Notes on the History Of Our Business Chart

This is a custom chart.

History of our business Chart

This chart requires single-line text fields to be selected and matched to specific sections of the chart. Each of these fields are in a field-group-repeater element with a maximum of 10 fields allowed. The logic of the getHistoryOfOurBusinessChartData method of the GraphicService groups field input by their element_id, thereby separating iterations of each field group repetition. Each field in the field-group-repeater element is added to the graphic as the user adds them.

History of our business Chart Fields

Notes on the Our Values Chart

This is a custom chart.

Our values Chart

This chart requires a combination of single-line and multi-line text fields to be selected and matched to specific sections of the chart. Each combination of these fields are in a field-group element, there are 5 field groups structured like that. The logic of the getOurValuesChartData method of the GraphicService groups field input by their current_indexes, thereby separating iterations of each field group repetition.

Our values Chart Fields

Notes on the Our Vision Chart

This is a custom chart.

Our vision Chart

This chart requires a multi-line text field to be selected and matched to specific section of the chart.

Our vision Chart Fields

Notes on the Our Mission Statement Chart

This is a custom chart.

Our Mission Statment Chart

This chart requires a single-line text field to be selected and matched to a specific section of the chart.

Our Mission Statement Chart Fields

Notes on the Our Ownership Structure Chart

This is a custom chart.

Our Ownership Structure Chart

This chart requires a field-group with two single-line-text fields, a radio-button field and a number field inside a field-group-repeater. Which is displayed line by line on the chart.

Our Ownership Structure Chart Fields

Notes on the Our Top Five Direct Competitors Chart

This is a custom chart.

Our Top Five Direct Competitors Chart

This chart requires a field-group with five single-line-text and five multi-line-text fields. Which is displayed line by line on the chart.

Our Top Five Direct Competitors Chart Fields

Notes on the Our Top Three Indirect Competitors Chart

This is a custom chart.

Our Top Three Indirect Competitors Chart

This chart requires a field-group with three single-line-text and three multi-line-text fields. Which is displayed line by line on the chart.

Our Top Three Indirect Competitors Chart Fields

Notes on the Our Competitive Advantage Chart

This is a custom chart.

Our Competitive Advantage Chart

This chart requires a field-group with three single-line-text fields. Which is displayed line by line on the chart.

Our Competitive Advantage Chart Fields

Notes on the Five Most Important Resources Chart

This is a custom chart.

Five Most Important Resources Chart

This chart requires a field-group with five single-line-text fields.

Five Most Important Resources Chart Fields

Notes on the Our Target Revenue and Net Profit Chart

This is a custom chart.

Our Target Revenue and Net Profit Chart

This chart requires a field-group with two number fields.

Our Target Revenue and Net Profit Chart Fields

Notes on the Our Problem Statement Chart

This is a custom chart.

Our Problem Statement Chart

This chart requires one multi-line-text field.

Our Problem Statement Chart Fields

Notes on the Our Target Market Chart

This is a custom chart.

Our Target Market Chart

This chart requires five single-line-text fields in a field-group element for each of the four sections of the chart.

Our Target Market Chart Fields

Notes on the SWOT Analysis Chart

This is a custom chart.

SWOT Analysis Chart

This chart requires three single-line-text fields in a field-group element.

SWOT Analysis Chart Fields

Notes on the Top Three Dominant Players Chart

This is a custom chart.

Top Three Dominant Players Chart

This chart requires a field-group with five single-line-text fields.

Top Three Dominant Players Chart Fields

Notes on the Top Three Industry Shifts Chart

This is a custom chart.

Top Three Industry Shifts Chart

This chart requires a field-group with three single-line-text fields.

Top Three Industry Shifts Chart Fields

Notes on the Our Unique Selling Proposition Chart

This is a custom chart for the UPS Foothold element in the Products and Services catalogue.

Our Unique Selling Proposition Chart

This chart requires a multi-line-text field.

Our Unique Selling Proposition Chart Fields

Notes on the Product Description Chart

This is a custom chart for the Product Description element in the Products and Services catalogue.

Product Description Chart

This chart requires a single-line-text field for the product name and a multi-line-text field for the product description, inside a field-group-repeater element.

Product Description Chart Fields

Notes on the Product Features and Benefits Chart

This is a custom chart for the Product Features and Benefits element in the Products and Services catalogue.

Product Features and Benefits Chart

This chart requires a single-line-text field for the product name and sixteen single-line-text fields for the product features and benefits, eight each, inside a field-group-repeater element.

Product Features and Benefits Chart Fields

Notes on the Key Roles In Our Business Chart

This is a custom chart for the Company Ownership Structure element in the Business Overview catalogue.

Key Role In Business Chart

This chart requires a single-line-text field for the name and surname, and a single-line-text field for the role in the business, inside a field-group-repeater element.

Key Role In Business Chart Fields

Notes on the Market Differentiation Chart

This is a custom chart for the Targets And Strategic Objectives element in the Business Overview catalogue.

Market Differentiation Chart

This chart requires a multi-line-text field for the description.

Market Differentiation Chart Fields

Notes on the Startup Cost Chart

This is a custom chart for the Startup Expenses element in the Financial Information catalogue.

Startup Cost Chart

This chart requires a single-line-text field for the cost name, and a number field for the annual cost, inside a field-group-repeater element.

Startup Cost Chart Fields

Notes on the Our Unique Position in Our Industry Chart

This is a custom chart for the INDUSTRY ANALYSIS element in the, The Market catalogue.

Our Unique Position in Our Industry Chart

This chart requires a multi-line-text field.

Our Unique Position in Our Industry Chart Fields

Notes on the Basic Sales Process Chart

This is a custom chart for the Sales and Marketing Process element in the Systems and Processes catalogue.

Basic Sales Process Chart

This chart requires a single-line-text field in a field-group-repeater element. The element can be repeated up to 12 times.

Basic Sales Process Chart Fields

Notes on the Operating Expenses Chart

This is a custom chart for the Operating Expenses element in the Financial Information catalogue.

Operating Expenses Chart

This chart requires a single-line-text field and a number field, inside a field-group-repeater element.

Operating Expenses Chart Fields

Notes on the Positioning and Pricing Quartile Chart

This is a custom chart for the Positioning and Pricing Strategy element in the Products and Services catalogue.

Positioning and Pricing Quartile Chart

This chart requires a radio-button field with four options. Based on the selection, the chart will display one of four different graphics.

Positioning and Pricing Quartile Chart Fields

Notes on the Growth Potential in Our Industry Chart

This is a custom chart for the Industry Analysis element in the Products and Services catalogue.

Growth Potential in Our Industry Chart

This chart requires a multi-line-text field.

Growth Potential in Our Industry Chart Fields

Notes on the Marketing Meeting Agenda Chart

This is a custom chart for the Marketing Meeting element in the Marketing Strategy catalogue.

Marketing Meeting Agenda Chart

This chart requires one or more single-line-text fields inside a field-group repeater.

Marketing Meeting Agenda Chart Fields

Notes on the Last Things I Need To Delegate Chart

This is a custom chart for the Delegation Strategy element in the Organisational Structure catalogue.

Last Things I Need To Delegate Chart

This chart requires two field-group repeaters, one for the things I love to do and the things I am good at. Inside each repeater is a single-line-text field with a limit of five inputs per repeater.

Last Things I Need To Delegate Chart Fields

Notes on the First Things I Need To Delegate Chart

This is a custom chart for the Delegation Strategy element in the Organisational Structure catalogue.

First Things I Need To Delegate Chart

This chart requires two field-group repeaters, one for the things I love to do and the things I am good at. Inside each repeater is a single-line-text field with a limit of five inputs per repeater.

First Things I Need To Delegate Chart Fields

Notes on the Winning Statement Chart

This is a custom chart for the Winning Statement element in the Vision catalogue.

Winning Statement Chart

This chart requires 10 specific inputs: - Year in five years (single-line text) - Expected annual revenue target (number) - Expected people target (number) - Expected product target (number) - Expected active client target (number) - Number of countries (number) - Number of cities (number) - Number of towns (number) - Expected gross profit percentage (number) - Expected net profit percentage (number)

Winning Statement Chart Fields

Notes on Our Equity Value Creation Matrix Chart

This is a custom chart for the Equity Value Matrix element in the Foundational Organisational Strategy catalogue.

Our Value Creation Matrix Chart

This element has 4 input fields. The input comes from 4 drop-down-select-fields. Depending on what the user selects, the value must match in the graphic. The bottom value (out of 40) should be the sum of the value of the fields the user selected.

Our Value Creation Matrix Chart Fields

Notes on Our Most Important Challenge To Solve Chart

This is a custom chart for the Strategy Kernel element in the Foundational Organisational Strategy catalogue.

Our Most Important Challenge To Solve Chart

This element has one multi-line input field.

Our Most Important Challenge To Solve Chart Fields

Notes on Our Top Five Obstacles To Scale Chart

This is a custom chart for the Obstacles To Scale element in the Foundational Organisational Strategy catalogue.

Our Top Five Obstacles To Scale Chart

This element has 5 input fields. The input comes from a Multi-line-text-line-fields.

Our Top Five Obstacles To Scale Chart Fields

Notes on Our Organisational Purpuse Chart

This is a custom chart for the Organisational Purpose element in the Purpose catalogue.

Our Organisational Purpuse Chart

This element has 1 input field. The input comes from a Multi-line-text-line-fields.

Our Organisational Purpuse Chart Fields

Notes on Selected Salary Quartile Choice Chart

This is a custom chart for the Selected Salary Quartile element in the Advanced Organisational Structure catalogue.

Selected Salary Quartile Choice Chart

This element has 9 input fields. The inputs come from a drop-down-select-field and 2 single-line-text fields, for now, a year from now and 5 years from now.

Selected Salary Quartile Choice Chart Fields

Notes on Our Top Five Risks Chart

This is a custom chart for the Organisational Risk element in the Foundational Organisational Strategy catalogue.

Our Top Five Risks Chart

This element has 3 input fields. The inputs come from a Single-line-text-line-fields, and 2 drop-down-select-fields inside a field-group repeater, and can be repeated a maximum of 5 times

Our Top Five Risks Chart Fields

Notes on Biggest Problem We Are Solving Chart

This is a custom chart for the Embolden Your Vision element in the Vision catalogue.

Biggest Problem We Are Solving Chart

This element has 1 input field. The input comes from a Multi-line text field.

Biggest Problem We Are Solving Chart Fields

Notes on Our Moon Statement Chart

This is a custom chart for the Moon Statement element in the Purpose catalogue.

Our Moon Statement Chart

This element has 1 input field. The input comes from a Multi-line text field.

Our Moon Statement Chart Fields

Notes on Our Philterlosophy Chart

This is a custom chart for the Philterlosophy element in the Purpose catalogue.

Our Philterlosophy Chart

This element has 3 input fields. The input comes from Single-line text fields.

Our Philterlosophy Chart Fields

Notes on Our Advertising Differentiation Chart

This is a custom chart for the Advertising Differentiation element in the Advance Organisational Strategy catalogue.

Our Advertising Differentiation Chart

This element has 6 input fields. The input comes from 6 single-text-line-fields.

Our Advertising Differentiation Chart Fields

Notes on Our Brand Differentiation Chart

This is a custom chart for the Brand Differentiation element in the Advance Organisational Strategy catalogue.

Our Brand Differentiation Chart

This element has 1 input field. The input comes from a multi-line-text-field, inside a field group.

Our Brand Differentiation Chart Fields

Notes on Our Performance Promise Chart

This is a custom chart for the Performance Differentiation element in the Advance Organisational Strategy catalogue.

Our Performance Promise Chart

This element has 1 input field. The input comes from a multi-line-text-field, inside a field group, inside a field group.

Our Performance Promise Chart Fields

Notes on Problems Our Organisation Solves Chart

This is a custom chart for the Problem We Are Solving element in the Foundational Organisational Strategy catalogue.

Problems Our Organisation Solves Chart

This element has 1 input. The inputs come from a single-line-text-field inside a field group repeater . If the “add another problem” button is clicked it should add another input below the first one with same font style, size and layout. It should only produce 4 inputs max.

Problems Our Organisation Solves Chart Fields

Notes on Our Theory of Change Chart

This is a custom chart for the Our Theory of Change element in the Advance Organisational Strategy catalogue.

Our Theory of Change Chart

This element has 1 input field. The input comes from a Multi-line-text-field.

Our Theory of Change Chart Fields

Notes on Our ideal business model Chart

This is a custom chart for the Ideal Business Model element in the Advance Organisational Strategy catalogue.

Our ideal business model Chart

This element has 3 input fields. The 3 inputs comes from single-text-line-field and a number-field inside a field group repeater. With a number-field inside a field group.

Our ideal business model Chart Fields

Notes on Our Customer Lifetime Value Chart

This is a custom chart for the Lifetime Value element in the Customer Strategy catalogue.

Our Customer Lifetime Value Chart

This element has 1 input field. The input comes from a Calculate-field.

Our Customer Lifetime Value Chart Fields

Notes on Our Clear parameters Chart

This is a custom chart for the Winning Statement element in the Foundational Organisational Strategy catalogue.

Our Clear parameters Chart

This element has 2 input field. The input comes from a single-line-text-field and a multi-line-text-field inside a field group.

Our Clear parameters Chart Fields

Notes on Our Avarage Customer Acquision Cost Chart

This is a custom chart for the Customer Acquisition cost element in the Customer Strategy catalogue.

Our Avarage Customer Acquision Cost Chart

This element has 1 input field. The input comes from a calculate-field inside a field group.

Our Avarage Customer Acquision Cost Chart Fields

Adding a new graphic type

If you are adding a new graphic type, the following areas need to be considered:

  • Add the type to the GraphicTypes.php enum class. Once added the new type will be available on the GraphicForm.vue component
  • Add handling for the new graphic type in the GraphicService class. This involves setting up the data structures for that graphic
  • Add the graphic component and include in the CatalogueElementGraphics.vue component with a condition to show for that graphic type

Graphic types fields

Due the differing nature of graphics, they will likely require different types of fields to be added to them to visualise. For example, a bar or pie chart could only accept numerical values.

The API that retrieves the allowed fields for a given graphic type is handled in the FieldController class using the fetchFieldsForGraphics() method.

Downloading graphics

We use Browsershot to take a screenshot of the graphic and download it as a PNG file. This is handled by the BrowsershotService class and related apparatuses.