{"audit":{"version":"1.5","generated_at":"2026-10-20T16:46:18.871946+00:00","generated_by":"Agenstry","report_url":"https://agenstry.com/agents/grundpreis.halowerk.com","methodology_url":"https://agenstry.com/methodology","verifier_jwks_url":"https://agenstry.com/.well-known/jwks.json","subject":{"domain":"grundpreis.halowerk.com","name":"HALOWERK grundpreiswerk - grocery unit prices","url":"https://grundpreis.halowerk.com/.well-known/agent-card.json"}},"identity":{"provider":{"organization":"grundpreis.halowerk.com","url":"https://grundpreis.halowerk.com"},"registry_verification":null,"signature":{"signed":false,"signature_valid":null}},"protocol":{"version":"0.3.0","supports_streaming":false,"supports_push_notifications":false},"operational":{"live_state":"wrong_response","live_responds":false,"last_status_code":200,"last_elapsed_ms":71,"last_error":null},"track_record":{"first_seen":"2026-10-20T13:10:49.831793+00:00","last_checked":"2026-10-20T13:27:35.880314+00:00","last_seen_ok":"2026-10-20T13:27:35.880314+00:00","checks_total":2,"checks_ok":2,"uptime_pct":100.0,"uptime_window_days":30,"uptime_probes":1,"archived":false,"archived_reason":null},"conformance":{"score":40,"grade":"D","summary":"D-grade: significant issues, auth-gated, partially broken, or stale.","criteria":[{"key":"valid_card","label":"Valid AgentCard","points":10,"max_points":10,"status":"pass","detail":"Parseable AgentCard returned by the well-known endpoint (Agenstry readiness signal; not an official TCK certification)."},{"key":"live_responds","label":"Live JSON-RPC","points":5,"max_points":25,"status":"fail","detail":"Endpoint replies but body isn't a valid JSON-RPC 2.0 A2A response."},{"key":"protocol_version","label":"Protocol version","points":5,"max_points":10,"status":"partial","detail":"Declares pre-1.0 A2A 0.3.0 (Google preview). Upgrade to v1.x for full points."},{"key":"signature","label":"JWS signature","points":0,"max_points":10,"status":"info","detail":"Card is unsigned (most published agents are)."},{"key":"uptime","label":"Uptime track record","points":0,"max_points":15,"status":"info","detail":"Only 1 probe so far, need ≥5 for an uptime grade."},{"key":"skills","label":"Skill declaration","points":10,"max_points":10,"status":"pass","detail":"Declares 4 skills with structured metadata."},{"key":"verified_identity","label":"Verified Identity","points":5,"max_points":10,"status":"partial","detail":"Provider declared: grundpreis.halowerk.com (https://grundpreis.halowerk.com). Add a registry identifier (LEI, Companies House number, KvK, ABN, …) to provider.legalEntity for full verified-business credit."},{"key":"freshness","label":"Freshness + modern flags","points":5,"max_points":5,"status":"pass","detail":"declares 1 modern capability flag(s) (x402); seen in upstream source within 0d"},{"key":"security","label":"Security declaration","points":0,"max_points":5,"status":"info","detail":"Neither securitySchemes nor securityRequirements declared — how to authenticate is unstated."}]},"card_read":{"findings":[],"clean":true,"source_url":"https://grundpreis.halowerk.com/.well-known/agent-card.json"},"skills":[{"id":"grocery_unit_price","name":"Unit price per kg or litre for a grocery pack: give a price and a quantity text like \"6 x 0,33 l\" or an EAN, get EUR per kg/l and per 100 g/ml.","description":"Computes the unit price (German Grundpreis) of a grocery pack. Pass the price in EUR and either a quantity text (e.g. \"500 g\", \"1,5 l\", \"6 x 0,33 l\", \"4x125g\") or an EAN; with an EAN the pack size is taken from Open Food Facts. Returns the parsed quantity, the normalised base quantity in kg or l, the price per kg or l and per 100 g or 100 ml, and where the quantity came from. If the quantity cannot be determined the unit price is null and the reason is given; nothing is estimated.","tags":["grundpreiswerk"],"examples":[],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"grocery_pack_compare","name":"Which pack is cheapest per kg or litre? Compare 2 to 20 packs by unit price; give price plus quantity text or EAN for each.","description":"Compares up to 20 grocery packs by unit price. Each pack has a price in EUR and either a quantity text (\"750 g\", \"2 x 1 l\") or an EAN whose pack size comes from Open Food Facts. Returns each pack with normalised quantity and price per kg or litre, sorted cheapest first, the saving of the cheapest against each other pack in percent, and flags packs that could not be compared (mixed kg and l, or quantity unknown). No estimation.","tags":["grundpreiswerk"],"examples":[],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"grocery_pack_size","name":"Pack size and product data for a grocery barcode (EAN) sold in Germany or Austria: declared quantity, normalised kg/l, brand, category and labels.","description":"Returns the product data fields needed for unit-price comparisons for one EAN from the Open Food Facts extract for Germany and Austria: product name, brand, declared quantity text, normalised quantity in kg or l, main category, category path, labels (e.g. organic, fair trade) and the markets listed. Data fields only, no health or nutrition claims. If the EAN is not in the extract the fields are null and the reason is given.","tags":["grundpreiswerk"],"examples":[],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"grocery_category_unit_prices","name":"Unit-price spread of a grocery category in Germany or Austria: median, quartiles and the cheapest observed products per kg or litre.","description":"For one Open Food Facts main category (e.g. en:butters, en:pastas, en:milks; an EAN can be given instead to use its category), collects the latest observed Open Prices price of every product in that category in the last 365 days in Germany or Austria and returns the unit-price distribution per kg or litre (count, minimum, first quartile, median, third quartile, maximum) and the ten cheapest products with pack size, price, date and chain. Only products with a known pack size are counted.","tags":["grundpreiswerk"],"examples":[],"inputModes":["application/json"],"outputModes":["application/json"]}],"provenance":[{"source":"agentic_market","first_seen":"2026-10-20T13:10:49.831793+00:00"},{"source":"recrawl_paid","first_seen":"2026-10-20T13:27:35.880314+00:00"}],"recent_probes":[{"fetched_at":"2026-10-20T13:27:35.880314+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":71,"live_responds":false}],"catalog_attestation":null,"operator_revenue_evidence":{"evidence_class":"operator_submitted","authenticity":{"rung":"no_operator_evidence","rank":0,"why":"No verifiable operator evidence has been submitted for this agent.","thresholds":{"min_independent_payers":3,"min_verified_usd":25.0},"engine_table":"agent_authenticity","merge_rule":"max(existing_rank, rank)"},"metric_metadata":{"provenance":"operator_submitted_evidence","confidence":"attested","coverage":{"numerator":0},"as_of":"2026-10-20T16:46:18.882860+00:00","definition":"Revenue proofs submitted by the verified owner and re-checked by Agenstry against the settlement chain or the operator's own Stripe account. Only independently confirmed proofs are counted."},"counts":{"retained":0,"verified":0,"unverifiable":0},"verified":{"gross_usd":0.0,"transactions":0,"independent_payers":0},"detail_url":"https://agenstry.com/api/agents/grundpreis.halowerk.com/evidence","dispute_url":"https://agenstry.com/agents/grundpreis.halowerk.com/dispute"},"verification_history":[],"signatures":[{"protected":"eyJhbGciOiJFUzI1NiIsImprdSI6Imh0dHBzOi8vYWdlbnN0cnkuY29tLy53ZWxsLWtub3duL2p3a3MuanNvbiIsImtpZCI6ImFnZW50ZmluZGVyLWVzMjU2LTEiLCJ0eXAiOiJKT1NFIn0","signature":"oLwl-x6MBIhck2YTPvKe2-Qm_-EK1FfE5QdDdy9vO0OXJcMug0wbTKqUySjM1VIDMyxgHnIvUA76BEOKM6CwHQ"}]}