{"quoteSummary":{"result":[{"quoteUnadjustedPerformanceOverview":{"maxAge":1,"benchmark":{"symbol":"^GSPC","shortName":"S&P 500"},"performanceOverview":{"asOfDate":{"raw":1774569600,"fmt":"2026-03-27"},"fiveDaysReturn":{"raw":-0.05970663,"fmt":"-5.97%"},"oneMonthReturn":{"raw":-0.035745826,"fmt":"-3.57%"},"threeMonthReturn":{"raw":-0.4072019,"fmt":"-40.72%"},"sixMonthReturn":{"raw":-0.48749056,"fmt":"-48.75%"},"ytdReturnPct":{"raw":-0.38864577,"fmt":"-38.86%"},"oneYearTotalReturn":{"raw":-0.600044,"fmt":"-60.00%"},"twoYearTotalReturn":{"raw":-0.7036815,"fmt":"-70.37%"},"threeYearTotalReturn":{"raw":-0.62969756,"fmt":"-62.97%"},"fiveYearTotalReturn":{"raw":-0.45258185,"fmt":"-45.26%"},"tenYearTotalReturn":{"raw":1.7772682,"fmt":"177.73%"},"maxReturn":{"raw":6.784286,"fmt":"678.43%"}},"performanceOverviewBenchmark":{"asOfDate":{"raw":1774569600,"fmt":"2026-03-27"},"fiveDaysReturn":{"raw":-0.02115274,"fmt":"-2.12%"},"oneMonthReturn":{"raw":-0.074144304,"fmt":"-7.41%"},"threeMonthReturn":{"raw":-0.08096605,"fmt":"-8.10%"},"sixMonthReturn":{"raw":-0.041370034,"fmt":"-4.14%"},"ytdReturnPct":{"raw":-0.06962967,"fmt":"-6.96%"},"oneYearTotalReturn":{"raw":0.118655056,"fmt":"11.87%"},"twoYearTotalReturn":{"raw":0.21346326,"fmt":"21.35%"},"threeYearTotalReturn":{"raw":0.6012073,"fmt":"60.12%"},"fiveYearTotalReturn":{"raw":0.60241187,"fmt":"60.24%"},"tenYearTotalReturn":{"raw":2.1282113,"fmt":"212.82%"},"maxReturn":{"raw":359.63702,"fmt":"35,963.70%"}}},"defaultKeyStatistics":{"maxAge":1,"priceHint":{"raw":2,"fmt":"2","longFmt":"2"},"enterpriseValue":{"raw":1893265664,"fmt":"1.89B","longFmt":"1,893,265,664"},"forwardPE":{"raw":10.748404,"fmt":"10.75"},"profitMargins":{"raw":0.1242,"fmt":"12.42%"},"floatShares":{"raw":36895444,"fmt":"36.9M","longFmt":"36,895,444"},"sharesOutstanding":{"raw":37390873,"fmt":"37.39M","longFmt":"37,390,873"},"sharesShort":{"raw":2641219,"fmt":"2.64M","longFmt":"2,641,219"},"sharesShortPriorMonth":{"raw":2211659,"fmt":"2.21M","longFmt":"2,211,659"},"sharesShortPreviousMonthDate":{"raw":1770940800,"fmt":"2026-02-13"},"dateShortInterest":{"raw":1773360000,"fmt":"2026-03-13"},"sharesPercentSharesOut":{"raw":0.0706,"fmt":"7.06%"},"heldPercentInsiders":{"raw":0.0128,"fmt":"1.28%"},"heldPercentInstitutions":{"raw":1.07166,"fmt":"107.17%"},"shortRatio":{"raw":2.52,"fmt":"2.52"},"shortPercentOfFloat":{"raw":0.097600006,"fmt":"9.76%"},"beta":{"raw":0.629,"fmt":"0.63"},"impliedSharesOutstanding":{"raw":37709095,"fmt":"37.71M","longFmt":"37,709,095"},"morningStarOverallRating":{},"morningStarRiskRating":{},"category":null,"bookValue":{"raw":25.959,"fmt":"25.96"},"priceToBook":{"raw":2.0990794,"fmt":"2.10"},"annualReportExpenseRatio":{},"ytdReturn":{},"qtdReturn":{},"beta3Year":{},"totalAssets":{},"yield":{},"fundFamily":null,"fundInceptionDate":{},"legalType":null,"threeYearAverageReturn":{},"fiveYearAverageReturn":{},"priceToSalesTrailing12Months":{},"lastFiscalYearEnd":{"raw":1767139200,"fmt":"2025-12-31"},"nextFiscalYearEnd":{"raw":1798675200,"fmt":"2026-12-31"},"mostRecentQuarter":{"raw":1767139200,"fmt":"2025-12-31"},"earningsQuarterlyGrowth":{"raw":0.472,"fmt":"47.20%"},"revenueQuarterlyGrowth":{},"netIncomeToCommon":{"raw":93339000,"fmt":"93.34M","longFmt":"93,339,000"},"trailingEps":{"raw":2.46,"fmt":"2.46"},"forwardEps":{"raw":5.06959,"fmt":"5.07"},"pegRatio":{},"lastSplitFactor":"2:1","lastSplitDate":{"raw":1566518400,"fmt":"2019-08-23"},"enterpriseToRevenue":{"raw":2.519,"fmt":"2.52"},"enterpriseToEbitda":{"raw":10.723,"fmt":"10.72"},"52WeekChange":{"raw":-0.5717242,"fmt":"-57.17%"},"SandP52WeekChange":{"raw":0.12811458,"fmt":"12.81%"},"lastDividendValue":{},"lastDividendDate":{},"lastCapGain":{},"annualHoldingsTurnover":{},"latestFundingDate":{},"latestAmountRaised":{},"latestImpliedValuation":{},"latestShareClass":null,"leadInvestor":null,"fundingToDate":{},"totalFundingRounds":{}},"financialsTemplate":{"code":"N","maxAge":1},"earningsGaap":{"maxAge":86400,"earningsChart":{"quarterly":[{"date":"1Q2025","actual":{"raw":0.58,"fmt":"0.58"},"estimate":{"raw":0.3875,"fmt":"0.39"},"fiscalQuarter":"1Q2025","calendarQuarter":"1Q2025","difference":"0.19","surprisePct":"49.68","periodEndDate":{"raw":1743379200,"fmt":"2025-03-31"},"reportedDate":{"raw":1745525100,"fmt":"2025-04-24"}},{"date":"2Q2025","actual":{"raw":0.52,"fmt":"0.52"},"estimate":{"raw":0.416,"fmt":"0.42"},"fiscalQuarter":"2Q2025","calendarQuarter":"2Q2025","difference":"0.1","surprisePct":"25.0","periodEndDate":{"raw":1751241600,"fmt":"2025-06-30"},"reportedDate":{"raw":1753906563,"fmt":"2025-07-30"}},{"date":"3Q2025","actual":{"raw":0.67,"fmt":"0.67"},"estimate":{"raw":0.514,"fmt":"0.51"},"fiscalQuarter":"3Q2025","calendarQuarter":"3Q2025","difference":"0.16","surprisePct":"30.35","periodEndDate":{"raw":1759190400,"fmt":"2025-09-30"},"reportedDate":{"raw":1761856644,"fmt":"2025-10-30"}},{"date":"4Q2025","actual":{"raw":0.68,"fmt":"0.68"},"estimate":{"raw":0.55,"fmt":"0.55"},"fiscalQuarter":"4Q2025","calendarQuarter":"4Q2025","difference":"0.13","surprisePct":"23.64","periodEndDate":{"raw":1767139200,"fmt":"2025-12-31"},"reportedDate":{"raw":1770930530,"fmt":"2026-02-12"}}],"currentQuarterEstimate":{"raw":0.474,"fmt":"0.47"},"currentQuarterEstimateDate":"1Q","currentCalendarQuarter":"1Q2026","currentQuarterEstimateYear":2026,"currentFiscalQuarter":"1Q2026","currentPeriodEndDate":{"raw":1774915200,"fmt":"2026-03-31"},"earningsDate":[{"raw":1777579200,"fmt":"2026-04-30"}],"isEarningsDateEstimate":true},"financialsChart":{"yearly":[{"date":2022,"revenue":{"raw":450875000,"fmt":"450.88M","longFmt":"450,875,000"},"earnings":{"raw":55134000,"fmt":"55.13M","longFmt":"55,134,000"}},{"date":2023,"revenue":{"raw":536910000,"fmt":"536.91M","longFmt":"536,910,000"},"earnings":{"raw":65824000,"fmt":"65.82M","longFmt":"65,824,000"}},{"date":2024,"revenue":{"raw":637765000,"fmt":"637.76M","longFmt":"637,765,000"},"earnings":{"raw":77054000,"fmt":"77.05M","longFmt":"77,054,000"}},{"date":2025,"revenue":{"raw":751505000,"fmt":"751.5M","longFmt":"751,505,000"},"earnings":{"raw":93339000,"fmt":"93.34M","longFmt":"93,339,000"}}],"quarterly":[{"date":"1Q2025","fiscalQuarter":"1Q2025","revenue":{"raw":181549000,"fmt":"181.55M","longFmt":"181,549,000"},"earnings":{"raw":22196000,"fmt":"22.2M","longFmt":"22,196,000"}},{"date":"2Q2025","fiscalQuarter":"2Q2025","revenue":{"raw":187400000,"fmt":"187.4M","longFmt":"187,400,000"},"earnings":{"raw":19733000,"fmt":"19.73M","longFmt":"19,733,000"}},{"date":"3Q2025","fiscalQuarter":"3Q2025","revenue":{"raw":189904000,"fmt":"189.9M","longFmt":"189,904,000"},"earnings":{"raw":25569000,"fmt":"25.57M","longFmt":"25,569,000"}},{"date":"4Q2025","fiscalQuarter":"4Q2025","revenue":{"raw":192652000,"fmt":"192.65M","longFmt":"192,652,000"},"earnings":{"raw":25841000,"fmt":"25.84M","longFmt":"25,841,000"}}]},"financialCurrency":"USD","defaultMethodology":"nongaap"},"earningsCallTranscripts":{"transcripts":[{"title":"SPSC Q4 FY2025 earnings call transcript","fiscalYear":2025,"fiscalPeriod":"Q4","date":1770931800,"updated":1772060709,"transcriptId":2814593,"type":"IN_HOUSE","eventId":400175,"eventType":"Earnings call","url":"https://finance.yahoo.com/quote/SPSC/earnings/SPSC-Q4-2025-earnings_call-400175.html","s3Url":"s3://890742573995-market-data-service-prod-us-east-1/shared/transcripts/2026/2/12/2814593.json","maxAge":1},{"title":"SPSC Q3 FY2025 earnings call transcript","fiscalYear":2025,"fiscalPeriod":"Q3","date":1761856200,"updated":1763205940,"transcriptId":2223955,"type":"IN_HOUSE","eventId":368916,"eventType":"Earnings Call","url":"https://finance.yahoo.com/quote/SPSC/earnings/SPSC-Q3-2025-earnings_call-368916.html","s3Url":"s3://890742573995-market-data-service-prod-us-east-1/shared/transcripts/2025/10/30/2223955.json","maxAge":1},{"title":"SPSC Q2 FY2025 earnings call transcript","fiscalYear":2025,"fiscalPeriod":"Q2","date":1753907400,"updated":1763810570,"transcriptId":2294262,"type":"IN_HOUSE","eventId":338733,"eventType":"Earnings Call","url":"https://finance.yahoo.com/quote/SPSC/earnings/SPSC-Q2-2025-earnings_call-338733.html","s3Url":"s3://890742573995-market-data-service-prod-us-east-1/shared/transcripts/2025/7/30/2294262.json","maxAge":1},{"title":"SPSC Q1 FY2025 earnings call transcript","fiscalYear":2025,"fiscalPeriod":"Q1","date":1745526600,"updated":1766589675,"transcriptId":2536952,"type":"IN_HOUSE","eventId":314450,"eventType":"Earnings Call","url":"https://finance.yahoo.com/quote/SPSC/earnings/SPSC-Q1-2025-earnings_call-314450.html","s3Url":"s3://890742573995-market-data-service-prod-us-east-1/shared/transcripts/2025/4/24/2536952.json","maxAge":1},{"title":"SPSC Q4 FY2024 earnings call transcript","fiscalYear":2024,"fiscalPeriod":"Q4","date":1739223000,"updated":1765284339,"transcriptId":2493111,"type":"IN_HOUSE","eventId":243651,"eventType":"Earnings Call","url":"https://finance.yahoo.com/quote/SPSC/earnings/SPSC-Q4-2024-earnings_call-243651.html","s3Url":"s3://890742573995-market-data-service-prod-us-east-1/shared/transcripts/2025/2/10/2493111.json","maxAge":1},{"title":"SPSC Q3 FY2024 earnings call transcript","fiscalYear":2024,"fiscalPeriod":"Q3","date":1729801800,"updated":1769254645,"transcriptId":2621221,"type":"IN_HOUSE","eventId":216020,"eventType":"Earnings call","url":"https://finance.yahoo.com/quote/SPSC/earnings/SPSC-Q3-2024-earnings_call-216020.html","s3Url":"s3://890742573995-market-data-service-prod-us-east-1/shared/transcripts/2024/10/24/2621221.json","maxAge":1},{"title":"SPSC Q2 FY2024 earnings call transcript","fiscalYear":2024,"fiscalPeriod":"Q2","date":1721939400,"updated":1772065158,"transcriptId":2727271,"type":"IN_HOUSE","eventId":188485,"eventType":"Earnings call","url":"https://finance.yahoo.com/quote/SPSC/earnings/SPSC-Q2-2024-earnings_call-188485.html","s3Url":"s3://890742573995-market-data-service-prod-us-east-1/shared/transcripts/2024/7/25/2727271.json","maxAge":1},{"title":"SPSC Q1 FY2024 earnings call transcript","fiscalYear":2024,"fiscalPeriod":"Q1","date":1714077000,"updated":1772058055,"transcriptId":2757033,"type":"IN_HOUSE","eventId":166021,"eventType":"Earnings call","url":"https://finance.yahoo.com/quote/SPSC/earnings/SPSC-Q1-2024-earnings_call-166021.html","s3Url":"s3://890742573995-market-data-service-prod-us-east-1/shared/transcripts/2024/4/25/2757033.json","maxAge":1},{"title":"SPSC Q4 FY2023 earnings call transcript","fiscalYear":2023,"fiscalPeriod":"Q4","date":1707427800,"updated":1772060771,"transcriptId":2806296,"type":"IN_HOUSE","eventId":126545,"eventType":"Earnings call","url":"https://finance.yahoo.com/quote/SPSC/earnings/SPSC-Q4-2023-earnings_call-126545.html","s3Url":"s3://890742573995-market-data-service-prod-us-east-1/shared/transcripts/2024/2/8/2806296.json","maxAge":1},{"title":"SPSC Q3 FY2023 earnings call transcript","fiscalYear":2023,"fiscalPeriod":"Q3","date":1698352200,"updated":1772060221,"transcriptId":2863561,"type":"IN_HOUSE","eventId":85708,"eventType":"Earnings call","url":"https://finance.yahoo.com/quote/SPSC/earnings/SPSC-Q3-2023-earnings_call-85708.html","s3Url":"s3://890742573995-market-data-service-prod-us-east-1/shared/transcripts/2023/10/26/2863561.json","maxAge":1},{"title":"SPSC Q2 FY2023 earnings call transcript","fiscalYear":2023,"fiscalPeriod":"Q2","date":1690489800,"updated":1772061801,"transcriptId":2916450,"type":"IN_HOUSE","eventId":65306,"eventType":"Earnings call","url":"https://finance.yahoo.com/quote/SPSC/earnings/SPSC-Q2-2023-earnings_call-65306.html","s3Url":"s3://890742573995-market-data-service-prod-us-east-1/shared/transcripts/2023/7/27/2916450.json","maxAge":1},{"title":"SPSC Q1 FY2023 earnings call transcript","fiscalYear":2023,"fiscalPeriod":"Q1","date":1682541000,"updated":1772437828,"transcriptId":2972586,"type":"IN_HOUSE","eventId":53103,"eventType":"Earnings call","url":"https://finance.yahoo.com/quote/SPSC/earnings/SPSC-Q1-2023-earnings_call-53103.html","s3Url":"s3://890742573995-market-data-service-prod-us-east-1/shared/transcripts/2023/4/26/2972586.json","maxAge":1},{"title":"SPSC Q4 FY2022 earnings call transcript","fiscalYear":2022,"fiscalPeriod":"Q4","date":1675978200,"updated":1773487856,"transcriptId":3021080,"type":"IN_HOUSE","eventId":43182,"eventType":"Earnings call","url":"https://finance.yahoo.com/quote/SPSC/earnings/SPSC-Q4-2022-earnings_call-43182.html","s3Url":"s3://890742573995-market-data-service-prod-us-east-1/shared/transcripts/2023/2/9/3021080.json","maxAge":1},{"title":"SPSC Q3 FY2022 earnings call transcript","fiscalYear":2022,"fiscalPeriod":"Q3","date":1666902600,"updated":1773488098,"transcriptId":3072245,"type":"IN_HOUSE","eventId":38930,"eventType":"Earnings call","url":"https://finance.yahoo.com/quote/SPSC/earnings/SPSC-Q3-2022-earnings_call-38930.html","s3Url":"s3://890742573995-market-data-service-prod-us-east-1/shared/transcripts/2022/10/27/3072245.json","maxAge":1},{"title":"SPSC Q2 FY2022 earnings call transcript","fiscalYear":2022,"fiscalPeriod":"Q2","date":1658909280,"updated":1773899311,"transcriptId":3110414,"type":"IN_HOUSE","eventId":27277,"eventType":"Earnings call","url":"https://finance.yahoo.com/quote/SPSC/earnings/SPSC-Q2-2022-earnings_call-27277.html","s3Url":"s3://890742573995-market-data-service-prod-us-east-1/shared/transcripts/2022/7/27/3110414.json","maxAge":1},{"title":"SPSC Q1 FY2022 earnings call transcript","fiscalYear":2022,"fiscalPeriod":"Q1","date":1651164217,"updated":1774697746,"transcriptId":3144319,"type":"IN_HOUSE","eventId":20186,"eventType":"Earnings call","url":"https://finance.yahoo.com/quote/SPSC/earnings/SPSC-Q1-2022-earnings_call-20186.html","s3Url":"s3://890742573995-market-data-service-prod-us-east-1/shared/transcripts/2022/4/28/3144319.json","maxAge":1},{"title":"SPSC Q4 FY2021 earnings call transcript","fiscalYear":2021,"fiscalPeriod":"Q4","date":1644407210,"updated":1774697546,"transcriptId":3183966,"type":"RAW","eventId":14540,"eventType":"Earnings call","url":"https://finance.yahoo.com/quote/SPSC/earnings/SPSC-Q4-2021-earnings_call-14540.html","s3Url":"s3://890742573995-market-data-service-prod-us-east-1/shared/transcripts/2022/2/9/3183966.json","maxAge":1}],"maxAge":86400},"summaryDetail":{"maxAge":1,"priceHint":{"raw":2,"fmt":"2","longFmt":"2"},"previousClose":{"raw":55.100002,"fmt":"55.10"},"open":{"raw":54.48,"fmt":"54.48"},"dayLow":{"raw":53.05,"fmt":"53.05"},"dayHigh":{"raw":54.84,"fmt":"54.84"},"regularMarketPreviousClose":{"raw":55.100002,"fmt":"55.10"},"regularMarketOpen":{"raw":54.48,"fmt":"54.48"},"regularMarketDayLow":{"raw":53.05,"fmt":"53.05"},"regularMarketDayHigh":{"raw":54.84,"fmt":"54.84"},"dividendRate":{},"dividendYield":{},"exDividendDate":{},"payoutRatio":{"raw":0.0,"fmt":"0.00%"},"fiveYearAvgDividendYield":{},"beta":{"raw":0.629,"fmt":"0.63"},"trailingPE":{"raw":22.150408,"fmt":"22.15"},"forwardPE":{"raw":10.748404,"fmt":"10.75"},"volume":{"raw":674794,"fmt":"674.79k","longFmt":"674,794"},"regularMarketVolume":{"raw":674794,"fmt":"674.79k","longFmt":"674,794"},"averageVolume":{"raw":747571,"fmt":"747.57k","longFmt":"747,571"},"averageVolume10days":{"raw":668680,"fmt":"668.68k","longFmt":"668,680"},"averageDailyVolume10Day":{"raw":668680,"fmt":"668.68k","longFmt":"668,680"},"bid":{"raw":54.31,"fmt":"54.31"},"ask":{"raw":54.62,"fmt":"54.62"},"bidSize":{"raw":100,"fmt":"100","longFmt":"100"},"askSize":{"raw":100,"fmt":"100","longFmt":"100"},"marketCap":{"raw":2054768768,"fmt":"2.05B","longFmt":"2,054,768,768"},"nonDilutedMarketCap":{"raw":2167548907,"fmt":"2.17B","longFmt":"2,167,548,907"},"yield":{},"ytdReturn":{},"qtdReturn":{},"totalAssets":{},"expireDate":{},"strikePrice":{},"openInterest":{},"fiftyTwoWeekLow":{"raw":52.56,"fmt":"52.56"},"fiftyTwoWeekHigh":{"raw":153.16,"fmt":"153.16"},"allTimeHigh":{"raw":218.74,"fmt":"218.74"},"allTimeLow":{"raw":4.225,"fmt":"4.22"},"priceToSalesTrailing12Months":{"raw":2.734205,"fmt":"2.73"},"fiftyDayAverage":{"raw":72.8586,"fmt":"72.86"},"twoHundredDayAverage":{"raw":100.13265,"fmt":"100.13"},"trailingAnnualDividendRate":{"raw":0.0,"fmt":"0.00"},"trailingAnnualDividendYield":{"raw":0.0,"fmt":"0.00%"},"navPrice":{},"currency":"USD","fromCurrency":null,"toCurrency":null,"lastMarket":null,"coinMarketCapLink":null,"volume24Hr":{},"volumeAllCurrencies":{},"circulatingSupply":{},"algorithm":null,"maxSupply":{},"totalSupply":{},"startDate":{},"tradeable":false,"fullyDilutedValue":{},"volume24HrMarketCapPercent":{}},"calendarEvents":{"maxAge":1,"earnings":{"earningsDate":[{"raw":1777579200,"fmt":"2026-04-30"}],"earningsCallDate":[{"raw":1770931800,"fmt":"2026-02-12"}],"isEarningsDateEstimate":true,"earningsAverage":{"raw":0.97764,"fmt":"0.98"},"earningsLow":{"raw":0.96,"fmt":"0.96"},"earningsHigh":{"raw":1.02,"fmt":"1.02"},"revenueAverage":{"raw":192710800,"fmt":"192.71M","longFmt":"192,710,800"},"revenueLow":{"raw":192500000,"fmt":"192.5M","longFmt":"192,500,000"},"revenueHigh":{"raw":193100000,"fmt":"193.1M","longFmt":"193,100,000"}},"exDividendDate":{},"dividendDate":{}},"upgradeDowngradeHistory":{"history":[{"epochGradeDate":1771351400,"firm":"DA Davidson","toGrade":"Neutral","fromGrade":"Neutral","action":"main","priceTargetAction":"Lowers","currentPriceTarget":65.0,"priorPriceTarget":80.0},{"epochGradeDate":1771007238,"firm":"Citigroup","toGrade":"Buy","fromGrade":"Buy","action":"main","priceTargetAction":"Lowers","currentPriceTarget":84.0,"priorPriceTarget":110.0},{"epochGradeDate":1771002160,"firm":"Stifel","toGrade":"Hold","fromGrade":"Hold","action":"main","priceTargetAction":"Lowers","currentPriceTarget":65.0,"priorPriceTarget":80.0},{"epochGradeDate":1762856988,"firm":"Morgan Stanley","toGrade":"Equal-Weight","fromGrade":"Overweight","action":"down","priceTargetAction":"Lowers","currentPriceTarget":100.0,"priorPriceTarget":140.0},{"epochGradeDate":1761941696,"firm":"Citigroup","toGrade":"Buy","fromGrade":"Buy","action":"main","priceTargetAction":"Lowers","currentPriceTarget":110.0,"priorPriceTarget":145.0},{"epochGradeDate":1761917976,"firm":"DA Davidson","toGrade":"Neutral","fromGrade":"Neutral","action":"main","priceTargetAction":"Lowers","currentPriceTarget":80.0,"priorPriceTarget":125.0},{"epochGradeDate":1761910570,"firm":"Cantor Fitzgerald","toGrade":"Neutral","fromGrade":"Overweight","action":"down","priceTargetAction":"Lowers","currentPriceTarget":80.0,"priorPriceTarget":135.0},{"epochGradeDate":1761905567,"firm":"Stifel","toGrade":"Hold","fromGrade":"Buy","action":"down","priceTargetAction":"Lowers","currentPriceTarget":80.0,"priorPriceTarget":150.0},{"epochGradeDate":1761903308,"firm":"Needham","toGrade":"Buy","fromGrade":"Buy","action":"main","priceTargetAction":"Lowers","currentPriceTarget":110.0,"priorPriceTarget":160.0},{"epochGradeDate":1760458673,"firm":"Morgan Stanley","toGrade":"Overweight","fromGrade":"Overweight","action":"main","priceTargetAction":"Lowers","currentPriceTarget":140.0,"priorPriceTarget":170.0},{"epochGradeDate":1758809037,"firm":"DA Davidson","toGrade":"Neutral","fromGrade":"Neutral","action":"main","priceTargetAction":"Maintains","currentPriceTarget":125.0,"priorPriceTarget":125.0},{"epochGradeDate":1758717655,"firm":"Cantor Fitzgerald","toGrade":"Overweight","fromGrade":"Overweight","action":"main","priceTargetAction":"Lowers","currentPriceTarget":135.0,"priorPriceTarget":170.0},{"epochGradeDate":1758710422,"firm":"Needham","toGrade":"Buy","fromGrade":"Buy","action":"reit","priceTargetAction":"Maintains","currentPriceTarget":160.0,"priorPriceTarget":160.0},{"epochGradeDate":1754001953,"firm":"Loop Capital","toGrade":"Hold","fromGrade":"Buy","action":"down","priceTargetAction":"Lowers","currentPriceTarget":120.0,"priorPriceTarget":175.0},{"epochGradeDate":1753978059,"firm":"Stifel","toGrade":"Buy","fromGrade":"Buy","action":"main","priceTargetAction":"Lowers","currentPriceTarget":165.0,"priorPriceTarget":175.0},{"epochGradeDate":1753976238,"firm":"Morgan Stanley","toGrade":"Overweight","fromGrade":"Overweight","action":"main","priceTargetAction":"Lowers","currentPriceTarget":170.0,"priorPriceTarget":180.0},{"epochGradeDate":1753961870,"firm":"Needham","toGrade":"Buy","fromGrade":"Buy","action":"main","priceTargetAction":"Lowers","currentPriceTarget":160.0,"priorPriceTarget":210.0},{"epochGradeDate":1752499386,"firm":"Morgan Stanley","toGrade":"Overweight","fromGrade":"","action":"init","priceTargetAction":"Announces","currentPriceTarget":180.0,"priorPriceTarget":0.0},{"epochGradeDate":1748955830,"firm":"Cantor Fitzgerald","toGrade":"Overweight","fromGrade":"","action":"init","priceTargetAction":"Announces","currentPriceTarget":170.0,"priorPriceTarget":0.0},{"epochGradeDate":1745594613,"firm":"Baird","toGrade":"Neutral","fromGrade":"Neutral","action":"main","priceTargetAction":"Raises","currentPriceTarget":159.0,"priorPriceTarget":154.0},{"epochGradeDate":1745580282,"firm":"Needham","toGrade":"Buy","fromGrade":"Buy","action":"reit","priceTargetAction":"Maintains","currentPriceTarget":210.0,"priorPriceTarget":210.0},{"epochGradeDate":1744657247,"firm":"DA Davidson","toGrade":"Buy","fromGrade":"Buy","action":"main","priceTargetAction":"Lowers","currentPriceTarget":175.0,"priorPriceTarget":245.0},{"epochGradeDate":1742986682,"firm":"Needham","toGrade":"Buy","fromGrade":"Buy","action":"reit","priceTargetAction":"Maintains","currentPriceTarget":210.0,"priorPriceTarget":210.0},{"epochGradeDate":1739288393,"firm":"Stifel","toGrade":"Buy","fromGrade":"Buy","action":"main","priceTargetAction":"Lowers","currentPriceTarget":200.0,"priorPriceTarget":225.0},{"epochGradeDate":1739280380,"firm":"Baird","toGrade":"Neutral","fromGrade":"Neutral","action":"main","priceTargetAction":"Lowers","currentPriceTarget":175.0,"priorPriceTarget":188.0},{"epochGradeDate":1739279639,"firm":"Piper Sandler","toGrade":"Neutral","fromGrade":"Neutral","action":"main","priceTargetAction":"Lowers","currentPriceTarget":175.0,"priorPriceTarget":198.0},{"epochGradeDate":1739278412,"firm":"Northland Capital Markets","toGrade":"Market Perform","fromGrade":"Market Perform","action":"reit","priceTargetAction":"Lowers","currentPriceTarget":181.0,"priorPriceTarget":209.0},{"epochGradeDate":1739276936,"firm":"Needham","toGrade":"Buy","fromGrade":"Buy","action":"main","priceTargetAction":"Lowers","currentPriceTarget":210.0,"priorPriceTarget":230.0},{"epochGradeDate":1737987683,"firm":"Citigroup","toGrade":"Buy","fromGrade":"Buy","action":"main","priceTargetAction":"Lowers","currentPriceTarget":233.0,"priorPriceTarget":237.0},{"epochGradeDate":1736942927,"firm":"Needham","toGrade":"Buy","fromGrade":"Buy","action":"reit","priceTargetAction":"Maintains","currentPriceTarget":230.0,"priorPriceTarget":230.0},{"epochGradeDate":1735914195,"firm":"Stifel","toGrade":"Buy","fromGrade":"Buy","action":"main","priceTargetAction":"Lowers","currentPriceTarget":225.0,"priorPriceTarget":250.0},{"epochGradeDate":1735906932,"firm":"Needham","toGrade":"Buy","fromGrade":"Buy","action":"reit","priceTargetAction":"Maintains","currentPriceTarget":230.0,"priorPriceTarget":230.0},{"epochGradeDate":1732545017,"firm":"Piper Sandler","toGrade":"Neutral","fromGrade":"","action":"init","priceTargetAction":"Announces","currentPriceTarget":198.0,"priorPriceTarget":0.0},{"epochGradeDate":1730114863,"firm":"Baird","toGrade":"Neutral","fromGrade":"Neutral","action":"main","priceTargetAction":"Raises","currentPriceTarget":188.0,"priorPriceTarget":186.0},{"epochGradeDate":1729870372,"firm":"Stifel","toGrade":"Buy","fromGrade":"Buy","action":"main","priceTargetAction":"Raises","currentPriceTarget":250.0,"priorPriceTarget":240.0},{"epochGradeDate":1729850987,"firm":"Needham","toGrade":"Buy","fromGrade":"Buy","action":"reit","priceTargetAction":"Maintains","currentPriceTarget":230.0,"priorPriceTarget":230.0},{"epochGradeDate":1722594680,"firm":"Needham","toGrade":"Buy","fromGrade":"Buy","action":"reit","priceTargetAction":"Maintains","currentPriceTarget":230.0,"priorPriceTarget":230.0},{"epochGradeDate":1722274588,"firm":"Northland Capital Markets","toGrade":"Market Perform","fromGrade":"Outperform","action":"down","priceTargetAction":"Raises","currentPriceTarget":209.0,"priorPriceTarget":205.0},{"epochGradeDate":1722010632,"firm":"Craig-Hallum","toGrade":"Buy","fromGrade":"Buy","action":"main","priceTargetAction":"Raises","currentPriceTarget":230.0,"priorPriceTarget":210.0},{"epochGradeDate":1722006661,"firm":"Stifel","toGrade":"Buy","fromGrade":"Buy","action":"main","priceTargetAction":"Raises","currentPriceTarget":225.0,"priorPriceTarget":200.0},{"epochGradeDate":1722005776,"firm":"DA Davidson","toGrade":"Buy","fromGrade":"Buy","action":"main","priceTargetAction":"Raises","currentPriceTarget":240.0,"priorPriceTarget":225.0},{"epochGradeDate":1721993516,"firm":"Baird","toGrade":"Neutral","fromGrade":"Neutral","action":"main","priceTargetAction":"Raises","currentPriceTarget":186.0,"priorPriceTarget":178.0},{"epochGradeDate":1721989130,"firm":"Needham","toGrade":"Buy","fromGrade":"Buy","action":"main","priceTargetAction":"Raises","currentPriceTarget":230.0,"priorPriceTarget":205.0},{"epochGradeDate":1715688222,"firm":"Redburn Atlantic","toGrade":"Buy","fromGrade":"","action":"init","priceTargetAction":"Announces","currentPriceTarget":220.0,"priorPriceTarget":0.0},{"epochGradeDate":1715376446,"firm":"Citigroup","toGrade":"Buy","fromGrade":"Buy","action":"main","priceTargetAction":"Raises","currentPriceTarget":222.0,"priorPriceTarget":213.0},{"epochGradeDate":1715334688,"firm":"Needham","toGrade":"Buy","fromGrade":"Buy","action":"reit","priceTargetAction":"Maintains","currentPriceTarget":205.0,"priorPriceTarget":205.0},{"epochGradeDate":1714133933,"firm":"Baird","toGrade":"Neutral","fromGrade":"Neutral","action":"main","priceTargetAction":"Raises","currentPriceTarget":178.0,"priorPriceTarget":172.0},{"epochGradeDate":1714129684,"firm":"Needham","toGrade":"Buy","fromGrade":"Buy","action":"reit","priceTargetAction":"Maintains","currentPriceTarget":205.0,"priorPriceTarget":205.0},{"epochGradeDate":1710334296,"firm":"Citigroup","toGrade":"Buy","fromGrade":"","action":"init","priceTargetAction":"Announces","currentPriceTarget":216.0,"priorPriceTarget":0.0},{"epochGradeDate":1707481765,"firm":"Needham","toGrade":"Buy","fromGrade":"Buy","action":"reit","priceTargetAction":"Maintains","currentPriceTarget":205.0,"priorPriceTarget":0.0},{"epochGradeDate":1705570716,"firm":"Needham","toGrade":"Buy","fromGrade":"Buy","action":"reit","priceTargetAction":"Maintains","currentPriceTarget":205.0,"priorPriceTarget":0.0},{"epochGradeDate":1699953163,"firm":"DA Davidson","toGrade":"Buy","fromGrade":"","action":"init","priceTargetAction":"Announces","currentPriceTarget":200.0,"priorPriceTarget":0.0},{"epochGradeDate":1698415521,"firm":"Northland Capital Markets","toGrade":"Outperform","fromGrade":"Market Perform","action":"up","priceTargetAction":"Raises","currentPriceTarget":177.0,"priorPriceTarget":175.0},{"epochGradeDate":1695120945,"firm":"Needham","toGrade":"Buy","fromGrade":"Buy","action":"reit","priceTargetAction":"Maintains","currentPriceTarget":205.0,"priorPriceTarget":0.0},{"epochGradeDate":1690565030,"firm":"Craig-Hallum","toGrade":"Buy","fromGrade":"Buy","action":"main","priceTargetAction":"Raises","currentPriceTarget":200.0,"priorPriceTarget":165.0},{"epochGradeDate":1690562105,"firm":"Northland Capital Markets","toGrade":"Market Perform","fromGrade":"Market Perform","action":"main","priceTargetAction":"Raises","currentPriceTarget":175.0,"priorPriceTarget":151.0},{"epochGradeDate":1690539058,"firm":"Needham","toGrade":"Buy","fromGrade":"Buy","action":"reit","priceTargetAction":"Maintains","currentPriceTarget":205.0,"priorPriceTarget":0.0},{"epochGradeDate":1690447325,"firm":"Needham","toGrade":"Buy","fromGrade":"Buy","action":"reit","priceTargetAction":"Maintains","currentPriceTarget":205.0,"priorPriceTarget":0.0},{"epochGradeDate":1688736741,"firm":"Stifel","toGrade":"Buy","fromGrade":"Buy","action":"main","priceTargetAction":"Raises","currentPriceTarget":200.0,"priorPriceTarget":165.0},{"epochGradeDate":1688723364,"firm":"Needham","toGrade":"Buy","fromGrade":"Buy","action":"reit","priceTargetAction":"Maintains","currentPriceTarget":205.0,"priorPriceTarget":0.0},{"epochGradeDate":1686825936,"firm":"Needham","toGrade":"Buy","fromGrade":"Buy","action":"main","priceTargetAction":"Raises","currentPriceTarget":205.0,"priorPriceTarget":160.0},{"epochGradeDate":1682608077,"firm":"Northland Capital Markets","toGrade":"Market Perform","fromGrade":"","action":"main","priceTargetAction":"Raises","currentPriceTarget":154.0,"priorPriceTarget":151.0},{"epochGradeDate":1682606176,"firm":"Craig-Hallum","toGrade":"Buy","fromGrade":"","action":"main","priceTargetAction":"Raises","currentPriceTarget":165.0,"priorPriceTarget":160.0},{"epochGradeDate":1682596960,"firm":"JMP Securities","toGrade":"Market Outperform","fromGrade":"","action":"reit","priceTargetAction":"Maintains","currentPriceTarget":165.0,"priorPriceTarget":0.0},{"epochGradeDate":1682593553,"firm":"Needham","toGrade":"Buy","fromGrade":"","action":"reit","priceTargetAction":"Maintains","currentPriceTarget":160.0,"priorPriceTarget":0.0},{"epochGradeDate":1678100161,"firm":"Needham","toGrade":"Buy","fromGrade":"","action":"reit","priceTargetAction":"Maintains","currentPriceTarget":160.0,"priorPriceTarget":0.0},{"epochGradeDate":1677840970,"firm":"Needham","toGrade":"Buy","fromGrade":"","action":"reit","priceTargetAction":"Maintains","currentPriceTarget":160.0,"priorPriceTarget":0.0},{"epochGradeDate":1676035120,"firm":"Northland Capital Markets","toGrade":"Market Perform","fromGrade":"","action":"main","priceTargetAction":"Raises","currentPriceTarget":151.0,"priorPriceTarget":148.0},{"epochGradeDate":1676028406,"firm":"JMP Securities","toGrade":"Market Outperform","fromGrade":"","action":"main","priceTargetAction":"Raises","currentPriceTarget":165.0,"priorPriceTarget":150.0},{"epochGradeDate":1676026627,"firm":"Needham","toGrade":"Buy","fromGrade":"","action":"main","priceTargetAction":"Raises","currentPriceTarget":160.0,"priorPriceTarget":150.0},{"epochGradeDate":1671011170,"firm":"Baird","toGrade":"Neutral","fromGrade":"Outperform","action":"down","priceTargetAction":"Announces","currentPriceTarget":151.0,"priorPriceTarget":0.0},{"epochGradeDate":1658395249,"firm":"Needham","toGrade":"Buy","fromGrade":"","action":"main","priceTargetAction":"Lowers","currentPriceTarget":150.0,"priorPriceTarget":200.0},{"epochGradeDate":1644495251,"firm":"JMP Securities","toGrade":"Market Outperform","fromGrade":"","action":"main","priceTargetAction":"Lowers","currentPriceTarget":160.0,"priorPriceTarget":180.0},{"epochGradeDate":1635513170,"firm":"Northland Capital Markets","toGrade":"Market Perform","fromGrade":"Outperform","action":"down","priceTargetAction":"Raises","currentPriceTarget":170.0,"priorPriceTarget":140.0},{"epochGradeDate":1635505812,"firm":"JMP Securities","toGrade":"Market Outperform","fromGrade":"","action":"main","priceTargetAction":"Raises","currentPriceTarget":180.0,"priorPriceTarget":130.0},{"epochGradeDate":1635503193,"firm":"Needham","toGrade":"Buy","fromGrade":"","action":"main","priceTargetAction":"Raises","currentPriceTarget":200.0,"priorPriceTarget":130.0},{"epochGradeDate":1632223976,"firm":"Baird","toGrade":"Outperform","fromGrade":"","action":"main","priceTargetAction":"Raises","currentPriceTarget":167.0,"priorPriceTarget":130.0},{"epochGradeDate":1627646885,"firm":"JMP Securities","toGrade":"Market Outperform","fromGrade":"","action":"main","priceTargetAction":"Raises","currentPriceTarget":130.0,"priorPriceTarget":120.0},{"epochGradeDate":1627640527,"firm":"Baird","toGrade":"Outperform","fromGrade":"Neutral","action":"up","priceTargetAction":"Raises","currentPriceTarget":130.0,"priorPriceTarget":124.0},{"epochGradeDate":1619789015,"firm":"Northland Capital Markets","toGrade":"Outperform","fromGrade":"Market Perform","action":"up","priceTargetAction":"Raises","currentPriceTarget":123.0,"priorPriceTarget":113.0},{"epochGradeDate":1613127107,"firm":"Needham","toGrade":"Buy","fromGrade":"","action":"main","priceTargetAction":"Raises","currentPriceTarget":130.0,"priorPriceTarget":115.0},{"epochGradeDate":1603968603,"firm":"Needham","toGrade":"Buy","fromGrade":"","action":"main","priceTargetAction":"Raises","currentPriceTarget":95.0,"priorPriceTarget":80.0},{"epochGradeDate":1591351011,"firm":"Needham","toGrade":"Buy","fromGrade":"","action":"main","priceTargetAction":"Raises","currentPriceTarget":80.0,"priorPriceTarget":70.0},{"epochGradeDate":1581692157,"firm":"Craig-Hallum","toGrade":"Buy","fromGrade":"","action":"main","priceTargetAction":"Raises","currentPriceTarget":71.0,"priorPriceTarget":60.0},{"epochGradeDate":1581680178,"firm":"Needham","toGrade":"Buy","fromGrade":"","action":"main","priceTargetAction":"Raises","currentPriceTarget":70.0,"priorPriceTarget":60.0},{"epochGradeDate":1579261740,"firm":"Oppenheimer","toGrade":"Perform","fromGrade":"Outperform","action":"down","priceTargetAction":"","currentPriceTarget":0.0,"priorPriceTarget":0.0},{"epochGradeDate":1572004247,"firm":"First Analysis","toGrade":"Strong Buy","fromGrade":"Outperform","action":"up","priceTargetAction":"","currentPriceTarget":0.0,"priorPriceTarget":0.0},{"epochGradeDate":1567598136,"firm":"Oppenheimer","toGrade":"Outperform","fromGrade":"","action":"main","priceTargetAction":"Lowers","currentPriceTarget":60.0,"priorPriceTarget":120.0},{"epochGradeDate":1566992844,"firm":"Canaccord Genuity","toGrade":"Buy","fromGrade":"","action":"main","priceTargetAction":"Lowers","currentPriceTarget":60.0,"priorPriceTarget":120.0},{"epochGradeDate":1564141839,"firm":"Canaccord Genuity","toGrade":"Buy","fromGrade":"","action":"main","priceTargetAction":"Raises","currentPriceTarget":120.0,"priorPriceTarget":115.0},{"epochGradeDate":1556292043,"firm":"JMP Securities","toGrade":"Market Outperform","fromGrade":"Market Outperform","action":"main","priceTargetAction":"Raises","currentPriceTarget":120.0,"priorPriceTarget":98.0},{"epochGradeDate":1556280427,"firm":"First Analysis","toGrade":"Outperform","fromGrade":"Neutral","action":"up","priceTargetAction":"","currentPriceTarget":0.0,"priorPriceTarget":0.0},{"epochGradeDate":1552912124,"firm":"Oppenheimer","toGrade":"Outperform","fromGrade":"Outperform","action":"main","priceTargetAction":"Raises","currentPriceTarget":120.0,"priorPriceTarget":112.0},{"epochGradeDate":1550069508,"firm":"Canaccord Genuity","toGrade":"Buy","fromGrade":"Buy","action":"main","priceTargetAction":"Raises","currentPriceTarget":110.0,"priorPriceTarget":95.0},{"epochGradeDate":1540568626,"firm":"Oppenheimer","toGrade":"Outperform","fromGrade":"Outperform","action":"main","priceTargetAction":"Raises","currentPriceTarget":95.0,"priorPriceTarget":85.0},{"epochGradeDate":1540561778,"firm":"Canaccord Genuity","toGrade":"Buy","fromGrade":"Buy","action":"main","priceTargetAction":"Raises","currentPriceTarget":95.0,"priorPriceTarget":85.0},{"epochGradeDate":1532703912,"firm":"Canaccord Genuity","toGrade":"Buy","fromGrade":"Buy","action":"main","priceTargetAction":"Raises","currentPriceTarget":85.0,"priorPriceTarget":75.0},{"epochGradeDate":1532697369,"firm":"Stifel","toGrade":"Buy","fromGrade":"Buy","action":"main","priceTargetAction":"Raises","currentPriceTarget":90.0,"priorPriceTarget":82.0},{"epochGradeDate":1528375746,"firm":"Oppenheimer","toGrade":"Outperform","fromGrade":"Outperform","action":"main","priceTargetAction":"Raises","currentPriceTarget":83.0,"priorPriceTarget":72.0},{"epochGradeDate":1524831745,"firm":"JMP Securities","toGrade":"Market Outperform","fromGrade":"Market Outperform","action":"main","priceTargetAction":"Raises","currentPriceTarget":75.0,"priorPriceTarget":68.0},{"epochGradeDate":1524828308,"firm":"Canaccord Genuity","toGrade":"Buy","fromGrade":"Hold","action":"up","priceTargetAction":"","currentPriceTarget":0.0,"priorPriceTarget":57.0},{"epochGradeDate":1524482967,"firm":"Benchmark","toGrade":"Hold","fromGrade":"Sell","action":"up","priceTargetAction":"","currentPriceTarget":0.0,"priorPriceTarget":0.0},{"epochGradeDate":1518019320,"firm":"Canaccord Genuity","toGrade":"Hold","fromGrade":"Hold","action":"main","priceTargetAction":"Lowers","currentPriceTarget":57.0,"priorPriceTarget":62.0},{"epochGradeDate":1509362484,"firm":"Benchmark","toGrade":"Sell","fromGrade":"Hold","action":"down","priceTargetAction":"","currentPriceTarget":0.0,"priorPriceTarget":0.0},{"epochGradeDate":1509128304,"firm":"Canaccord Genuity","toGrade":"Hold","fromGrade":"","action":"main","priceTargetAction":"Lowers","currentPriceTarget":62.0,"priorPriceTarget":65.0},{"epochGradeDate":1509125113,"firm":"Oppenheimer","toGrade":"Outperform","fromGrade":"","action":"main","priceTargetAction":"Lowers","currentPriceTarget":62.0,"priorPriceTarget":74.0},{"epochGradeDate":1509107044,"firm":"Stifel","toGrade":"Buy","fromGrade":"","action":"main","priceTargetAction":"Lowers","currentPriceTarget":68.0,"priorPriceTarget":75.0},{"epochGradeDate":1500631764,"firm":"Oppenheimer","toGrade":"Outperform","fromGrade":"","action":"init","priceTargetAction":"Announces","currentPriceTarget":74.0,"priorPriceTarget":0.0},{"epochGradeDate":1486553801,"firm":"Canaccord Genuity","toGrade":"Hold","fromGrade":"Buy","action":"down","priceTargetAction":"","currentPriceTarget":0.0,"priorPriceTarget":0.0},{"epochGradeDate":1486553565,"firm":"William Blair","toGrade":"Market Perform","fromGrade":"Outperform","action":"down","priceTargetAction":"","currentPriceTarget":0.0,"priorPriceTarget":0.0},{"epochGradeDate":1486552978,"firm":"Pacific Crest","toGrade":"Sector Weight","fromGrade":"","action":"down","priceTargetAction":"","currentPriceTarget":0.0,"priorPriceTarget":0.0},{"epochGradeDate":1474962268,"firm":"First Analysis","toGrade":"Overweight","fromGrade":"","action":"init","priceTargetAction":"","currentPriceTarget":0.0,"priorPriceTarget":0.0},{"epochGradeDate":1437750000,"firm":"Stifel","toGrade":"Buy","fromGrade":"","action":"main","priceTargetAction":"Raises","currentPriceTarget":85.0,"priorPriceTarget":80.0},{"epochGradeDate":1398482392,"firm":"Canaccord Genuity","toGrade":"Buy","fromGrade":"","action":"main","priceTargetAction":"Lowers","currentPriceTarget":65.0,"priorPriceTarget":80.0},{"epochGradeDate":1372422540,"firm":"Stifel","toGrade":"Buy","fromGrade":"","action":"main","priceTargetAction":"Raises","currentPriceTarget":60.0,"priorPriceTarget":46.0},{"epochGradeDate":1364906894,"firm":"Maxim Group","toGrade":"Buy","fromGrade":"","action":"init","priceTargetAction":"","currentPriceTarget":0.0,"priorPriceTarget":0.0},{"epochGradeDate":1350899940,"firm":"Canaccord Genuity","toGrade":"Buy","fromGrade":"Hold","action":"up","priceTargetAction":"Raises","currentPriceTarget":45.0,"priorPriceTarget":25.0},{"epochGradeDate":1340278740,"firm":"Northland Capital Markets","toGrade":"Outperform","fromGrade":"","action":"init","priceTargetAction":"","currentPriceTarget":0.0,"priorPriceTarget":0.0},{"epochGradeDate":1328796540,"firm":"Feltl & Co.","toGrade":"Strong Buy","fromGrade":"","action":"main","priceTargetAction":"Raises","currentPriceTarget":34.0,"priorPriceTarget":26.0},{"epochGradeDate":1328792520,"firm":"Stifel","toGrade":"Buy","fromGrade":"","action":"main","priceTargetAction":"Raises","currentPriceTarget":32.0,"priorPriceTarget":25.0}],"maxAge":86400},"pageViews":{"shortTermTrend":"UP","midTermTrend":"UP","longTermTrend":"UP","maxAge":1},"price":{"maxAge":1,"preMarketChange":{},"preMarketPrice":{},"preMarketSource":"FREE_REALTIME","postMarketChangePercent":{"raw":0.0,"fmt":"0.00%"},"postMarketChange":{"raw":0.0,"fmt":"0.00"},"postMarketTime":1774643652,"postMarketPrice":{"raw":54.49,"fmt":"54.49"},"postMarketSource":"FREE_REALTIME","regularMarketChangePercent":{"raw":-0.011070791,"fmt":"-1.11%"},"regularMarketChange":{"raw":-0.6100006,"fmt":"-0.61"},"regularMarketTime":1774641601,"priceHint":{"raw":2,"fmt":"2","longFmt":"2"},"regularMarketPrice":{"raw":54.49,"fmt":"54.49"},"regularMarketDayHigh":{"raw":54.84,"fmt":"54.84"},"regularMarketDayLow":{"raw":53.05,"fmt":"53.05"},"regularMarketVolume":{"raw":674794,"fmt":"674.79k","longFmt":"674,794.00"},"averageDailyVolume10Day":{"raw":668680,"fmt":"668.68k","longFmt":"668,680"},"averageDailyVolume3Month":{"raw":747571,"fmt":"747.57k","longFmt":"747,571"},"regularMarketPreviousClose":{"raw":55.100002,"fmt":"55.10"},"regularMarketSource":"FREE_REALTIME","regularMarketOpen":{"raw":54.48,"fmt":"54.48"},"strikePrice":{},"openInterest":{},"exchange":"NMS","exchangeName":"NasdaqGS","exchangeDataDelayedBy":0,"marketState":"CLOSED","quoteType":"EQUITY","symbol":"SPSC","underlyingSymbol":null,"shortName":"SPS Commerce, Inc.","longName":"SPS Commerce, Inc.","currency":"USD","quoteSourceName":"Nasdaq Real Time Price","currencySymbol":"$","fromCurrency":null,"toCurrency":null,"lastMarket":null,"volume24Hr":{},"volumeAllCurrencies":{},"circulatingSupply":{},"marketCap":{"raw":2054768768,"fmt":"2.05B","longFmt":"2,054,768,768.00"}},"earningsNonGaap":{"maxAge":86400,"earningsChart":{"quarterly":[{"date":"1Q2025","actual":{"raw":1.0,"fmt":"1.00"},"estimate":{"raw":0.84698,"fmt":"0.85"},"fiscalQuarter":"1Q2025","calendarQuarter":"1Q2025","difference":"0.15","surprisePct":"18.07","periodEndDate":{"raw":1743379200,"fmt":"2025-03-31"},"reportedDate":{"raw":1745525100,"fmt":"2025-04-24"}},{"date":"2Q2025","actual":{"raw":1.0,"fmt":"1.00"},"estimate":{"raw":0.90621,"fmt":"0.91"},"fiscalQuarter":"2Q2025","calendarQuarter":"2Q2025","difference":"0.09","surprisePct":"10.35","periodEndDate":{"raw":1751241600,"fmt":"2025-06-30"},"reportedDate":{"raw":1753906563,"fmt":"2025-07-30"}},{"date":"3Q2025","actual":{"raw":1.13,"fmt":"1.13"},"estimate":{"raw":0.99752,"fmt":"1.00"},"fiscalQuarter":"3Q2025","calendarQuarter":"3Q2025","difference":"0.13","surprisePct":"13.28","periodEndDate":{"raw":1759190400,"fmt":"2025-09-30"},"reportedDate":{"raw":1761856644,"fmt":"2025-10-30"}},{"date":"4Q2025","actual":{"raw":1.14,"fmt":"1.14"},"estimate":{"raw":1.00833,"fmt":"1.01"},"fiscalQuarter":"4Q2025","calendarQuarter":"4Q2025","difference":"0.13","surprisePct":"13.06","periodEndDate":{"raw":1767139200,"fmt":"2025-12-31"},"reportedDate":{"raw":1770930530,"fmt":"2026-02-12"}}],"currentQuarterEstimate":{"raw":0.97764,"fmt":"0.98"},"currentQuarterEstimateDate":"1Q","currentCalendarQuarter":"1Q2026","currentQuarterEstimateYear":2026,"currentFiscalQuarter":"1Q2026","currentPeriodEndDate":{"raw":1774915200,"fmt":"2026-03-31"},"earningsDate":[{"raw":1777579200,"fmt":"2026-04-30"}],"isEarningsDateEstimate":true},"financialsChart":{"yearly":[{"date":2022,"revenue":{"raw":450875000,"fmt":"450.88M","longFmt":"450,875,000"},"earnings":{"raw":86688000,"fmt":"86.69M","longFmt":"86,688,000"}},{"date":2023,"revenue":{"raw":536910000,"fmt":"536.91M","longFmt":"536,910,000"},"earnings":{"raw":106937000,"fmt":"106.94M","longFmt":"106,937,000"}},{"date":2024,"revenue":{"raw":637765000,"fmt":"637.76M","longFmt":"637,765,000"},"earnings":{"raw":131565000,"fmt":"131.56M","longFmt":"131,565,000"}},{"date":2025,"revenue":{"raw":751505000,"fmt":"751.5M","longFmt":"751,505,000"},"earnings":{"raw":162152000,"fmt":"162.15M","longFmt":"162,152,000"}}],"quarterly":[{"date":"1Q2025","fiscalQuarter":"1Q2025","revenue":{"raw":181549000,"fmt":"181.55M","longFmt":"181,549,000"},"earnings":{"raw":38013000,"fmt":"38.01M","longFmt":"38,013,000"}},{"date":"2Q2025","fiscalQuarter":"2Q2025","revenue":{"raw":187400000,"fmt":"187.4M","longFmt":"187,400,000"},"earnings":{"raw":37954000,"fmt":"37.95M","longFmt":"37,954,000"}},{"date":"3Q2025","fiscalQuarter":"3Q2025","revenue":{"raw":189904000,"fmt":"189.9M","longFmt":"189,904,000"},"earnings":{"raw":42955000,"fmt":"42.95M","longFmt":"42,955,000"}},{"date":"4Q2025","fiscalQuarter":"4Q2025","revenue":{"raw":192652000,"fmt":"192.65M","longFmt":"192,652,000"},"earnings":{"raw":43230000,"fmt":"43.23M","longFmt":"43,230,000"}}]},"financialCurrency":"USD","defaultMethodology":"nongaap"},"corporateActions":{"corporateActions":[],"maxAge":1},"financialData":{"maxAge":86400,"currentPrice":{"raw":54.49,"fmt":"54.49"},"targetHighPrice":{"raw":110.0,"fmt":"110.00"},"targetLowPrice":{"raw":65.0,"fmt":"65.00"},"targetMeanPrice":{"raw":82.09091,"fmt":"82.09"},"targetMedianPrice":{"raw":80.0,"fmt":"80.00"},"recommendationMean":{"raw":2.41667,"fmt":"2.42"},"recommendationKey":"buy","numberOfAnalystOpinions":{"raw":11,"fmt":"11","longFmt":"11"},"totalCash":{"raw":151355008,"fmt":"151.36M","longFmt":"151,355,008"},"totalCashPerShare":{"raw":4.048,"fmt":"4.05"},"ebitda":{"raw":176560992,"fmt":"176.56M","longFmt":"176,560,992"},"totalDebt":{"raw":7192000,"fmt":"7.19M","longFmt":"7,192,000"},"quickRatio":{"raw":1.422,"fmt":"1.42"},"currentRatio":{"raw":2.172,"fmt":"2.17"},"totalRevenue":{"raw":751505024,"fmt":"751.51M","longFmt":"751,505,024"},"debtToEquity":{"raw":0.738,"fmt":"0.74%"},"revenuePerShare":{"raw":19.839,"fmt":"19.84"},"returnOnAssets":{"raw":0.06718,"fmt":"6.72%"},"returnOnEquity":{"raw":0.10208999,"fmt":"10.21%"},"grossProfits":{"raw":519876000,"fmt":"519.88M","longFmt":"519,876,000"},"freeCashflow":{"raw":124239376,"fmt":"124.24M","longFmt":"124,239,376"},"operatingCashflow":{"raw":178790000,"fmt":"178.79M","longFmt":"178,790,000"},"earningsGrowth":{"raw":0.469,"fmt":"46.90%"},"revenueGrowth":{"raw":0.127,"fmt":"12.70%"},"grossMargins":{"raw":0.69178003,"fmt":"69.18%"},"ebitdaMargins":{"raw":0.23493999,"fmt":"23.49%"},"operatingMargins":{"raw":0.18004,"fmt":"18.00%"},"profitMargins":{"raw":0.1242,"fmt":"12.42%"},"financialCurrency":"USD"}}],"error":null}}