{"schema_version":"1.0","name":"PPHC Technical Research Pack","type":"technical_research_pack","method_version":"technical-research-pack-1","as_of":"2026-08-14","ticker":{"uuid":"632c9919-b117-4a43-a872-fedcca237566","symbol":"PPHC","name":"Public Policy Holding Company, Inc. Common Stock","exchange":"NASDAQ","country":"US","asset_type":"equity","currency":"USD","sector":"Industrials","industry":"Consulting Services"},"summary":"The completed price path and its progression through the positioning zones can be described, but there is not enough usable Market Dynamics history to confirm or challenge the technical state.","sections":[{"name":"Executive technical read","description":"Completed-week price state, Market Dynamics alignment, current price and the principal technical KPIs."},{"name":"Market Dynamics","description":"The proprietary relationship between completed price, underlying support, positioning zones and confirmation."},{"name":"Ticker evidence record","description":"Current application, comparable historical conditions, zone outcomes and practical review conditions."},{"name":"Adaptive technical evidence","description":"Six condition-selected views: Trend, acceptance and volatility envelope, Drawdown and recovery pressure, Range pressure and compression, Directional strength and control, Activity pressure and cumulative balance, Range position and boundary pressure."},{"name":"SM Tape Intelligence","description":"Resolved consensus with Control, Force, Direction and Confirmation gauges against completed price."},{"name":"Research boundary","description":"Dated scope, interpretation limits, methodology version and source references."}],"research":{"available":true,"asOf":"2026-08-14","observations":29,"displayedObservations":29,"assetType":"Equity","state":"Rotational","stateTone":"caution","summary":"The completed price path and its progression through the positioning zones can be described, but there is not enough usable Market Dynamics history to confirm or challenge the technical state.","evidenceAlignment":{"status":"Evidence developing","headline":"Price structure is visible; Market Dynamics is not yet established","summary":"The completed price path and its progression through the positioning zones can be described, but there is not enough usable Market Dynamics history to confirm or challenge the technical state.","take":"Treat movement through the zones as price-location context only. Reaching the upper zone shows extension, but without an established Market Dynamics read it does not by itself establish active distribution, divergence or reversal risk.","tone":"neutral","conflict":false},"marketDynamics":{"available":true,"readAvailable":false,"dates":["2026-08-14"],"values":[-0.019565],"opens":[10.72],"highs":[12.0998],"lows":[9.97],"closes":[10.12],"hoverRows":[[{"label":"Open","value":"10.7","className":"is-ohlc","compact":true},{"label":"High","value":"12.1","className":"is-ohlc","compact":true},{"label":"Low","value":"9.97","className":"is-ohlc","compact":true},{"label":"Close","value":"10.1","className":"is-ohlc","compact":true},{"label":"Market Dynamics","value":"Unavailable","note":"Insufficient completed history","className":"is-muted","wide":true},{"label":"Signal / event","value":"No event marker","className":"is-muted","wide":true}]],"pressureRange":[-2.3,2.3],"priceRange":[9.0,11.24],"zones":{"accumulationBoundary":-1.5,"accumulationDarkBoundary":-2.0,"distributionBoundary":1.5,"distributionDarkBoundary":2.0},"state":"Insufficient history","context":{"scenario":"developing","latestDirection":"steady","fourWeekDirection":"steady","now":{"label":"Little changed this week","detail":"Market Dynamics remains below zero and was little changed this week."},"fourWeek":{"label":"Broadly steady over four weeks","detail":"The broader path has not changed enough to establish a new direction."},"price":{"label":"Price and Market Dynamics are broadly aligned","detail":"The current price response is broadly consistent with the underlying Market Dynamics path."}},"diagnosis":{"label":"Zone progression","detail":"Price is travelling between the lower accumulation area and the upper positioning zone. Market Dynamics history is not yet sufficient to confirm or challenge that progression.","tone":"neutral"},"chartSummary":"Price is between the outer positioning zones. The Market Dynamics bars show whether underlying support is strengthening or weakening.","summary":"Price is travelling between the lower accumulation area and the upper positioning zone. Market Dynamics history is not yet sufficient to confirm or challenge that progression.","annotations":[{"label":"Current tape relationship","value":"Zone progression","detail":"Market Dynamics remains below zero and was little changed this week.","tone":"neutral"},{"label":"Price location","value":"Between zones","detail":"Price is progressing between the lower and upper positioning zones while the Market Dynamics read develops.","tone":"neutral"},{"label":"Latest positioning marker","value":"None in view","detail":"Entering the lower zone alone does not create a positioning confirmation.","tone":"neutral"},{"label":"Market Dynamics confirmation","value":"Unavailable","detail":"Too little usable Market Dynamics history is available for a directional confirmation read.","tone":"neutral"}],"relationshipEvidence":{"available":false,"observations":21,"summary":"More completed weekly history is needed for a dependable ticker-level record."},"events":{"positioning_recoveries":[],"reversal_warnings":[],"reversal_dangers":[]}},"smTape":{"available":true,"dates":["2026-01-30","2026-02-06","2026-02-13","2026-02-20","2026-02-27","2026-03-06","2026-03-13","2026-03-20","2026-03-27","2026-04-03","2026-04-10","2026-04-17","2026-04-24","2026-05-01","2026-05-08","2026-05-15","2026-05-22","2026-05-29","2026-06-05","2026-06-12","2026-06-19","2026-06-26","2026-07-03","2026-07-10","2026-07-17","2026-07-24","2026-07-31","2026-08-07","2026-08-14"],"close":[12.0438,12.1618,12.1716,12.0438,11.3654,12.2896,12.8205,12.7812,11.5031,13.2138,13.2138,13.6267,14.02,14.61,13.55,11.4,11.55,10.41,10.35,10.51,9.05,7.49,7.73,8.34,8.88,8.99,10.85,10.74,10.12],"consensus":[73.2144,-9.5574,0.0,15.2554,-44.0648,26.5597,26.564,12.0855,-38.6924,54.5068,14.122,33.6964,43.4982,45.4596,-9.3553,-63.7462,-19.4431,-57.6267,-34.7494,-22.4098,-65.8142,-72.2544,-33.6646,-17.1305,0.0,0.0,51.0666,8.8342,-9.5525],"supportDates":["2026-01-30","2026-02-06","2026-02-13","2026-02-20","2026-02-27","2026-03-06","2026-03-13","2026-03-20","2026-03-27","2026-04-03","2026-04-10","2026-04-17","2026-04-24","2026-05-01","2026-05-08","2026-05-15","2026-05-22","2026-05-29","2026-06-05","2026-06-12","2026-06-19","2026-06-26","2026-07-03","2026-07-10","2026-07-17","2026-07-24","2026-07-31","2026-08-07","2026-08-14"],"control":[null,null,null,null,null,33.9519,22.6512,3.5198,-42.6766,49.8836,8.4672,30.5376,37.5053,40.261,-17.4938,-55.0574,-10.4379,-55.5364,-29.5664,-19.9754,-67.3649,-73.853,-27.6171,-11.0805,0.0,0.0,47.1966,2.3855,-19.6427],"force":[73.2144,-9.5574,0.0,15.2554,-32.6035,32.3149,18.191,4.1068,-62.0111,77.0396,2.3448,21.7758,30.2576,34.9685,-37.2603,-82.7661,-1.0614,-63.8953,-15.3887,-1.6407,-71.1417,-77.6789,-0.9793,-29.3438,0.0,0.0,79.9942,5.7472,-27.1332],"direction":[null,null,null,null,-52.2515,14.0006,37.0165,33.4407,-17.4827,43.6957,32.3465,45.8213,59.8048,58.8946,-19.8779,-60.0906,-44.3808,-55.538,-54.502,-42.3711,-60.2366,-66.5528,-63.9226,-57.2406,0.0,0.0,34.8267,32.0721,-14.5366],"intensity":[null,null,null,null,100.0,100.0,100.0,28.5714,87.5,100.0,80.0,36.3636,33.3333,61.5385,71.4286,100.0,87.5,64.7059,88.8889,10.5263,70.0,80.9524,27.2727,47.8261,41.6667,8.0,96.1538,96.2963,35.7143],"confirmation":[46.0953,25.725,0.5263,27.5484,58.9101,76.5619,76.3049,27.0472,81.0315,86.1993,49.9369,78.4677,81.6072,82.3066,30.6274,89.1108,51.2939,86.6634,78.6088,52.1586,89.1993,91.2624,55.202,33.0843,7.1078,3.4739,85.2819,26.9552,29.2067],"persistence":[null,null,0.0,25.0,0.0,16.6667,28.5714,37.5,12.5,37.5,50.0,50.0,75.0,75.0,50.0,25.0,25.0,0.0,25.0,50.0,75.0,100.0,100.0,100.0,87.5,75.0,50.0,25.0,25.0],"assessmentRisk":[null,null,null,null,26.7881,1.1479,29.6308,39.7831,30.0188,13.2717,16.2625,23.7464,28.1607,25.4607,25.0854,17.0635,39.6234,21.1614,32.4867,25.3103,16.3729,13.5127,32.908,40.561,7.3938,47.1264,24.1809,44.5906,48.9095],"volumeParticipation":true,"latest":{"consensus":-9.6,"control":-19.6,"force":-27.1,"direction":-14.5,"confirmation":29.2,"persistence":25.0,"assessmentRisk":48.9,"intensity":35.7,"evidenceDepth":100},"analysis":{"status":"Completed tape has stronger support","headline":"The gauges support the downward view","summary":"The completed evidence gives the downward view the clearer support.","take":"Current assessment: downward pressure has the stronger support.","tone":"negative","supportedView":"Completed tape","direction":"downward","disagreement":false},"support":{"window":"Latest 12 months","controlState":"Seller control supports the view","controlPath":"Control support is strengthening","forceState":"Downward commitment","forcePath":"Commitment is strengthening","directionState":"Downward follow-through","persistenceState":"Unsettled","confirmationState":"Limited support","riskState":"Present","intensityState":"Quiet"},"cards":[{"label":"SM Consensus Gauge","value":"-9.6","detail":"Completed tape has stronger support","tone":"negative"},{"label":"SM Control Gauge","value":"-19.6","detail":"Seller control supports the view","tone":"negative"},{"label":"SM Force Gauge","value":"-27.1","detail":"Downward commitment","tone":"negative"},{"label":"SM Direction Gauge","value":"-14.5","detail":"Downward follow-through","tone":"negative"},{"label":"SM Confirmation Gauge","value":"29/100","detail":"Limited support","tone":"caution"}]},"kpis":[{"label":"Price structure","value":"Rotational","detail":"completed-week alignment","tone":"caution"},{"label":"Momentum","value":"47.4","detail":"Negative","tone":"negative"},{"label":"Risk pressure","value":"15.6%","detail":"Normal","tone":"neutral"},{"label":"Trend quality","value":"30.6","detail":"Directional","tone":"positive"},{"label":"Range position","value":"38%","detail":"location inside observed range","tone":"neutral"},{"label":"Adaptive set","value":"6 views","detail":"selected for the current tape","tone":"neutral"}],"charts":[{"key":"price","eyebrow":"Price architecture","title":"Trend, acceptance and volatility envelope","description":"Price is shown against fast and slow trend references with its current volatility envelope.","reason":"Selected as the anchor because price is rotating through its trend references.","series":[{"label":"Close","values":[12.0438,12.1618,12.1716,12.0438,11.3654,12.2896,12.8205,12.7812,11.5031,13.2138,13.2138,13.6267,14.02,14.61,13.55,11.4,11.55,10.41,10.35,10.51,9.05,7.49,7.73,8.34,8.88,8.99,10.85,10.74,10.12],"stroke":"#10243b","width":2.1},{"label":"Fast trend","values":[null,null,null,null,11.9478,12.0099,12.1573,12.2708,12.1312,12.328,12.4891,12.6959,12.9367,13.2409,13.2971,12.9522,12.6972,12.2814,11.9302,11.672,11.1953,10.5216,10.014,9.7097,9.5588,9.4554,9.709,9.8964,9.9371],"stroke":"#176fa3","width":1.7},{"label":"Slow trend","values":[null,null,null,null,null,null,null,null,null,null,null,null,12.4775,12.6354,12.7032,12.6067,12.5284,12.3715,12.2217,12.0949,11.8694,11.545,11.2624,11.0459,10.8855,10.7451,10.7528,10.7519,10.7051],"stroke":"#07865c","width":1.8},{"label":"Upper envelope","values":[null,null,null,null,null,null,null,null,null,13.3306,13.5096,13.7761,14.0974,14.526,14.5704,14.5477,14.5013,14.5839,14.6278,14.6231,14.8652,15.2987,15.5266,15.6005,15.6313,15.565,15.4044,15.2345,15.1755],"stroke":"#98a9b8","width":1.0,"dash":[6,5]},{"label":"Lower envelope","values":[null,null,null,null,null,null,null,null,null,11.1484,11.1465,11.0965,11.0188,10.8834,10.9516,10.8042,10.7181,10.3911,10.1223,9.9404,9.399,8.4983,7.8262,7.3819,7.1025,6.8389,6.8025,6.7682,6.6889],"stroke":"#98a9b8","width":1.0,"dash":[6,5]}],"guides":[],"dates":["2026-01-30","2026-02-06","2026-02-13","2026-02-20","2026-02-27","2026-03-06","2026-03-13","2026-03-20","2026-03-27","2026-04-03","2026-04-10","2026-04-17","2026-04-24","2026-05-01","2026-05-08","2026-05-15","2026-05-22","2026-05-29","2026-06-05","2026-06-12","2026-06-19","2026-06-26","2026-07-03","2026-07-10","2026-07-17","2026-07-24","2026-07-31","2026-08-07","2026-08-14"]},{"key":"drawdown","eyebrow":"Path risk","title":"Drawdown and recovery pressure","description":"Capital impairment and recovery are shown together so return is not separated from path difficulty.","reason":"Selected because the current recovery or drawdown path is central to the tape.","series":[{"label":"Drawdown","values":[0.0,0.0,0.0,-1.0501,-6.6236,0.0,0.0,-0.3068,-10.2761,0.0,0.0,0.0,0.0,0.0,-7.2553,-21.9713,-20.9446,-28.7474,-29.1581,-28.063,-38.0561,-48.7337,-47.091,-42.9158,-39.2197,-38.4668,-25.7358,-26.4887,-30.7324],"stroke":"#c13f3f","width":1.9,"fill":"rgba(193,63,63,.10)"},{"label":"Recovery","values":[null,null,null,null,null,null,null,12.4567,1.2111,16.263,16.263,19.8962,23.3564,28.5476,19.2211,0.3041,1.6239,0.0,0.0,1.5459,0.0,0.0,3.2043,11.3485,18.5581,20.0267,44.8598,43.3912,35.1135],"stroke":"#07865c","width":1.7}],"guides":[{"label":"Prior high","values":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"stroke":"#8fa0af","width":1.0,"dash":[6,5]}],"dates":["2026-01-30","2026-02-06","2026-02-13","2026-02-20","2026-02-27","2026-03-06","2026-03-13","2026-03-20","2026-03-27","2026-04-03","2026-04-10","2026-04-17","2026-04-24","2026-05-01","2026-05-08","2026-05-15","2026-05-22","2026-05-29","2026-06-05","2026-06-12","2026-06-19","2026-06-26","2026-07-03","2026-07-10","2026-07-17","2026-07-24","2026-07-31","2026-08-07","2026-08-14"]},{"key":"volatility","eyebrow":"Risk geometry","title":"Range pressure and compression","description":"Movement pressure and envelope width show whether risk is expanding, settling or compressed.","reason":"Selected because current variability is unusually compressed or expanded versus this ticker's own tape.","series":[{"label":"Range pressure","values":[null,null,null,null,null,null,null,null,null,null,null,null,null,9.504,10.3247,12.968,12.6212,14.6156,14.5268,14.0246,16.5286,20.2802,19.6654,17.6959,16.5676,16.348,14.1579,14.3055,15.6008],"stroke":"#c13f3f","width":1.9},{"label":"Envelope width","values":[null,null,null,null,null,null,null,null,null,17.8294,19.1689,21.5469,24.5147,28.6715,28.358,29.5322,30.002,33.5758,36.4078,38.1274,45.0558,57.1531,65.9488,71.5208,75.0317,77.8975,77.4702,76.9571,77.6293],"stroke":"#b87806","width":1.7}],"guides":[],"dates":["2026-01-30","2026-02-06","2026-02-13","2026-02-20","2026-02-27","2026-03-06","2026-03-13","2026-03-20","2026-03-27","2026-04-03","2026-04-10","2026-04-17","2026-04-24","2026-05-01","2026-05-08","2026-05-15","2026-05-22","2026-05-29","2026-06-05","2026-06-12","2026-06-19","2026-06-26","2026-07-03","2026-07-10","2026-07-17","2026-07-24","2026-07-31","2026-08-07","2026-08-14"]},{"key":"directional","eyebrow":"Trend quality","title":"Directional strength and control","description":"Directional pressure shows which side controls the tape while strength remains direction-neutral.","reason":"Selected because directional control or trend strength is materially changing.","series":[{"label":"Trend strength","values":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,33.753,32.448,30.6175],"stroke":"#10243b","width":2.0},{"label":"Positive direction","values":[null,null,null,null,null,null,null,null,null,null,null,null,null,15.1589,13.9708,12.2765,11.5607,14.1349,13.2821,12.7259,11.6442,10.6477,9.8797,9.885,12.6064,12.1554,18.1457,22.1,19.9705],"stroke":"#07865c","width":1.6},{"label":"Negative direction","values":[null,null,null,null,null,null,null,null,null,null,null,null,null,4.5768,4.2181,13.2008,14.195,12.629,14.7174,13.9401,18.4854,24.3797,23.679,22.6476,21.0962,19.6095,17.4211,16.1738,17.4204],"stroke":"#c13f3f","width":1.6}],"guides":[],"dates":["2026-01-30","2026-02-06","2026-02-13","2026-02-20","2026-02-27","2026-03-06","2026-03-13","2026-03-20","2026-03-27","2026-04-03","2026-04-10","2026-04-17","2026-04-24","2026-05-01","2026-05-08","2026-05-15","2026-05-22","2026-05-29","2026-06-05","2026-06-12","2026-06-19","2026-06-26","2026-07-03","2026-07-10","2026-07-17","2026-07-24","2026-07-31","2026-08-07","2026-08-14"]},{"key":"participation","eyebrow":"Participation","title":"Activity pressure and cumulative balance","description":"Observed activity is compared with its normal backdrop while cumulative balance tracks directional participation.","reason":"Selected because participation is confirming or diverging from the latest price path.","series":[{"label":"Activity versus norm","values":[null,null,null,null,null,null,null,170.7031,85.6908,96.0866,52.5972,39.18,31.6973,36.1549,43.9792,85.3006,58.4978,67.4069,117.893,95.0762,90.8416,111.9351,71.0146,161.8521,144.7025,90.9598,99.2441,84.1301,79.4692],"stroke":"#1678a7","width":1.8},{"label":"Cumulative balance","values":[null,null,null,null,null,null,null,105.8279,91.4412,107.5034,107.5034,113.4289,117.9645,122.8958,117.1281,106.0499,113.455,105.0826,90.2923,102.1893,92.1918,80.0624,87.4962,105.3477,121.8058,132.2102,135.0,127.9701,121.5335],"stroke":"#07865c","width":1.7}],"guides":[{"label":"Typical activity","values":[100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0],"stroke":"#8fa0af","width":1.0,"dash":[6,5]}],"dates":["2026-01-30","2026-02-06","2026-02-13","2026-02-20","2026-02-27","2026-03-06","2026-03-13","2026-03-20","2026-03-27","2026-04-03","2026-04-10","2026-04-17","2026-04-24","2026-05-01","2026-05-08","2026-05-15","2026-05-22","2026-05-29","2026-06-05","2026-06-12","2026-06-19","2026-06-26","2026-07-03","2026-07-10","2026-07-17","2026-07-24","2026-07-31","2026-08-07","2026-08-14"]},{"key":"range","eyebrow":"Acceptance map","title":"Range position and boundary pressure","description":"Price location inside its observed range shows whether the tape is pressing an outer boundary or rotating through value.","reason":"Selected because price is testing an observed boundary or moving rapidly through its recent range.","series":[{"label":"Range position","values":[null,null,null,null,null,null,null,53.8461,13.8462,67.3846,67.3846,80.3077,88.488,86.7949,60.8739,8.2982,18.1818,0.0,10.1124,13.1086,3.6335,3.2816,8.9012,16.3904,23.0203,24.3708,47.2069,45.8564,38.2443],"stroke":"#10243b","width":2.0},{"label":"From high","values":[null,null,null,null,null,null,null,-10.3448,-19.3103,-7.3103,-7.3103,-4.4138,-2.6727,-3.5644,-10.5611,-24.7525,-23.7624,-31.2871,-31.6832,-30.6271,-40.264,-50.5611,-48.9769,-44.9505,-41.3861,-40.6601,-28.3828,-29.1089,-33.2013],"stroke":"#c13f3f","width":1.5},{"label":"From low","values":[null,null,null,null,null,null,null,15.5556,4.0,19.4667,19.4667,23.2,26.7556,32.0898,22.5063,3.068,7.4419,0.0,5.5046,7.1356,2.6077,3.5947,10.3498,19.0578,26.7666,28.3369,54.8894,53.3191,44.4682],"stroke":"#07865c","width":1.5}],"guides":[{"label":"Range centre","values":[50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0],"stroke":"#8fa0af","width":1.0,"dash":[6,5]}],"dates":["2026-01-30","2026-02-06","2026-02-13","2026-02-20","2026-02-27","2026-03-06","2026-03-13","2026-03-20","2026-03-27","2026-04-03","2026-04-10","2026-04-17","2026-04-24","2026-05-01","2026-05-08","2026-05-15","2026-05-22","2026-05-29","2026-06-05","2026-06-12","2026-06-19","2026-06-26","2026-07-03","2026-07-10","2026-07-17","2026-07-24","2026-07-31","2026-08-07","2026-08-14"]}]},"canonical_url":"https://sharemaestro.com/terminal/632c9919-b117-4a43-a872-fedcca237566/technical-pack/","technicals_url":"https://sharemaestro.com/terminal/632c9919-b117-4a43-a872-fedcca237566/technicals/","canonical_technicals_url":"https://sharemaestro.com/terminal/632c9919-b117-4a43-a872-fedcca237566/technicals/","distributions":{"pdf":"https://sharemaestro.com/terminal/632c9919-b117-4a43-a872-fedcca237566/technical-pack/download.pdf","json":"https://sharemaestro.com/terminal/632c9919-b117-4a43-a872-fedcca237566/technical-pack/data.json"},"source_fingerprint":"c1be3ef25b414ed6d4cff97e9e20bf1e3b1acd97ca03df425accd76eb4e33806","content_hash":"c0462cd810e32ec9443039cc9c313dcb690e05d63f0c6c62a8427a5157b131fd","citation":"Sharemaestro, PPHC Technical Research Pack, completed week 2026-08-14, https://sharemaestro.com/terminal/632c9919-b117-4a43-a872-fedcca237566/technical-pack/","data_notes":{"time_series":"Parallel time-series arrays align by index with their dates array.","events":"Sparse chart markers are published as compact dated event records rather than null-filled arrays.","missing_values":"A remaining null in an aligned series means that observation is genuinely unavailable; zero remains a valid value."},"boundary":"Completed market observations and published proprietary outputs only. Market Dynamics construction and private inputs are not disclosed. Historical research is not a forecast or instruction to trade."}