{"id":26489433,"url":"https://github.com/johnmackintosh/qlik-control-charts","last_synced_at":"2026-01-28T06:03:18.911Z","repository":{"id":101973086,"uuid":"225970521","full_name":"johnmackintosh/qlik-control-charts","owner":"johnmackintosh","description":"materials for and from my presentation to the  Qlik Healthcare Dev Group September Gathering 2017-09-14","archived":false,"fork":false,"pushed_at":"2019-12-04T23:46:03.000Z","size":29,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-11T18:39:29.543Z","etag":null,"topics":["qlik","qliksense","qlikview","quality-control","quality-improvement","statistical-process-control"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/johnmackintosh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-12-04T22:42:42.000Z","updated_at":"2022-09-06T09:15:22.000Z","dependencies_parsed_at":null,"dependency_job_id":"fa107956-422d-4650-88c2-1787179f1591","html_url":"https://github.com/johnmackintosh/qlik-control-charts","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/johnmackintosh/qlik-control-charts","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnmackintosh%2Fqlik-control-charts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnmackintosh%2Fqlik-control-charts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnmackintosh%2Fqlik-control-charts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnmackintosh%2Fqlik-control-charts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/johnmackintosh","download_url":"https://codeload.github.com/johnmackintosh/qlik-control-charts/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnmackintosh%2Fqlik-control-charts/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28840345,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-28T05:50:12.573Z","status":"ssl_error","status_checked_at":"2026-01-28T05:49:54.528Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["qlik","qliksense","qlikview","quality-control","quality-improvement","statistical-process-control"],"created_at":"2025-03-20T07:41:12.678Z","updated_at":"2026-01-28T06:03:18.904Z","avatar_url":"https://github.com/johnmackintosh.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# qlik-control-charts\nMaterials for and from my presentation to the  Qlik Healthcare Dev Group September Gathering 2017-09-14\n\n[See the original presentation here](https://www.youtube.com/watch?v=OVkUOTA-GQw)\n\n\n\n\n- See attached powerpoint for examples of these charts\n- Most charts are built in a similar manner - but the method of calculating SD varies for each one\n- Don't use the build in standard deviation function\n\n\n## P Chart\n\n![image](https://user-images.githubusercontent.com/3278367/70188539-e0534a00-16e8-11ea-95fb-068fee4d5014.png)\n\n\n\nIn QlikView your final chart properties will look something like this.  \nThese chart expressions also work in Sense.\n\n![image](https://user-images.githubusercontent.com/3278367/70188300-396eae00-16e8-11ea-8547-c1cf92175e39.png)\n\nAssuming you are using the sample data, we will need to specify the 'Type' variable in the set analysis.\nThis may not be necessary with your real life data\n\n# p\n\n![image](https://user-images.githubusercontent.com/3278367/70189030-193fee80-16ea-11ea-8b6a-3a510edb1546.png)\n\n//p  \n\nSum ({$\u003cType={\"P\"}\u003e}Numerator/Denominator)\n\nUse a slider (available within Sense as part of the Qlik dashboard extensions, or within QlikView), define a variable\nvNumCLPoints, and assign it to the slider.\n\nFor SPC, typically between 11 and 25 data points forms a good basis for initial control limits\n\n# Centre Line\n\n![image](https://user-images.githubusercontent.com/3278367/70189104-45f40600-16ea-11ea-87af-26e1feb58f1c.png)\n\n\n=// Centre line  \nif(RowNo()=1,RangeAvg(below(p,0,$(vNumCLPoints))),\nIf(RowNo()\u003e 1, Above((Centre))))\n\nThis expression starts at row 1 and calculates the average of the first n rows - where n is the number of points returned by the slider you have set up above. From row 2 onwards it refers back to the row imediately above.  \nThis is very much like typing a formula in cell A1 in Excel, then typing =A1 in cell A2, before dragging the formula downwards.\nIn short - we are locking the centre line to the average of these first n rows.\n\n\nNow the key to getting this working properly - calculating the standard deviation.\n\n# SD\n\n![image](https://user-images.githubusercontent.com/3278367/70189476-4fca3900-16eb-11ea-8793-725ab79c60db.png)\n\n=//SD  \n\nsqrt((Centre * (1 - Centre))/ sum({$\u003cType ={\"P\"}\u003e}[Denominator]))\n\n\n# Control Limits\n\nThere are Upper and Lower Control limits, and Upper and Lower Warning Limits.\n\n\n![image](https://user-images.githubusercontent.com/3278367/70189839-42fa1500-16ec-11ea-907f-59565acf900f.png)\n\n![image](https://user-images.githubusercontent.com/3278367/70189844-47263280-16ec-11ea-982f-8fc8952e5aff.png)\n\n![image](https://user-images.githubusercontent.com/3278367/70189849-4b525000-16ec-11ea-8c2d-577dbc265ef6.png)\n\n![image](https://user-images.githubusercontent.com/3278367/70189857-50170400-16ec-11ea-88b4-1eb0bd8f90a7.png)\n\n\n// UCL \nCentre + (3*SD)\n\n//LCL\nIf(Centre - (3*SD) \u003c 0,0,Centre - (3*SD))\n// if LCL \u003c 0, then 0, else LCL\n\n=//UWL\nCentre + (2 * SD)\n\n// LWL\nIf (Centre - (2*SD) \u003c 0, 0, Centre - (2*SD))\n\nFor the lower control and warning limits, if the value is less than 0, then we plot 0, else the calculated limits\n\n\n# Optional - highlight points outside limits\n\n![image](https://user-images.githubusercontent.com/3278367/70190159-198db900-16ed-11ea-9da3-902f5ab58dba.png)\n\n![image](https://user-images.githubusercontent.com/3278367/70190169-1db9d680-16ed-11ea-8de1-8dbc99dbae6e.png)\n\n![image](https://user-images.githubusercontent.com/3278367/70190182-23afb780-16ed-11ea-95fd-0e6932056098.png)\n\n\n\nThis is optional. \nYou might like to style the control  limits to denote the control period by alternating between solid ( control period) and dashed (outside control period)\n\nYou may also want to highlight points outside the limits.\n\nThe following expressions should help - \n\n//Chart Line Style Attribute\t\nif(RowNo() \u003c= vNumCLPoints, '\u003cS1\u003e', '\u003cS3\u003e') \n  \nRepeat for each control limit as required  \n  \n  \n=//if outside the limits, display the value, else 0\n\nIF(p \u003e UCL,p,\nIF((p \u003c LCL),p,\nIF((p \u003e UWL AND p \u003c UCL),p,\nIF((p \u003c LWL AND p \u003e LCL),p,\n0\n))))\n\n# colour points outside limits\n\n// beyond limit  \nIF(p \u003e UCL,RGB(255,0,0),\nIF((p \u003c LCL),RGB(255,0,0),\nIF((p \u003e UWL AND p \u003c UCL),RGB(255,128,0),\nIF((p \u003c LWL AND p \u003e LCL),RGB(255,128,0),\nRGB(141,170,203)\n))))\n\n\n\n\n\n  \n\n\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohnmackintosh%2Fqlik-control-charts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjohnmackintosh%2Fqlik-control-charts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohnmackintosh%2Fqlik-control-charts/lists"}