{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["json-schema"]},"type":"markdown"},"seo":{"title":"Bolus Calculator Records ( wizard )","llmstxt":{"hide":true}},"dynamicMarkdocComponents":["openapi"],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"bolus-calculator-records--wizard-","__idx":0},"children":["Bolus Calculator Records (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["wizard"]},")"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"quick-summary","__idx":1},"children":["Quick Summary"]},{"$$mdtype":"Tag","name":"JsonSchema","attributes":{"schema":{"$ref":"../../../reference/data/models/bolus/calculator.v1.yaml"},"options":{},"schemaResolved":{"openapi":"3.1.0","components":{"schemas":{"__root":{"$ref":"#/components/schemas/calculator.v1"},"code.v1":{"title":"Annotation Code","description":"Annotation codes that appear in Tidepool diabetes data records.\nThe annotation codes are primarily intended for machine processing, but they are usually readable enough to make sense.\nThese are by convention structured as series of strings separated by slashes (`/`), in order from more general to more specific.\nFor example:\n\n  * `wrong-device-time` or `time-change`, generic annotations.\n  * `basal/unknown-duration` or `bg/out-of-range`, generic annotations around a particular theme.\n  * `medtronic/basal/flat-rate`, a manufacturer-specific annotation.\n  * `medtronic600/smbg/user-rejected-remote-bg`, a device-specific annotation.","type":"string","minLength":1,"pattern":"^[0-9a-z\\-_]+(/[0-9a-z\\-_]+(/[0-9a-z\\-_]+)?)?$","enum":["animas/basal/flat-rate","animas/basal/marked-suspended-from-alarm","animas/bolus/extended-equal-split","animas/bolus/unknown-duration","animas/out-of-sequence","animas/status/fabricated-from-alarm","basal/auto","basal/intersects-incomplete-suspend","basal/mismatched-series","basal/unknown-duration","bg/out-of-range","carelink/basal/fabricated-from-schedule","carelink/basal/fabricated-from-suppressed","carelink/basal/off-schedule-rate","carelink/bolus/missing-square-component","carelink/wizard/long-search","final-basal/fabricated-from-schedule","insulet/basal/fabricated-from-schedule","insulet/bolus/split-extended","medtronic/basal/fabricated-from-schedule","medtronic/basal/flat-rate","medtronic/basal/one-second-gap","medtronic/basal/time-change","medtronic/status/fabricated-from-device-event","medtronic/wizard/carb-to-exchange-ratio-deconverted","medtronic600/smbg/bg-reading-received","medtronic600/smbg/bg-sent-for-calib","medtronic600/smbg/bg-si-fail-result-recd-frm-gst","medtronic600/smbg/bg-si-pass-result-recd-frm-gst","medtronic600/smbg/entered-as-bg-marker","medtronic600/smbg/entered-in-bg-entry","medtronic600/smbg/entered-in-bolus-wizard","medtronic600/smbg/entered-in-meal-wizard","medtronic600/smbg/entered-in-sensor-calib","medtronic600/smbg/remote-bg-acceptance-screen-timeout","medtronic600/smbg/user-accepted-remote-bg","medtronic600/smbg/user-rejected-remote-bg","medtronic600/smbg/user-rejected-sensor-calib","spring-forward","stats-how-calculated","stats-how-calculated-average-cbg","stats-how-calculated-average-smbg","stats-how-calculated-range-cbg","stats-how-calculated-range-smbg","stats-how-calculated-ratio","stats-insufficient-data","status/incomplete-tuple","tandem/basal/fabricated-from-new-day","tandem/basal/temp-without-rate-change","tandem/pumpSettingsOverride/estimated-duration","tandem/pumpSettingsOverride/fabricated-from-new-day","time-change","uncertain-timestamp","wizard/target-automated","wrong-device-time"],"example":"wrong-device-time"},"bgoutofrange.v1":{"title":"Blood Glucose Out of Range","type":"object","properties":{"code":{"type":"string","enum":["bg/out-of-range"],"example":"bg/out-of-range"},"value":{"type":"string","enum":["low","high"],"example":"low"},"threshold":{"type":"number","example":40}},"required":["code","value","threshold"]},"annotation.v1":{"title":"Annotation","description":"Annotation attached to the diabetes data record to provide additional information. Annotation is at minimum a `code` (string) that describes the annotation. It may also include additional properties that further describe the annotation. The maximum size is 4K bytes.","type":"object","allOf":[{"type":"object","properties":{"code":{"$ref":"#/components/schemas/code.v1"}},"required":["code"]},{"oneOf":[{"type":"object","properties":{"code":{"$ref":"#/components/schemas/code.v1"}},"required":["code"]},{"$ref":"#/components/schemas/bgoutofrange.v1"}]}]},"annotationarray.v1":{"title":"Annotation Array","description":"An array of annotations.","type":"array","uniqueItems":true,"minItems":0,"maxItems":100,"items":{"$ref":"#/components/schemas/annotation.v1"}},"datetime.v1":{"title":"Date/Time","description":"[RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) / [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) timestamp _with_ timezone information","type":"string","format":"date-time","example":"2017-02-06T02:37:46Z","x-go-type":"string"},"datasetid.v1":{"title":"Data Set ID","type":"string","pattern":"^(upid_[0-9a-f]{12}|upid_[0-9a-f]{32}|[0-9a-f]{32})$","minLength":17,"maxLength":37,"example":"ce8cc5f7595575945f91fc6710db6fef","x-tags":["Data"]},"association-type.v1":{"title":"Association Type","description":"The type of the association. If type is `blob`, `datum`, or `image`, then `id` must also be specified. If type is `url`, then url must also be specified.","type":"string","enum":["blob","datum","image","url"],"example":"blob","x-go-type":"string"},"reason.v1":{"title":"Association Reason","description":"The reason for the association.","type":"string","minLength":1,"maxLength":1000},"association-id.v1":{"title":"Association ID","description":"The ID of the associated Tidepool resource if type is blob, datum, or image.","type":"string"},"url.v1":{"title":"URL","description":"URL","type":"string","format":"uri"},"blob.v1":{"title":"Association (blob)","type":"object","properties":{"type":{"$ref":"#/components/schemas/association-type.v1"},"reason":{"$ref":"#/components/schemas/reason.v1"},"id":{"$ref":"#/components/schemas/association-id.v1"},"url":{"$ref":"#/components/schemas/url.v1"}},"required":["type","id"]},"datum.v1":{"title":"Association (datum)","type":"object","properties":{"type":{"$ref":"#/components/schemas/association-type.v1"},"reason":{"$ref":"#/components/schemas/reason.v1"},"id":{"$ref":"#/components/schemas/association-id.v1"},"url":{"$ref":"#/components/schemas/url.v1"}},"required":["type","id"]},"image.v1":{"title":"Association (image)","type":"object","properties":{"type":{"$ref":"#/components/schemas/association-type.v1"},"reason":{"$ref":"#/components/schemas/reason.v1"},"id":{"$ref":"#/components/schemas/association-id.v1"},"url":{"$ref":"#/components/schemas/url.v1"}},"required":["type","id"]},"url-association.v1":{"title":"Association (url)","type":"object","properties":{"type":{"$ref":"#/components/schemas/association-type.v1"},"reason":{"$ref":"#/components/schemas/reason.v1"},"id":{"$ref":"#/components/schemas/association-id.v1"},"url":{"$ref":"#/components/schemas/url.v1"}},"required":["type","id","url"]},"association.v1":{"title":"Association","description":"Associate this resource with another Tidepool resource ID.","type":"object","oneOf":[{"$ref":"#/components/schemas/blob.v1"},{"$ref":"#/components/schemas/datum.v1"},{"$ref":"#/components/schemas/image.v1"},{"$ref":"#/components/schemas/url-association.v1"}]},"associationarray.v1":{"title":"Association Array","description":"An array of associations for the resource.","type":"array","items":{"$ref":"#/components/schemas/association.v1"}},"clockdriftoffset.v1":{"title":"Clock Drift Offset","description":"Clock drift offset, expressed as milliseconds.","type":"integer","format":"int64","minimum":-86400000,"maximum":86400000,"example":0,"x-tags":["Data"]},"conversionoffset.v1":{"title":"Conversion Offset","description":"Conversion offset, expressed as milliseconds.","type":"integer","format":"int64","example":0,"x-tags":["Data"]},"tidepooluserid":{"type":"string","title":"Tidepool User ID","pattern":"^([0-9a-f]{10}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$","description":"String representation of a Tidepool User ID. Old style IDs are 10-digit strings consisting of only hexadeximcal digits. New style IDs are 36-digit [UUID v4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random))","readOnly":true,"x-go-type":"string"},"semanticversion.v1":{"title":"Semantic Version Number","description":"[Semantic Version Number 2.0.0](http://semver.org/). Regex from their [site](https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string).","type":"string","minLength":5,"pattern":"^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$","example":"2.36.1"},"reversedomainname.v1":{"title":"Reverse Domain Name","description":"Name in the [reverse domain name notation](https://en.wikipedia.org/wiki/Reverse_domain_name_notation).","type":"string","pattern":"^[a-zA-Z0-9](|[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])(\\.[a-zA-Z0-9](|[a-zA-Z0-9-]{0,61}[a-zA-Z0-9]))+$","example":"org.tidepool.uploader"},"deduplicatordescriptor.v1":{"title":"Deduplicator Descriptor","type":"object","properties":{"hash":{"type":"string","minLength":1},"version":{"$ref":"#/components/schemas/semanticversion.v1"},"name":{"$ref":"#/components/schemas/reversedomainname.v1"}},"required":["name","version"],"x-tags":["Data"]},"deviceid.v1":{"title":"Device ID","description":"Globally unique to device and repeatable with each upload, e.g. device make and model with serial number","type":"string","minLength":1,"example":"MMT-1711:12345678","x-tags":["Data"]},"datetimenotz.v1":{"title":"Date/Time without Timezone","description":"[RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) / [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) timestamp _without_ timezone information","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}$","example":"2017-02-06T02:37:46","x-go-type":"string"},"jsonpatch.v1":{"title":"JSONPatch","oneOf":[{"properties":{"op":{"type":"string","description":"The operation to perform.","enum":["add","replace","test"]},"path":{"type":"string","description":"A JSON Pointer path."},"value":{"description":"The value to add, replace or test."}},"required":["op","path","value"]},{"properties":{"op":{"type":"string","description":"The operation to perform.","enum":["remove"]},"path":{"type":"string","description":"A JSON Pointer path."}},"required":["op","path"]},{"properties":{"op":{"type":"string","description":"The operation to perform.","enum":["move","copy"]},"from":{"description":"A JSON Pointer path pointing to the location to move/copy from.","type":"string"},"path":{"type":"string","description":"A JSON Pointer path."}},"required":["op","from","path"]}],"type":"object","description":"Only have this here because Stoplight doesn't seem to like using the JSONSchema directly as a ref from http://json.schemastore.org/json-patch"},"eventhistory.v1":{"title":"Event History [Proposed]","description":"Revision history of the event","type":"array","items":{"type":"object","properties":{"time":{"$ref":"#/components/schemas/datetime.v1"},"changes":{"$ref":"#/components/schemas/jsonpatch.v1"}},"required":["time","changes"]},"x-tags":["Data"]},"origin-id.v1":{"title":"Origin ID","description":"Any external identifier uniquely identifying the resource at the origin source.","type":"string","minLength":1,"maxLength":100},"name.v1":{"title":"Origin Name","description":"A human-readable name for the origin source.","type":"string","minLength":1,"maxLength":100},"payload.v1":{"title":"Payload","description":"Grab bag field for data that isn't yet part of the data model. The maximum size is 4K bytes.","type":"object","additionalProperties":true},"origin-type.v1":{"title":"Origin Type","description":"The type of the origin source.","type":"string","enum":["application","device","manual","service"],"example":"device"},"version.v1":{"title":"Origin Version","description":"The version of the origin source at the time the resources was obtained.","type":"string","minLength":1,"maxLength":100},"origin.v1":{"title":"Origin","description":"External origin information for the source of the resource.","type":"object","properties":{"id":{"$ref":"#/components/schemas/origin-id.v1"},"name":{"$ref":"#/components/schemas/name.v1"},"payload":{"$ref":"#/components/schemas/payload.v1"},"time":{"$ref":"#/components/schemas/datetime.v1"},"type":{"$ref":"#/components/schemas/origin-type.v1"},"version":{"$ref":"#/components/schemas/version.v1"}},"required":["id","name","time","type","version"]},"longitude.v1":{"title":"Longitude","description":"The prime meridian, which passes near the Royal Observatory, Greenwich, England, is defined as 0° longitude by convention. Positive longitudes are east of the prime meridian, and negative ones are west.","type":"object","properties":{"units":{"type":"string","enum":["degrees"],"example":"degrees"},"value":{"type":"number","format":"double","minimum":-180,"maximum":180,"example":-122.1625595}},"required":["units","value"]},"latitude.v1":{"title":"Latitude","description":"Latitude is an angle which ranges from -90° at the South pole to 0° at the Equator to 90° at the North pole.","type":"object","properties":{"units":{"type":"string","enum":["degrees"],"example":"degrees"},"value":{"type":"number","format":"double","minimum":-90,"maximum":90,"example":37.4454404}},"required":["units","value"]},"meters.v1":{"title":"Accuracy (meters)","description":"Accuracy of a measurement, expressed as meters.","type":"object","properties":{"value":{"type":"number","format":"double","minimum":0,"maximum":1000,"example":42},"units":{"type":"string","enum":["meters"],"example":"meters"}},"required":["units"]},"accuracy-feet.v1":{"title":"Accuracy (feet)","description":"Accuracy of a measurement, expressed in `feet`.","type":"object","properties":{"value":{"type":"number","format":"double","minimum":0,"maximum":3280,"example":42},"units":{"type":"string","enum":["feet"],"example":"feet"}},"required":["units"]},"accuracy.v1":{"title":"Accuracy","description":"Accuracy of a measurement","type":"object","oneOf":[{"$ref":"#/components/schemas/meters.v1"},{"$ref":"#/components/schemas/accuracy-feet.v1"}]},"floor.v1":{"title":"Floor","type":"integer","format":"int32","minimum":-1000,"maximum":1000},"elevation-meters.v1":{"title":"Elevation (meters)","type":"object","properties":{"units":{"type":"string","enum":["meters"],"example":"meters"},"value":{"type":"number","format":"double","minimum":0,"maximum":10000,"example":42}},"required":["units","value"]},"elevation-feet.v1":{"title":"Elevation (feet)","type":"object","properties":{"units":{"type":"string","enum":["feet"],"example":"feet"},"value":{"type":"number","format":"double","minimum":0,"maximum":32808,"example":42}},"required":["units","value"]},"elevation.v1":{"title":"Elevation","description":"Elevation, expressed as `meters` or `feet`.","type":"object","oneOf":[{"$ref":"#/components/schemas/elevation-meters.v1"},{"$ref":"#/components/schemas/elevation-feet.v1"}]},"gps.v1":{"title":"GPS","description":"GPS coordinates and related information.","type":"object","properties":{"origin":{"$ref":"#/components/schemas/origin.v1"},"longitude":{"$ref":"#/components/schemas/longitude.v1"},"latitude":{"$ref":"#/components/schemas/latitude.v1"},"horizontalAccuracy":{"$ref":"#/components/schemas/accuracy.v1"},"verticalAccuracy":{"$ref":"#/components/schemas/accuracy.v1"},"floor":{"$ref":"#/components/schemas/floor.v1"},"elevation":{"$ref":"#/components/schemas/elevation.v1"}},"required":["longitude","latitude"]},"location.v1":{"title":"Location","type":"object","description":"Location information associated with the resource. One or both of `name` and `gps` must be specified.","properties":{"name":{"type":"string","description":"A name for the location.","minLength":1,"maxLength":100},"gps":{"$ref":"#/components/schemas/gps.v1"}}},"note.v1":{"title":"Note","description":"A note associated with the resource.","type":"string","minLength":1,"maxLength":1000},"notearray.v1":{"title":"Note Array","description":"An array of 1 to 100 notes.","type":"array","minItems":1,"maxItems":100,"items":{"$ref":"#/components/schemas/note.v1"}},"tag.v1":{"title":"Tag","description":"A tag associated with the resource.","type":"string","minLength":1,"maxLength":100},"tagarray.v1":{"title":"Tag Array","description":"An array of tags.","type":"array","items":{"$ref":"#/components/schemas/tag.v1"}},"timezonename.v1":{"title":"Time Zone","description":"A string timezone name from the [IANA timezone database](https://www.iana.org/time-zones)","type":"string","example":"Europe/London","x-tags":["Data"]},"timezoneoffset.v1":{"title":"Time Zone offset","description":"Time zone offset, expressed as positive or negative number of minutes from UTC.","type":"integer","format":"int32","minimum":-10080,"maximum":10080,"example":-420,"x-tags":["Data"]},"datatype.v1":{"title":"Tidepool Data Type","description":"Data type","type":"string","enum":["alert","basal","bloodKetone","bolus","cbg","cgmSettings","controllerSettings","controllerStatus","deviceEvent","deviceStatus","dosingDecision","food","insulin","physicalActivity","pumpSettings","pumpStatus","reportedState","smbg","upload","water","wizard"],"example":"upload","x-tags":["Data"]},"uploadid.v1":{"title":"Upload ID","description":"An upload identifier; this field should be the uploadId of the corresponding upload record","type":"string","pattern":"^([0-9a-f]{32}|upid_[0-9a-f]{12})$","minLength":17,"maxLength":32,"example":"0d92d5c1c22117a18f3620b9e24d3c06","x-tags":["Data"]},"base.v1":{"title":"Base","description":"An abstract base data type for all Tidepool diabetes data objects.","type":"object","properties":{"annotations":{"$ref":"#/components/schemas/annotationarray.v1"},"archivedTime":{"allOf":[{"$ref":"#/components/schemas/datetime.v1"}],"readOnly":true},"archivedDatasetId":{"$ref":"#/components/schemas/datasetid.v1"},"associations":{"$ref":"#/components/schemas/associationarray.v1"},"clockDriftOffset":{"$ref":"#/components/schemas/clockdriftoffset.v1"},"conversionOffset":{"$ref":"#/components/schemas/conversionoffset.v1"},"createdTime":{"$ref":"#/components/schemas/datetime.v1"},"createdUserId":{"$ref":"#/components/schemas/tidepooluserid"},"deduplicator":{"$ref":"#/components/schemas/deduplicatordescriptor.v1"},"deletedTime":{"$ref":"#/components/schemas/datetime.v1"},"deletedUserId":{"$ref":"#/components/schemas/tidepooluserid"},"deviceId":{"$ref":"#/components/schemas/deviceid.v1"},"deviceTime":{"$ref":"#/components/schemas/datetimenotz.v1"},"guid":{"type":"string","description":"A string ID. Added to each event during data processing in the Tidepool Uploader or upon ingestion by the platform data ingestion service.","deprecated":true},"history":{"$ref":"#/components/schemas/eventhistory.v1"},"id":{"$ref":"#/components/schemas/datasetid.v1"},"location":{"$ref":"#/components/schemas/location.v1"},"modifiedTime":{"$ref":"#/components/schemas/datetime.v1"},"modifiedUserId":{"$ref":"#/components/schemas/tidepooluserid"},"notes":{"$ref":"#/components/schemas/notearray.v1"},"origin":{"$ref":"#/components/schemas/origin.v1"},"payload":{"$ref":"#/components/schemas/payload.v1"},"source":{"type":"string","enum":["carelink"]},"tags":{"$ref":"#/components/schemas/tagarray.v1"},"time":{"$ref":"#/components/schemas/datetime.v1"},"timezone":{"$ref":"#/components/schemas/timezonename.v1"},"timezoneOffset":{"$ref":"#/components/schemas/timezoneoffset.v1"},"type":{"$ref":"#/components/schemas/datatype.v1"},"uploadId":{"$ref":"#/components/schemas/uploadid.v1"}},"required":["id","type","time"],"x-tags":["Data"]},"valuemgdl.v1":{"title":"Blood Value (mg/dL)","description":"An integer value representing a `mg/dL` value.","type":"integer","format":"int32","minimum":0,"maximum":1000,"example":105,"x-tags":["Data"]},"valuemmol.v1":{"title":"Blood Value (mmol/L)","description":"A floating point value representing a `mmol/L` value.","type":"number","format":"float","minimum":0,"example":5.5,"x-tags":["Data"]},"value.v1":{"title":"Blood Value (in mg/dL or mmol/L units)","oneOf":[{"$ref":"#/components/schemas/valuemgdl.v1"},{"$ref":"#/components/schemas/valuemmol.v1"}],"x-tags":["Data"]},"targetmgdl.v1":{"title":"Blood Glucose Target Value (mg/dL)","description":"Blood glucose target values, in `mg/dL`","type":"object","properties":{"high":{"type":"number","minimum":0,"maximum":1000,"description":"An integer encoding the upper bound of a PWD's blood glucose target.\n\nThe minimum value should be >= `low` or `target`, whichever present"},"low":{"type":"number","minimum":0,"maximum":1000,"description":"An integer encoding the lower bound of a PWD's blood glucose target."},"range":{"type":"number","minimum":0,"maximum":1000,"description":"An integer encoding the allowed deviation above or below the PWD's target blood glucose.\n\nMaximum should be min(`target`, 1000 - `target`) such that `target`-`range` >= 0 and `target`+`range` <= 1000"},"target":{"type":"number","minimum":0,"maximum":1000,"description":"An integer encoding the PWD's target blood glucose as a single value."}},"example":{"high":180,"low":80},"x-tags":["Data"]},"targetmmol.v1":{"title":"Blood Glucose Target Value (mmol/L)","description":"Blood glucose target values, in `mmol/L`","type":"object","properties":{"high":{"type":"number","description":"An integer encoding the upper bound of a PWD's blood glucose target.\n\nThe minimum value should be >= `low` or `target`, whichever present","minimum":0,"maximum":55},"low":{"type":"number","minimum":0,"maximum":55,"description":"An integer encoding the lower bound of a PWD's blood glucose target."},"range":{"type":"number","minimum":0,"maximum":55,"description":"An integer encoding the allowed deviation above or below the PWD's target blood glucose.\n\nMaximum should be min(`target`, 1000 - `target`) such that `target`-`range` >= 0 and `target`+`range` <= 1000"},"target":{"type":"number","minimum":0,"maximum":55,"description":"An integer encoding the PWD's target blood glucose as a single value."}},"x-tags":["Data"]},"target.v1":{"title":"Blood Glucose Target","oneOf":[{"$ref":"#/components/schemas/targetmgdl.v1"},{"$ref":"#/components/schemas/targetmmol.v1"}],"x-tags":["Data"]},"recommended.v1":{"title":"Insulin Recommended","description":"An object encoding the amount of insulin calculated as a recommended dose to \"cover\" the `bgInput` and `carbInput`, possibly taking into account the `insulinOnBoard`.","type":"object","properties":{"net":{"type":"number","description":"A floating point value representing units of insulin.\n\nFloating point value rounded to the appropriate significant figures for the device's precision.","format":"float","minimum":-100,"maximum":100},"correction":{"type":"number","description":"A floating point value representing units of insulin.\n\nFloating point value rounded to the appropriate significant figures for the device's precision.","format":"float","minimum":-100,"maximum":100},"carb":{"type":"number","description":"A floating point value representing units of insulin.\n\nFloating point value rounded to the appropriate significant figures for the device's precision.","format":"float","minimum":0,"maximum":100}},"x-tags":["Data"]},"carb-units.v1":{"title":"Carbohydrate Units","type":"string","enum":["grams","exchanges"],"example":"grams"},"calculator.v1":{"title":"Bolus Calculator","description":"A bolus calculator event","allOf":[{"$ref":"#/components/schemas/base.v1"},{"type":"object","properties":{"bgInput":{"$ref":"#/components/schemas/value.v1"},"bgTarget":{"$ref":"#/components/schemas/target.v1"},"bolus":{"description":"The bolus event resulting from this wizard event."},"carbInput":{"type":"integer","format":"int32","description":"An integer encoding the PWD's carbohydrate input into the bolus calculator.","minimum":0,"maximum":1000},"insulinCarbRatio":{"type":"number","description":"An integer encoding the grams of carbohydrate \"covered\" by one unit of insulin for the PWD.","format":"double","minimum":0,"maximum":250},"insulinOnBoard":{"type":"number","description":"A floating point value representing units of insulin.","format":"float","minimum":0,"maximum":250},"insulinSensitivity":{"$ref":"#/components/schemas/value.v1"},"recommended":{"$ref":"#/components/schemas/recommended.v1"},"type":{"type":"string","enum":["wizard"]},"units":{"type":"string"},"carbUnits":{"$ref":"#/components/schemas/carb-units.v1"}}}],"required":["type"],"x-tags":["Data"]}}}},"schemaResolvedErrors":[]},"children":[]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"type--type-","__idx":2},"children":["Type (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["type"]},")"]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For historical reasons, this type is currently called \"wizard.\" However, Tidepool plans to migrate to the term \"bolus calculator\" in a future version as wizard is a Medtronic term."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The Tidepool bolus calculator event models user interactions with a bolus calculator. The bolus calculator event is intended to contain the values that were input into the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["wizard"]},", as well as any recommendations that the calculator may have made. (This event does not automatically record whether the recommendations made were followed.)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Some insulin pumps record every user interaction with the bolus calculator, regardless of whether a bolus resulted from the interaction or not. However, only user interactions with the bolus calculator ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["that result in a bolus event"]}," should be uploaded to Platform, to avoid noise in the data. The resulting bolus should also be included on the bolus calculator event — see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/device-data/linking-events"},"children":["linking events"]}," for details."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"blood-glucose-input--bginput-","__idx":3},"children":["Blood Glucose Input (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["bgInput"]},")"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Like all blood glucose-related fields, the BG input should be uploaded in either mg/dL or mmol/L, as appropriate to how the data is retrieved from the device. However, all values will be converted to mmol/L on ingestion."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"bolus--bolus-","__idx":4},"children":["Bolus (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["bolus"]},")"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Only bolus calculator events that result in a bolus should be uploaded to Platform. When uploading through Platform, the bolus should only be submitted embedded within the appropriate bolus calculator event."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/device-data/linking-events"},"children":["linking events"]}," for more details on how events of different types are linked in Platform."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"carb-input--carbinput-","__idx":5},"children":["Carb Input (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["carbInput"]},")"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Not every use of a pump's bolus calculator involves the input of carbohydrates; a user may be using the calculator to program a correction bolus. Therefore, the carb input field is optional and should only be used when relevant."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Some devices have a separate field to enter a carbohydrate value on their bolus calculators. On such devices, Tidepool omits the carb input field altogether if a value was not entered. On other devices where the carbohydrate option is always part of the calculator, Tidepool reflects this as a carb input of 0."]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Carb input does not necessarily map directly to carbohydrates consumed. A person with diabetes may consume carbohydrates that are ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["not"]}," recorded through the bolus calculator: either if the user chooses to program a manual or quick bolus to \"cover\" carbohydrates ingested; or if the PwD consumes carbohydrates unnecessary to bolus for (e.g. carbohydrates consumed to treat hypoglycemia)."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"insulin-to-carb-ratio--insulincarbratio-","__idx":6},"children":["Insulin-To-Carb Ratio (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["insulinCarbRatio"]},")"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The insulin-to-carb (I:C) ratio is part of an insulin pump's settings. A user may program one I:C ratio to be used across-the-board, or particular ratios on a schedule per each 24-hour day. For more information on these persistent I:C ratios, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/device-data/data-types/pump-settings#carb-ratio-carbratio"},"children":["carb ratios"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Most pumps make it possible to change the I:C for the bolus ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["currently being calculated"]},", without also changing the pump settings. Therefore, the insulin-to-carb ratio value on a bolus calculation may not always match the expected ratio given the user's insulin pump settings at the time of the calculation."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"insulin-on-board--insulinonboard-","__idx":7},"children":["Insulin On Board (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["insulinOnBoard"]},")"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The insulin on board (IOB) field  encodes the pump's estimate of how much insulin is metabolically active in the person with diabetes' system from previous boluses. Some pumps use a simple linear function for estimating the metabolic uptake and consumption of insulin, while others use more complex functions. A key benefit of using an insulin pump is the ability to track IOB in order to avoid \"stacking\" boluses (taking more insulin on top of a dose that is still active, possibly resulting in hypoglycemia). It is important to include insulin on board in the data to audit bolusing behavior."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["On many pumps, insulin on board is also taken into account for the calculation of the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#recommended-net-recommendednet"},"children":["net bolus recommendation"]},"."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"recommended--recommended-","__idx":8},"children":["Recommended (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["recommended"]},")"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The embedded object recommended encodes an insulin delivery device's recommendations for insulin dosing across three fields:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#recommended-carb-recommendedcarb"},"children":["Recommended: carb (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["recommended.carb"]},")"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#recommended-correction-recommendedcorrection"},"children":["Recommended: correction (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["recommended.correction"]},")"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#recommended-net-recommendednet"},"children":["Recommended: net (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["recommended.net"]},")"]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"recommended-carb--recommendedcarb-","__idx":9},"children":["Recommended: carb (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["recommended.carb"]},")"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Carb encodes the units of insulin recommended by the device to \"cover\" the total grams of carbohydrate input by the user into the bolus calculator. The value for carb may be > = 0, as not all boluses involve the ingestion of carbohydrates and may not include a recommended insulin dose to cover carbohydrates about to be ingested."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"recommended-correction--recommendedcorrection-","__idx":10},"children":["Recommended: correction (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["recommended.correction"]},")"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Correction encodes the units of insulin recommended by the device to bring the person with diabetes to their target BG given the input blood glucose. On some pumps, or depending on user preference, this value may be negative. A negative recommendation for correction indicates that — given the user's current blood glucose and insulin on board — low blood glucose is predicted and a reduction in insulin dosing (e.g. via a temporary basal rate) may be required in order to bring blood glucose to or within the target."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"recommended-net--recommendednet-","__idx":11},"children":["Recommended: net (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["recommended.net"]},")"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Net is the net number of units of insulin the bolus calculator recommended given the user's inputs. Generally, this net recommendation takes recommended carb, recommended correction, and insulin on board into account, but insulin delivery devices perform this calculation differently. Therefore, Tidepool has chosen to store the calculation's result, rather than make this calculation the responsibility of client applications."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"examples","__idx":12},"children":["Examples"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","data-title":"Example (client)","header":{"title":"Example (client)","controls":{"copy":{}}},"source":"{\n    \"type\": \"wizard\",\n    \"bgInput\": 2.109284236597303,\n    \"bgTarget\": {\n        \"target\": 5.82828539059781,\n        \"range\": 1.3876869977613833\n    },\n    \"bolus\": \"2eda6697f3ed430bb2d8b7c7a124fb13\",\n    \"carbInput\": 17,\n    \"insulinCarbRatio\": 19,\n    \"insulinOnBoard\": 21.949,\n    \"insulinSensitivity\": 1.831746837045026,\n    \"recommended\": {\n        \"carb\": 1,\n        \"correction\": -2.75,\n        \"net\": 0\n    },\n    \"units\": \"mmol/L\",\n    \"clockDriftOffset\": 0,\n    \"conversionOffset\": 0,\n    \"deviceId\": \"DevId0987654321\",\n    \"deviceTime\": \"2018-05-14T18:17:09\",\n    \"guid\": \"757cdf1d-516d-47a3-87d3-3d4e8b71504f\",\n    \"id\": \"09eb73043377472f82b2baf7adfdbc50\",\n    \"time\": \"2018-05-14T08:17:09.353Z\",\n    \"timezoneOffset\": 600,\n    \"uploadId\": \"SampleUploadId\"\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","data-title":"Example (ingestion)","header":{"title":"Example (ingestion)","controls":{"copy":{}}},"source":"{\n    \"type\": \"wizard\",\n    \"bgInput\": 392,\n    \"bgTarget\": {\n        \"target\": 95,\n        \"range\": 15\n    },\n    \"bolus\": {\n        \"type\": \"bolus\",\n        \"subType\": \"normal\",\n        \"normal\": 8,\n        \"expectedNormal\": 9.6,\n        \"clockDriftOffset\": 0,\n        \"conversionOffset\": 0,\n        \"deviceId\": \"DevId0987654321\",\n        \"deviceTime\": \"2018-05-14T18:17:09\",\n        \"time\": \"2018-05-14T08:17:09.353Z\",\n        \"timezoneOffset\": 600,\n        \"uploadId\": \"SampleUploadId\"\n    },\n    \"carbInput\": 137,\n    \"insulinCarbRatio\": 13,\n    \"insulinOnBoard\": 24.254,\n    \"insulinSensitivity\": 52,\n    \"recommended\": {\n        \"carb\": 10.5,\n        \"correction\": 5.5,\n        \"net\": 0\n    },\n    \"units\": \"mg/dL\",\n    \"clockDriftOffset\": 0,\n    \"conversionOffset\": 0,\n    \"deviceId\": \"DevId0987654321\",\n    \"deviceTime\": \"2018-05-14T18:17:09\",\n    \"time\": \"2018-05-14T08:17:09.353Z\",\n    \"timezoneOffset\": 600,\n    \"uploadId\": \"SampleUploadId\"\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","data-title":"Example (storage)","header":{"title":"Example (storage)","controls":{"copy":{}}},"source":"{\n    \"type\": \"wizard\",\n    \"bgInput\": 16.152676653942503,\n    \"bgTarget\": {\n        \"low\": 3.6079861941795968,\n        \"high\": 6.938434988806917\n    },\n    \"bolus\": \"22239d4d592b48ae920b28971cceb48b\",\n    \"carbInput\": 57,\n    \"insulinCarbRatio\": 24,\n    \"insulinOnBoard\": 24.265,\n    \"insulinSensitivity\": 4.329583433015516,\n    \"recommended\": {\n        \"carb\": 2.5,\n        \"correction\": 2.25,\n        \"net\": 0\n    },\n    \"units\": \"mmol/L\",\n    \"_active\": true,\n    \"_groupId\": \"abcdef\",\n    \"_schemaVersion\": 0,\n    \"_version\": 0,\n    \"clockDriftOffset\": 0,\n    \"conversionOffset\": 0,\n    \"createdTime\": \"2018-05-14T08:17:14.353Z\",\n    \"deviceId\": \"DevId0987654321\",\n    \"deviceTime\": \"2018-05-14T18:17:09\",\n    \"guid\": \"18d90ea0-5915-4e95-a8b2-cb22819ce696\",\n    \"id\": \"087c94ccdae84eb5a76b8205a244ec6b\",\n    \"time\": \"2018-05-14T08:17:09.353Z\",\n    \"timezoneOffset\": 600,\n    \"uploadId\": \"SampleUploadId\"\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"keep-reading","__idx":13},"children":["Keep Reading"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/device-data/common-fields"},"children":["Common Fields"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/datetime"},"children":["Datetime Guide"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/device-data/data-types"},"children":["Diabetes Data Types"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/device-data/data-types/pump-settings"},"children":["Pump Settings"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/device-data/data-types/smbg"},"children":["Self-Monitored Glucose (SMBG)"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/device-data/units"},"children":["Units"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/device-data/data-types/upload"},"children":["Upload Metadata"]}]}]}]},"headings":[{"value":"Bolus Calculator Records ( wizard )","id":"bolus-calculator-records--wizard-","depth":1},{"value":"Quick Summary","id":"quick-summary","depth":2},{"value":"Type ( type )","id":"type--type-","depth":2},{"value":"Blood Glucose Input ( bgInput )","id":"blood-glucose-input--bginput-","depth":2},{"value":"Bolus ( bolus )","id":"bolus--bolus-","depth":2},{"value":"Carb Input ( carbInput )","id":"carb-input--carbinput-","depth":2},{"value":"Insulin-To-Carb Ratio ( insulinCarbRatio )","id":"insulin-to-carb-ratio--insulincarbratio-","depth":2},{"value":"Insulin On Board ( insulinOnBoard )","id":"insulin-on-board--insulinonboard-","depth":2},{"value":"Recommended ( recommended )","id":"recommended--recommended-","depth":2},{"value":"Recommended: carb ( recommended.carb )","id":"recommended-carb--recommendedcarb-","depth":3},{"value":"Recommended: correction ( recommended.correction )","id":"recommended-correction--recommendedcorrection-","depth":3},{"value":"Recommended: net ( recommended.net )","id":"recommended-net--recommendednet-","depth":3},{"value":"Examples","id":"examples","depth":2},{"value":"Keep Reading","id":"keep-reading","depth":2}],"frontmatter":{"seo":{"title":"Bolus Calculator Records ( wizard )"}},"lastModified":"2025-09-04T14:19:18.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/docs/device-data/data-types/calculator","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}