{"data":{"infringementRiskScore":10,"claims":[{"claim_number":1,"preamble":"A method of notifying a user, comprising:","elements":[{"id":"1A","limitation":"receiving, at a server, a location of a mobile device;","product_feature":"The location check runs on the device. Per the description, no location is sent to our servers. The app does download 'nearby' store polygons daily, and how 'nearby' is computed has not been verified.","literal":"absent","equivalents_risk":"low","reasoning":"Under the plain meaning (Phillips), this step requires a server to receive the device's location. The product processes location only on the device, so the limitation is not literally met if the description is accurate. Equivalents risk is low: on-device processing works in a substantially different way (no network transfer, no server-side location handling) and produces a different result (location never leaves the device). Reading 'at a server' to cover the handset itself would vitiate the express 'server' limitation (Warner-Jenkinson). Caution: if the daily polygon request sends GPS coordinates, a coarse location, or a geohash or tile ID derived from GPS, the server arguably 'receives a location of a mobile device.' Literal presence would then become arguable even though the server does not perform the geofence test. An IP-based region lookup is a closer question. This must be confirmed in the code and network traffic.","verbatim":true},{"id":"1B","limitation":"determining that the location is within a geofence associated with a merchant;","product_feature":"On-device point-in-polygon test of the phone's location against downloaded store polygons.","literal":"present","equivalents_risk":"high","reasoning":"A store-area polygon is a geofence associated with a merchant under its ordinary meaning. The claim does not expressly say which entity performs the determining, so the product practices this step on its own terms. One could argue the claim structure implies the server determines, which would help the product, but that construction is uncertain. This limitation should not be relied on for non-infringement.","verbatim":true},{"id":"1C","limitation":"transmitting a push notification comprising a coupon to the mobile device","product_feature":"A locally rendered in-app banner showing a discount, displayed only while the user has the app open. No message is transmitted to the device at trigger time.","literal":"absent","equivalents_risk":"low","reasoning":"To a skilled person, 'push notification' ordinarily means a message pushed to the device, typically server-originated via APNs/FCM, that can alert the user outside the foreground app. 'Transmitting… to the mobile device' requires a transmission directed to the device. An in-app banner drawn from data already on the device involves neither. Function differs: it informs a user already engaged, rather than drawing in a user who is not using the app. Way differs: local UI rendering instead of a network push. Result differs: no alert when the app is closed. Calling an in-app banner a 'push notification' would read 'push' and 'transmitting' out of the claim. Moderate caution: the daily polygon/discount download is a transmission, but it is not a push notification and is not responsive to the determining.","verbatim":true},{"id":"1D","limitation":"in response to the determining.","product_feature":"The banner appears when the user opens the app inside a store area. Discount data, if bundled, arrives in the daily download regardless of any geofence determination.","literal":"absent","equivalents_risk":"medium","reasoning":"Because no transmission occurs at all (see 1C), no transmission occurs 'in response to the determining.' Display of the banner does depend on the determining, and display also depends on app-open. A patentee could argue the local display is an equivalent responsive action. That argument requires substituting display for both 'transmitting' and 'push notification,' which strains vitiation limits. Risk is rated medium only because a causal link between determination and coupon delivery to the user exists.","verbatim":true}],"risk":"not_infringed"}],"designArounds":[{"title":"Strict on-device location processing with location-blind content sync","eliminated_elements":["1A"],"modification":"Guarantee that no precise or derived device location is ever sent to any server operated by or for the company, including when fetching store polygons.","implementation":"1) Replace the 'nearby' polygon fetch with downloads keyed by a user-selected market or a large static region pack (e.g., state or metro), or with a full national pack compressed as protobuf or flatbuffers. A national pack of tens of thousands of polygons simplified with Douglas-Peucker is typically a few MB. Alternatively, serve via CDN with delta updates. 2) Remove lat/long, geohash, tile IDs and S2 cells from all API calls, analytics SDKs and crash logs. Audit third-party SDKs (ads, analytics) that may upload location on our behalf. 3) Use the OS geofencing or point-in-polygon on device (e.g., R-tree index), and log only aggregated, non-location redemption events. 4) Document the architecture in a design memo and verify with network-traffic tests in CI.","utility_preserved":"Location-triggered discounts work exactly as today. Privacy marketing ('your location never leaves your phone') is strengthened, and server costs fall.","residual_risk":"low","doe_analysis":"The claim expressly requires receipt 'at a server.' Treating on-device processing as equivalent would vitiate that limitation entirely. Way: local computation with no network location transfer. Result: no server-side knowledge of location. Both are substantially different. If the specification discloses on-device determination as an alternative but claims only the server version, the dedication-disclosure rule (Johnson & Johnston) bars recapture under equivalents. The prosecution history should be checked for any narrowing amendment adding 'at a server,' which would also raise estoppel (Festo).","unknown_element_ids":[],"breaks_claims":[1],"breaks_all_independent_claims":true},{"title":"In-app-only, foreground display; no push or OS notifications","eliminated_elements":["1C","1D"],"modification":"Deliver discounts solely as UI elements rendered inside the foreground app session. Never use APNs/FCM pushes, and never fire OS-level local notifications on geofence entry.","implementation":"1) Run the geofence check only when the app enters the foreground (app-open or resume lifecycle event) or on an in-app refresh. Do not register background geofence-entry callbacks that wake the app. 2) Render the discount as an in-app banner or card from locally cached data. 3) Remove any code path that sends a push or schedules a UNNotificationRequest or NotificationManager alert for location-based offers. Optionally add a lint rule or code-review checklist item. 4) Keep any server push channels limited to non-location, non-coupon messages such as account or security notices.","utility_preserved":"Users who open the app in-store still see the discount at the point of purchase, which is where conversion occurs. Engagement can be encouraged through generic, non-geofenced reminders.","residual_risk":"low","doe_analysis":"A push notification works by transmitting a message to the device that alerts the user outside the app. An in-app banner rendered from local data involves no transmission and alerts only an already-engaged user. Function (re-engagement versus in-session display), way (network push versus local rendering) and result all differ. Equating the two would vitiate both 'transmitting' and 'push.' Local OS notifications are avoided because they are the closest arguable equivalent.","unknown_element_ids":[],"breaks_claims":[1],"breaks_all_independent_claims":true},{"title":"Pre-provisioned coupons bundled independently of any geofence determination","eliminated_elements":["1C","1D"],"modification":"Deliver all coupon content to the device ahead of time in a scheduled sync that is not triggered by, and does not depend on, any location determination. The geofence check only gates local display.","implementation":"1) Bundle coupon payloads with the daily region pack, or deliver them on app-version or calendar schedule. Sign them (e.g., JWT) for offline redemption validation. 2) Add server-side controls so sync timing and content cannot be conditioned on device location: fixed time window, identical content per region pack. 3) On device, unlock the cached coupon when the local point-in-polygon test passes and the app is in the foreground. 4) Redeem using an offline-verifiable code or QR so no location-triggered server round-trip is needed.","utility_preserved":"Offers remain store-specific and appear at the right place and time. Content updates daily, and offline redemption improves reliability in stores with poor connectivity.","residual_risk":"low","doe_analysis":"The claim requires the coupon transmission to be causally triggered by the geofence determination. Here the transmission precedes and is independent of any determination, and the determination merely gates local display. That is a substantially different way, a scheduled bulk sync versus an event-driven push. Treating prior, unconditional delivery as 'in response to the determining' would read out the claimed causal and temporal relationship. This design-around is also preferably combined with designs 1 and 2 so that claim 1 is missed on multiple elements.","unknown_element_ids":[],"breaks_claims":[1],"breaks_all_independent_claims":true}],"designAroundCount":3,"summary":"Only claim 1 is independent. As described, the product likely does not literally infringe it. Location is processed on the device, so no server receives it (1A absent). The discount appears as a locally rendered in-app banner rather than a transmitted push notification (1C absent), and no transmission occurs in response to the geofence determination (1D absent). The product does practice the geofence-determination step (1B present). Equivalents risk is low for 1A and 1C, because extending them would vitiate the express 'server' and 'push' limitations, and medium for 1D. Claim 2 depends on claim 1, so it falls with claim 1 (and the product uses polygons in any event). The main factual risk is how the 'nearby' polygon download is requested: if it sends device coordinates or derived location data, 1A becomes arguable. The three design-arounds harden the current architecture: (1) location-blind content sync, (2) foreground in-app display only with no push or local OS notifications, and (3) pre-provisioned coupons not triggered by any determination. They are cheap to implement and preserve core utility.","caveats":["This is not a legal opinion and is based solely on the brief product description and claim text provided. Facts must be verified through code review and network-traffic analysis, especially whether any location-derived data (coordinates, geohash, tile IDs, analytics or third-party SDK uploads) reaches company or vendor servers.","Claim construction of 'push notification,' 'transmitting' and 'in response to,' and whether the server is implicitly the entity performing the determining, may be affected by the specification and prosecution history, which have not been reviewed.","Dependent claims, continuations, divisionals and other patents in the same family, as well as unrelated patents on on-device geofencing, may claim the product's architecture and were not analyzed. Indirect infringement (induced or contributory) and divided infringement involving app users or third-party services should also be considered.","Patent validity (e.g., §101 eligibility, prior art on geofenced coupons) was not assessed but may provide additional defenses.","A written opinion of counsel based on the full file history is advisable before launch, and design-around decisions should be documented contemporaneously."],"parsed_claims":[{"number":1,"dependsOn":null},{"number":2,"dependsOn":1}]},"_provenance":{"version":"writerslogic-provenance/1","issuer":"did:web:agents.writerslogic.com","verify":{"endpoint":"POST /api/v1/verify-provenance","did":"did:web:agents.writerslogic.com"},"manifest":{"format":"application/json","instance_id":"xmp:iid:3f93563f-1ccd-4ad8-b51a-9544587c8232","claim_generator_info":[{"name":"WritersLogic x402 Agent Hub","version":"2.0.0"}],"title":"Patent Design-Around & Freedom-to-Operate Architect","assertions":[{"label":"c2pa.actions.v2","data":{"actions":[{"action":"c2pa.created","when":"2026-11-04T20:44:13.409Z","softwareAgent":{"name":"writerslogic-agent-hub/patent-design-around","version":"2.0.0"},"digitalSourceType":"http://cv.iptc.org/newscodes/digitalsourcetype/trainedAlgorithmicMedia","parameters":{"endpoint":"POST /api/v1/bypass-patent","inputDigest":{"alg":"sha256","hash":"1c250a538df8a402dd0449e2793956ac2f1f4c673772236d6205e8de72a129f1","canonicalization":"JCS"}}}]}},{"label":"c2pa.hash.data","data":{"alg":"sha256","hash":"d937e06c656379b140d14287b6a8fdb37e74ddaffdcac58846d1197b5546671f","name":"jcs-canonical-json(data)"}}]},"credential":{"@context":["https://www.w3.org/ns/credentials/v2"],"id":"urn:uuid:6c63036a-f710-4a1f-8db3-eba5c63a6884","type":["VerifiableCredential","AgentOutputCredential"],"issuer":"did:web:agents.writerslogic.com","validFrom":"2026-11-04T20:44:13.409Z","credentialSubject":{"id":"urn:sha256:d937e06c656379b140d14287b6a8fdb37e74ddaffdcac58846d1197b5546671f","agent":"patent-design-around","endpoint":"POST /api/v1/bypass-patent","outputDigest":{"alg":"sha256","value":"d937e06c656379b140d14287b6a8fdb37e74ddaffdcac58846d1197b5546671f","canonicalization":"JCS"},"inputDigest":{"alg":"sha256","value":"1c250a538df8a402dd0449e2793956ac2f1f4c673772236d6205e8de72a129f1","canonicalization":"JCS"},"manifestDigest":{"alg":"sha256","value":"70ec4ea4ee021dc1d76315428ee0091ad69136529e0ac64a5580ca9457990f1d","canonicalization":"JCS"},"ingredients":[],"payment":{"scheme":"api-key","network":"eip155:8453","payer":"sample"}},"proof":{"type":"DataIntegrityProof","cryptosuite":"eddsa-jcs-2022","created":"2026-11-04T20:44:13.409Z","verificationMethod":"did:web:agents.writerslogic.com#key-1","proofPurpose":"assertionMethod","proofValue":"z2ibNYRcD8qvfb74KGpCy3P6kAD7iYFeqAWiZU6snTUmhuizY4wdnjPqymQjq9tWTrUHm7BxveXER1Zp6bKaHDo3Q"}},"ethSignature":{"type":"EIP-191","signer":"did:pkh:eip155:8453:0x3DBd42560cA7a7E448A2c7DfC9E785526189411f","address":"0x3DBd42560cA7a7E448A2c7DfC9E785526189411f","message":"writerslogic-provenance:af715d94945111b5d48302907dc9b7950396665770aea193cd170d0d5d40013c","signature":"0x79e62f883f42feb9769a56df66e35abee7caf5ce6b005ca5b718dfee199fc67c73dff4f175c0cc7a5d50fa40690c0204c0f9c3ec3e787ccf45d0cfce185248d21b"}}}